"Parallel",
};
-static struct pps_model models[] = {
+static const struct pps_model models[] = {
{ PPS_3203T_3S, "PPS3203T-3S",
CHANMODE_INDEPENDENT | CHANMODE_SERIES | CHANMODE_PARALLEL,
3,
},
};
-
SR_PRIV struct sr_dev_driver atten_pps3203_driver_info;
-static struct sr_dev_driver *di = &atten_pps3203_driver_info;
-static int init(struct sr_context *sr_ctx)
+static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx)
{
return std_init(sr_ctx, di, LOG_PREFIX);
}
-static GSList *scan(GSList *options, int modelid)
+static GSList *scan(struct sr_dev_driver *di, GSList *options, int modelid)
{
struct sr_dev_inst *sdi;
struct drv_context *drvc;
struct sr_channel_group *cg;
struct sr_serial_dev_inst *serial;
GSList *l, *devices;
- struct pps_model *model;
+ const struct pps_model *model;
uint8_t packet[PACKET_SIZE];
unsigned int i;
int delay_ms, ret;
if (!serialcomm)
serialcomm = SERIALCOMM;
- if (!(serial = sr_serial_dev_inst_new(conn, serialcomm)))
- return NULL;
+ serial = sr_serial_dev_inst_new(conn, serialcomm);
if (serial_open(serial, SERIAL_RDWR) != SR_OK)
return NULL;
+
serial_flush(serial);
/* This is how the vendor software scans for hardware. */
return NULL;
}
- sdi = sr_dev_inst_new();
+ sdi = g_malloc0(sizeof(struct sr_dev_inst));
sdi->status = SR_ST_INACTIVE;
sdi->vendor = g_strdup("Atten");
sdi->model = g_strdup(model->name);
sdi->conn = serial;
for (i = 0; i < MAX_CHANNELS; i++) {
snprintf(channel, 10, "CH%d", i + 1);
- ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE, channel);
- sdi->channels = g_slist_append(sdi->channels, ch);
+ ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, channel);
cg = g_malloc(sizeof(struct sr_channel_group));
cg->name = g_strdup(channel);
cg->channels = g_slist_append(NULL, ch);
return devices;
}
-static GSList *scan_3203(GSList *options)
+static GSList *scan_3203(struct sr_dev_driver *di, GSList *options)
{
- return scan(options, PPS_3203T_3S);
+ return scan(di, options, PPS_3203T_3S);
}
-static GSList *dev_list(void)
+static GSList *dev_list(const struct sr_dev_driver *di)
{
return ((struct drv_context *)(di->priv))->instances;
}
-static int cleanup(void)
+static int cleanup(const struct sr_dev_driver *di)
{
return std_dev_clear(di, NULL);
}