X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Flink-mso19%2Flink-mso19.c;h=024e67b8f429ae7e867c1699c19334ff3cbded2c;hb=590b9f9a91a703ceea4c430566735d05a2acf82b;hp=c3dc19bd934865109902f7d1d39f57a60d646158;hpb=ea9cfed7a55260ab97f57150b57c42a28c3a85a7;p=libsigrok.git diff --git a/hardware/link-mso19/link-mso19.c b/hardware/link-mso19/link-mso19.c index c3dc19bd..024e67b8 100644 --- a/hardware/link-mso19/link-mso19.c +++ b/hardware/link-mso19/link-mso19.c @@ -48,6 +48,11 @@ static int hwcaps[] = { 0, }; +/* + * Probes are numbered 0 to 7. + * + * See also: http://www.linkinstruments.com/images/mso19_1113.gif + */ static const char *probe_names[NUM_PROBES + 1] = { "0", "1", @@ -85,9 +90,9 @@ static uint64_t supported_samplerates[] = { }; static struct sr_samplerates samplerates = { - SR_HZ(100), - SR_MHZ(200), - SR_HZ(0), + 0, + 0, + 0, supported_samplerates, }; @@ -588,7 +593,7 @@ static int hw_dev_close(int dev_index) if (!(sdi = sr_dev_inst_get(dev_insts, dev_index))) { sr_err("mso19: %s: sdi was NULL", __func__); - return SR_ERR; /* TODO: SR_ERR_ARG? */ + return SR_ERR_BUG; } /* TODO */ @@ -676,9 +681,9 @@ static int hw_dev_config_set(int dev_index, int hwcap, void *value) #define MSO_TRIGGER_DATAREADY '6' /* FIXME: Pass errors? */ -static int receive_data(int fd, int revents, void *user_data) +static int receive_data(int fd, int revents, void *cb_data) { - struct sr_dev_inst *sdi = user_data; + struct sr_dev_inst *sdi = cb_data; struct context *ctx = sdi->priv; struct sr_datafeed_packet packet; struct sr_datafeed_logic logic; @@ -686,7 +691,8 @@ static int receive_data(int fd, int revents, void *user_data) double analog_out[1024]; size_t i, s; - revents = revents; + /* Avoid compiler warnings. */ + (void)revents; s = serial_read(fd, in, sizeof(in)); if (s <= 0) @@ -726,7 +732,7 @@ static int receive_data(int fd, int revents, void *user_data) logic.length = 1024; logic.unitsize = 1; logic.data = logic_out; - sr_session_bus(ctx->session_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); // Dont bother fixing this yet, keep it "old style" /* @@ -734,16 +740,16 @@ static int receive_data(int fd, int revents, void *user_data) packet.length = 1024; packet.unitsize = sizeof(double); packet.payload = analog_out; - sr_session_bus(ctx->session_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); */ packet.type = SR_DF_END; - sr_session_bus(ctx->session_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); return TRUE; } -static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) +static int hw_dev_acquisition_start(int dev_index, void *cb_data) { struct sr_dev_inst *sdi; struct context *ctx; @@ -801,7 +807,7 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) if (ret != SR_OK) return ret; - ctx->session_id = session_dev_id; + ctx->session_dev_id = cb_data; sr_source_add(sdi->serial->fd, G_IO_IN, -1, receive_data, sdi); packet.type = SR_DF_HEADER; @@ -811,25 +817,26 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) header.samplerate = ctx->cur_rate; // header.num_analog_probes = 1; header.num_logic_probes = 8; - sr_session_bus(session_dev_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); return ret; } -/* FIXME */ -static int hw_dev_acquisition_stop(int dev_index, gpointer session_dev_id) +/* TODO: This stops acquisition on ALL devices, ignoring dev_index. */ +static int hw_dev_acquisition_stop(int dev_index, void *cb_data) { struct sr_datafeed_packet packet; - dev_index = dev_index; + /* Avoid compiler warnings. */ + (void)dev_index; packet.type = SR_DF_END; - sr_session_bus(session_dev_id, &packet); + sr_session_send(cb_data, &packet); return SR_OK; } -SR_PRIV struct sr_dev_plugin link_mso19_plugin_info = { +SR_PRIV struct sr_dev_driver link_mso19_driver_info = { .name = "link-mso19", .longname = "Link Instruments MSO-19", .api_version = 1,