X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fchronovu-la8%2Fchronovu-la8.c;h=4560d69f47ed68f9539bb0a1892aad7722218da5;hb=5c64390e5ac8a0052d8b7eeb49c781d86027c814;hp=e63e3a5069a21178c2f1e44750a92ea200151f25;hpb=25a605d187e9661757a1e5d4bd15fac2b533c296;p=libsigrok.git diff --git a/hardware/chronovu-la8/chronovu-la8.c b/hardware/chronovu-la8/chronovu-la8.c index e63e3a50..4560d69f 100644 --- a/hardware/chronovu-la8/chronovu-la8.c +++ b/hardware/chronovu-la8/chronovu-la8.c @@ -21,8 +21,8 @@ #include #include #include -#include -#include +#include "sigrok.h" +#include "sigrok-internal.h" #define USB_VENDOR_ID 0x0403 #define USB_PRODUCT_ID 0x6001 @@ -41,6 +41,18 @@ static GSList *device_instances = NULL; +static const char *probe_names[NUM_PROBES + 1] = { + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + NULL, +}; + struct la8 { /** FTDI device context (used by libftdi). */ struct ftdi_context *ftdic; @@ -48,9 +60,6 @@ struct la8 { /** The currently configured samplerate of the device. */ uint64_t cur_samplerate; - /** period in picoseconds corresponding to the samplerate */ - uint64_t period_ps; - /** The current sampling limit (in ms). */ uint64_t limit_msec; @@ -481,7 +490,6 @@ static int hw_init(const char *deviceinfo) /* Set some sane defaults. */ la8->ftdic = NULL; la8->cur_samplerate = SR_MHZ(100); /* 100MHz == max. samplerate */ - la8->period_ps = 10000; la8->limit_msec = 0; la8->limit_samples = 0; la8->session_id = NULL; @@ -631,7 +639,6 @@ static int set_samplerate(struct sr_device_instance *sdi, uint64_t samplerate) /* Set the new samplerate. */ la8->cur_samplerate = samplerate; - la8->period_ps = 1000000000000 / samplerate; sr_dbg("la8: samplerate set to %" PRIu64 "Hz", la8->cur_samplerate); @@ -726,6 +733,9 @@ static void *hw_get_device_info(int device_index, int device_info_id) case SR_DI_NUM_PROBES: info = GINT_TO_POINTER(NUM_PROBES); break; + case SR_DI_PROBE_NAMES: + info = probe_names; + break; case SR_DI_SAMPLERATES: fill_supported_samplerates_if_needed(); info = &samplerates; @@ -920,8 +930,6 @@ static void send_block_to_session_bus(struct la8 *la8, int block) sr_spew("la8: sending SR_DF_LOGIC packet (%d bytes) for " "block %d", BS, block); packet.type = SR_DF_LOGIC; - packet.timeoffset = block * BS * la8->period_ps; - packet.duration = BS * la8->period_ps; packet.payload = &logic; logic.length = BS; logic.unitsize = 1; @@ -945,8 +953,6 @@ static void send_block_to_session_bus(struct la8 *la8, int block) sr_spew("la8: sending pre-trigger SR_DF_LOGIC packet, " "start = %d, length = %d", block * BS, trigger_point); packet.type = SR_DF_LOGIC; - packet.timeoffset = block * BS * la8->period_ps; - packet.duration = trigger_point * la8->period_ps; packet.payload = &logic; logic.length = trigger_point; logic.unitsize = 1; @@ -958,8 +964,6 @@ static void send_block_to_session_bus(struct la8 *la8, int block) sr_spew("la8: sending SR_DF_TRIGGER packet, sample = %d", (block * BS) + trigger_point); packet.type = SR_DF_TRIGGER; - packet.timeoffset = (block * BS + trigger_point) * la8->period_ps; - packet.duration = 0; packet.payload = NULL; sr_session_bus(la8->session_id, &packet); @@ -970,8 +974,6 @@ static void send_block_to_session_bus(struct la8 *la8, int block) "start = %d, length = %d", (block * BS) + trigger_point, BS - trigger_point); packet.type = SR_DF_LOGIC; - packet.timeoffset = (block * BS + trigger_point) * la8->period_ps; - packet.duration = (BS - trigger_point) * la8->period_ps; packet.payload = &logic; logic.length = BS - trigger_point; logic.unitsize = 1; @@ -991,7 +993,7 @@ static int receive_data(int fd, int revents, void *session_data) (void)revents; if (!(sdi = session_data)) { - sr_err("la8: %s: user_data was NULL", __func__); + sr_err("la8: %s: session_data was NULL", __func__); return FALSE; } @@ -1086,7 +1088,6 @@ static int hw_start_acquisition(int device_index, gpointer session_data) gettimeofday(&header.starttime, NULL); header.samplerate = la8->cur_samplerate; header.num_logic_probes = NUM_PROBES; - header.num_analog_probes = 0; sr_session_bus(session_data, &packet); /* Time when we should be done (for detecting trigger timeouts). */ @@ -1125,7 +1126,7 @@ static void hw_stop_acquisition(int device_index, gpointer session_data) sr_session_bus(session_data, &packet); } -struct sr_device_plugin chronovu_la8_plugin_info = { +SR_PRIV struct sr_device_plugin chronovu_la8_plugin_info = { .name = "chronovu-la8", .longname = "ChronoVu LA8", .api_version = 1,