* ASIX SIGMA Logic Analyzer Driver
*/
-#include "config.h"
#include <glib.h>
#include <glib/gstdio.h>
#include <ftdi.h>
#define USB_MODEL_NAME "SIGMA"
#define USB_MODEL_VERSION ""
#define TRIGGER_TYPES "rf10"
+#define NUM_PROBES 16
static GSList *device_instances = NULL;
0,
};
+static const char *probe_names[NUM_PROBES + 1] = {
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ NULL,
+};
+
static struct sr_samplerates samplerates = {
SR_KHZ(200),
SR_MHZ(200),
for (l = device_instances; l; l = l->next) {
sdi = l->data;
if (sdi->priv != NULL)
- free(sdi->priv);
+ g_free(sdi->priv);
sr_device_instance_free(sdi);
}
g_slist_free(device_instances);
info = sdi;
break;
case SR_DI_NUM_PROBES:
- info = GINT_TO_POINTER(16);
+ info = GINT_TO_POINTER(NUM_PROBES);
+ break;
+ case SR_DI_PROBE_NAMES:
+ info = probe_names;
break;
case SR_DI_SAMPLERATES:
info = &samplerates;
tosend = MIN(2048, n - sent);
packet.type = SR_DF_LOGIC;
- /* TODO: fill in timeoffset and duration */
- packet.timeoffset = 0;
- packet.duration = 0;
packet.payload = &logic;
logic.length = tosend * sizeof(uint16_t);
logic.unitsize = 2;
if (tosend > 0) {
packet.type = SR_DF_LOGIC;
- /* TODO: fill in timeoffset and duration */
- packet.timeoffset = 0;
- packet.duration = 0;
packet.payload = &logic;
logic.length = tosend * sizeof(uint16_t);
logic.unitsize = 2;
/* Only send trigger if explicitly enabled. */
if (sigma->use_triggers) {
packet.type = SR_DF_TRIGGER;
- /* TODO: fill in timeoffset only */
- packet.timeoffset = 0;
- packet.duration = 0;
sr_session_bus(sigma->session_id, &packet);
}
}
if (tosend > 0) {
packet.type = SR_DF_LOGIC;
- /* TODO: fill in timeoffset and duration */
- packet.timeoffset = 0;
- packet.duration = 0;
packet.payload = &logic;
logic.length = tosend * sizeof(uint16_t);
logic.unitsize = 2;
gettimeofday(&header.starttime, NULL);
header.samplerate = sigma->cur_samplerate;
header.num_logic_probes = sigma->num_probes;
- header.num_analog_probes = 0;
sr_session_bus(session_data, &packet);
/* Add capture source. */
sigma->state.state = SIGMA_DOWNLOAD;
}
-struct sr_device_plugin asix_sigma_plugin_info = {
+SR_PRIV struct sr_device_plugin asix_sigma_plugin_info = {
.name = "asix-sigma",
.longname = "ASIX SIGMA",
.api_version = 1,