Simplify channel creation.
We always follow sr_channel_new() with a call to add the channel to the sdi. Tidy up a bit by adding this functionality to sr_channel_new() instead.
This commit is contained in:
parent
bc49777251
commit
5e23fcab88
14
src/device.c
14
src/device.c
|
@ -42,7 +42,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @private
|
/** @private
|
||||||
* Allocate and initialize new struct sr_channel
|
* Allocate and initialize new struct sr_channel and add to sdi.
|
||||||
|
* @param[in] sdi The device instance the channel is connected to.
|
||||||
* @param[in] index @copydoc sr_channel::index
|
* @param[in] index @copydoc sr_channel::index
|
||||||
* @param[in] type @copydoc sr_channel::type
|
* @param[in] type @copydoc sr_channel::type
|
||||||
* @param[in] enabled @copydoc sr_channel::enabled
|
* @param[in] enabled @copydoc sr_channel::enabled
|
||||||
|
@ -50,8 +51,8 @@
|
||||||
*
|
*
|
||||||
* @return A new struct sr_channel*.
|
* @return A new struct sr_channel*.
|
||||||
*/
|
*/
|
||||||
SR_PRIV struct sr_channel *sr_channel_new(int index, int type,
|
SR_PRIV struct sr_channel *sr_channel_new(struct sr_dev_inst *sdi,
|
||||||
gboolean enabled, const char *name)
|
int index, int type, gboolean enabled, const char *name)
|
||||||
{
|
{
|
||||||
struct sr_channel *ch;
|
struct sr_channel *ch;
|
||||||
|
|
||||||
|
@ -62,6 +63,8 @@ SR_PRIV struct sr_channel *sr_channel_new(int index, int type,
|
||||||
if (name)
|
if (name)
|
||||||
ch->name = g_strdup(name);
|
ch->name = g_strdup(name);
|
||||||
|
|
||||||
|
sdi->channels = g_slist_append(sdi->channels, ch);
|
||||||
|
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,13 +230,10 @@ SR_API struct sr_dev_inst *sr_dev_inst_user_new(const char *vendor,
|
||||||
*/
|
*/
|
||||||
SR_API int sr_dev_inst_channel_add(struct sr_dev_inst *sdi, int index, int type, const char *name)
|
SR_API int sr_dev_inst_channel_add(struct sr_dev_inst *sdi, int index, int type, const char *name)
|
||||||
{
|
{
|
||||||
struct sr_channel *ch;
|
|
||||||
|
|
||||||
if (!sdi || sdi->inst_type != SR_INST_USER || index < 0)
|
if (!sdi || sdi->inst_type != SR_INST_USER || index < 0)
|
||||||
return SR_ERR_ARG;
|
return SR_ERR_ARG;
|
||||||
|
|
||||||
ch = sr_channel_new(index, type, TRUE, name);
|
sr_channel_new(sdi, index, type, TRUE, name);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,6 @@ static GSList *scan(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
int len, i;
|
int len, i;
|
||||||
|
@ -150,8 +149,7 @@ static GSList *scan(GSList *options)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -55,7 +55,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
GSList *devices, *l;
|
GSList *devices, *l;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
|
@ -110,10 +109,8 @@ static GSList *scan(GSList *options)
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "T1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "T1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "T2");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "T2");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
|
@ -325,7 +325,6 @@ static int init(struct sr_context *sr_ctx)
|
||||||
static GSList *scan(GSList *options)
|
static GSList *scan(GSList *options)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
|
@ -383,11 +382,9 @@ static GSList *scan(GSList *options)
|
||||||
sdi->model = g_strdup(USB_MODEL_NAME);
|
sdi->model = g_strdup(USB_MODEL_NAME);
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(channel_names); i++) {
|
for (i = 0; i < ARRAY_SIZE(channel_names); i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
channel_names[i]);
|
channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -173,8 +173,7 @@ static GSList *scan(GSList *options, int modelid)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
for (i = 0; i < MAX_CHANNELS; i++) {
|
for (i = 0; i < MAX_CHANNELS; i++) {
|
||||||
snprintf(channel, 10, "CH%d", i + 1);
|
snprintf(channel, 10, "CH%d", i + 1);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE, channel);
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, channel);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
cg = g_malloc(sizeof(struct sr_channel_group));
|
cg = g_malloc(sizeof(struct sr_channel_group));
|
||||||
cg->name = g_strdup(channel);
|
cg->name = g_strdup(channel);
|
||||||
cg->channels = g_slist_append(NULL, ch);
|
cg->channels = g_slist_append(NULL, ch);
|
||||||
|
|
|
@ -201,13 +201,12 @@ static void append_channel(struct sr_dev_inst *sdi, struct sr_channel_group *cg,
|
||||||
cp->ch_type = type;
|
cp->ch_type = type;
|
||||||
cp->probe = cg->priv;
|
cp->probe = cg->priv;
|
||||||
|
|
||||||
ch = sr_channel_new(devc->num_channels++,
|
ch = sr_channel_new(sdi, devc->num_channels++,
|
||||||
SR_CHANNEL_ANALOG, TRUE, name);
|
SR_CHANNEL_ANALOG, TRUE, name);
|
||||||
g_free(name);
|
g_free(name);
|
||||||
|
|
||||||
ch->priv = cp;
|
ch->priv = cp;
|
||||||
cg->channels = g_slist_append(cg->channels, ch);
|
cg->channels = g_slist_append(cg->channels, ch);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV gboolean bl_acme_register_probe(struct sr_dev_inst *sdi, int type,
|
SR_PRIV gboolean bl_acme_register_probe(struct sr_dev_inst *sdi, int type,
|
||||||
|
|
|
@ -86,7 +86,6 @@ static GSList *scan(GSList *options)
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
int i, maxch;
|
int i, maxch;
|
||||||
|
|
||||||
devices = NULL;
|
devices = NULL;
|
||||||
|
@ -136,11 +135,9 @@ static GSList *scan(GSList *options)
|
||||||
sr_info("BeagleLogic device found at "BEAGLELOGIC_DEV_NODE);
|
sr_info("BeagleLogic device found at "BEAGLELOGIC_DEV_NODE);
|
||||||
|
|
||||||
/* Fill the channels */
|
/* Fill the channels */
|
||||||
for (i = 0; i < maxch; i++) {
|
for (i = 0; i < maxch; i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
beaglelogic_channel_names[i]);
|
beaglelogic_channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -48,7 +48,6 @@ static GSList *scan(GSList *options)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
const char *conn;
|
const char *conn;
|
||||||
|
|
||||||
drvc = di->priv;
|
drvc = di->priv;
|
||||||
|
@ -80,10 +79,8 @@ static GSList *scan(GSList *options)
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P2");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P2");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
sdi->inst_type = SR_INST_USB;
|
sdi->inst_type = SR_INST_USB;
|
||||||
sdi->conn = usb;
|
sdi->conn = usb;
|
||||||
|
|
|
@ -44,7 +44,6 @@ static GSList *brymen_scan(const char *conn, const char *serialcomm)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -84,8 +83,7 @@ static GSList *brymen_scan(const char *conn, const char *serialcomm)
|
||||||
drvc = di->priv;
|
drvc = di->priv;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,6 @@ static GSList *scan(GSList *options)
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
gint64 start;
|
gint64 start;
|
||||||
const char *conn;
|
const char *conn;
|
||||||
|
@ -122,8 +121,7 @@ static GSList *scan(GSList *options)
|
||||||
sdi->inst_type = SR_INST_SERIAL;
|
sdi->inst_type = SR_INST_SERIAL;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "SPL");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "SPL");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -72,7 +72,6 @@ static GSList *center_scan(const char *conn, const char *serialcomm, int idx)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
|
|
||||||
|
@ -98,9 +97,8 @@ static GSList *center_scan(const char *conn, const char *serialcomm, int idx)
|
||||||
sdi->driver = center_devs[idx].di;
|
sdi->driver = center_devs[idx].di;
|
||||||
|
|
||||||
for (i = 0; i < center_devs[idx].num_channels; i++) {
|
for (i = 0; i < center_devs[idx].num_channels; i++) {
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG,
|
sr_channel_new(sdi, i, SR_CHANNEL_ANALOG,
|
||||||
TRUE, channel_names[i]);
|
TRUE, channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -80,7 +80,6 @@ static int add_device(int idx, int model, GSList **devices)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
|
|
||||||
ret = SR_OK;
|
ret = SR_OK;
|
||||||
|
|
||||||
|
@ -127,11 +126,9 @@ static int add_device(int idx, int model, GSList **devices)
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
|
|
||||||
for (i = 0; i < devc->prof->num_channels; i++) {
|
for (i = 0; i < devc->prof->num_channels; i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
cv_channel_names[i]);
|
cv_channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
*devices = g_slist_append(*devices, sdi);
|
*devices = g_slist_append(*devices, sdi);
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -56,7 +56,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
GSList *devices, *l;
|
GSList *devices, *l;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
|
|
||||||
|
@ -91,8 +90,7 @@ static GSList *scan(GSList *options)
|
||||||
sdi->inst_type = SR_INST_SERIAL;
|
sdi->inst_type = SR_INST_SERIAL;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ static GSList *scan(GSList *options)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
|
@ -100,8 +99,7 @@ static GSList *scan(GSList *options)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = NULL;
|
sdi->priv = NULL;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "CH1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "CH1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
||||||
|
|
|
@ -320,8 +320,7 @@ static GSList *scan(GSList *options)
|
||||||
cg->name = g_strdup("Logic");
|
cg->name = g_strdup("Logic");
|
||||||
for (i = 0; i < num_logic_channels; i++) {
|
for (i = 0; i < num_logic_channels; i++) {
|
||||||
sprintf(channel_name, "D%d", i);
|
sprintf(channel_name, "D%d", i);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, channel_name);
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE, channel_name);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
cg->channels = g_slist_append(cg->channels, ch);
|
cg->channels = g_slist_append(cg->channels, ch);
|
||||||
}
|
}
|
||||||
sdi->channel_groups = g_slist_append(NULL, cg);
|
sdi->channel_groups = g_slist_append(NULL, cg);
|
||||||
|
@ -336,9 +335,8 @@ static GSList *scan(GSList *options)
|
||||||
devc->ch_ag = g_hash_table_new(g_direct_hash, g_direct_equal);
|
devc->ch_ag = g_hash_table_new(g_direct_hash, g_direct_equal);
|
||||||
for (i = 0; i < num_analog_channels; i++) {
|
for (i = 0; i < num_analog_channels; i++) {
|
||||||
snprintf(channel_name, 16, "A%d", i);
|
snprintf(channel_name, 16, "A%d", i);
|
||||||
ch = sr_channel_new(i + num_logic_channels, SR_CHANNEL_ANALOG,
|
ch = sr_channel_new(sdi, i + num_logic_channels, SR_CHANNEL_ANALOG,
|
||||||
TRUE, channel_name);
|
TRUE, channel_name);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
acg->channels = g_slist_append(acg->channels, ch);
|
acg->channels = g_slist_append(acg->channels, ch);
|
||||||
|
|
||||||
/* Every analog channel gets its own channel group as well. */
|
/* Every analog channel gets its own channel group as well. */
|
||||||
|
|
|
@ -69,7 +69,6 @@ static GSList *fluke_scan(const char *conn, const char *serialcomm)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
int retry, len, i, s;
|
int retry, len, i, s;
|
||||||
|
@ -132,8 +131,7 @@ static GSList *fluke_scan(const char *conn, const char *serialcomm)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -171,7 +171,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
const struct fx2lafw_profile *prof;
|
const struct fx2lafw_profile *prof;
|
||||||
GSList *l, *devices, *conn_devices;
|
GSList *l, *devices, *conn_devices;
|
||||||
|
@ -288,11 +287,9 @@ static GSList *scan(GSList *options)
|
||||||
|
|
||||||
/* Fill in channellist according to this device's profile. */
|
/* Fill in channellist according to this device's profile. */
|
||||||
num_logic_channels = prof->dev_caps & DEV_CAPS_16BIT ? 16 : 8;
|
num_logic_channels = prof->dev_caps & DEV_CAPS_16BIT ? 16 : 8;
|
||||||
for (j = 0; j < num_logic_channels; j++) {
|
for (j = 0; j < num_logic_channels; j++)
|
||||||
ch = sr_channel_new(j, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, j, SR_CHANNEL_LOGIC, TRUE,
|
||||||
channel_names[j]);
|
channel_names[j]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
devc = fx2lafw_dev_new();
|
devc = fx2lafw_dev_new();
|
||||||
devc->profile = prof;
|
devc->profile = prof;
|
||||||
|
|
|
@ -162,7 +162,6 @@ static GSList *scan_1x_2x_rs232(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
|
@ -236,8 +235,7 @@ static GSList *scan_1x_2x_rs232(GSList *options)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = &gmc_mh_1x_2x_rs232_driver_info;
|
sdi->driver = &gmc_mh_1x_2x_rs232_driver_info;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
}
|
}
|
||||||
|
@ -254,7 +252,6 @@ static GSList *scan_2x_bd232(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
|
@ -332,8 +329,7 @@ static GSList *scan_2x_bd232(GSList *options)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = &gmc_mh_2x_bd232_driver_info;
|
sdi->driver = &gmc_mh_2x_bd232_driver_info;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
|
|
|
@ -616,9 +616,8 @@ SR_PRIV int hmo_init_device(struct sr_dev_inst *sdi)
|
||||||
|
|
||||||
/* Add analog channels. */
|
/* Add analog channels. */
|
||||||
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
|
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE,
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE,
|
||||||
(*scope_models[model_index].analog_names)[i]);
|
(*scope_models[model_index].analog_names)[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
|
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
|
||||||
|
|
||||||
|
@ -643,9 +642,8 @@ SR_PRIV int hmo_init_device(struct sr_dev_inst *sdi)
|
||||||
|
|
||||||
/* Add digital channels. */
|
/* Add digital channels. */
|
||||||
for (i = 0; i < scope_models[model_index].digital_channels; i++) {
|
for (i = 0; i < scope_models[model_index].digital_channels; i++) {
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
(*scope_models[model_index].digital_names)[i]);
|
(*scope_models[model_index].digital_names)[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc->digital_groups[i < 8 ? 0 : 1]->channels = g_slist_append(
|
devc->digital_groups[i < 8 ? 0 : 1]->channels = g_slist_append(
|
||||||
devc->digital_groups[i < 8 ? 0 : 1]->channels, ch);
|
devc->digital_groups[i < 8 ? 0 : 1]->channels, ch);
|
||||||
|
|
|
@ -183,8 +183,7 @@ static struct sr_dev_inst *dso_dev_new(const struct dso_profile *prof)
|
||||||
* a trigger source internal to the device.
|
* a trigger source internal to the device.
|
||||||
*/
|
*/
|
||||||
for (i = 0; channel_names[i]; i++) {
|
for (i = 0; channel_names[i]; i++) {
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE, channel_names[i]);
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
cg = g_malloc0(sizeof(struct sr_channel_group));
|
cg = g_malloc0(sizeof(struct sr_channel_group));
|
||||||
cg->name = g_strdup(channel_names[i]);
|
cg->name = g_strdup(channel_names[i]);
|
||||||
cg->channels = g_slist_append(cg->channels, ch);
|
cg->channels = g_slist_append(cg->channels, ch);
|
||||||
|
|
|
@ -65,7 +65,6 @@ static GSList *scan(GSList *options)
|
||||||
GSList *usb_devices, *devices, *l;
|
GSList *usb_devices, *devices, *l;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct device_info dev_info;
|
struct device_info dev_info;
|
||||||
|
@ -119,12 +118,9 @@ static GSList *scan(GSList *options)
|
||||||
sdi->inst_type = SR_INST_USB;
|
sdi->inst_type = SR_INST_USB;
|
||||||
sdi->conn = usb;
|
sdi->conn = usb;
|
||||||
|
|
||||||
for (i = 0; channel_names[i]; i++) {
|
for (i = 0; channel_names[i]; i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
devc->channels[i] = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC,
|
||||||
channel_names[i]);
|
TRUE, channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
devc->channels[i] = ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
devc->state = STATE_IDLE;
|
devc->state = STATE_IDLE;
|
||||||
devc->next_state = STATE_IDLE;
|
devc->next_state = STATE_IDLE;
|
||||||
|
|
|
@ -74,7 +74,6 @@ static int init(struct sr_context *sr_ctx)
|
||||||
static GSList *scan(GSList *options)
|
static GSList *scan(GSList *options)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
|
@ -127,11 +126,9 @@ static GSList *scan(GSList *options)
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
|
|
||||||
for (i = 0; channel_names[i]; i++) {
|
for (i = 0; channel_names[i]; i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
channel_names[i]);
|
channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -113,7 +113,6 @@ static GSList *scan(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
GSList *usb_devices, *devices, *l;
|
GSList *usb_devices, *devices, *l;
|
||||||
char *model;
|
char *model;
|
||||||
|
|
||||||
|
@ -136,8 +135,7 @@ static GSList *scan(GSList *options)
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
sdi->inst_type = SR_INST_USB;
|
sdi->inst_type = SR_INST_USB;
|
||||||
sdi->conn = l->data;
|
sdi->conn = l->data;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "SPL");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "SPL");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
devc->limit_samples = 0;
|
devc->limit_samples = 0;
|
||||||
|
|
|
@ -293,7 +293,6 @@ static struct sr_dev_inst *lascar_identify(unsigned char *config)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
const struct elusb_profile *profile;
|
const struct elusb_profile *profile;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
int modelid, i;
|
int modelid, i;
|
||||||
char firmware[5];
|
char firmware[5];
|
||||||
|
|
||||||
|
@ -332,16 +331,12 @@ static struct sr_dev_inst *lascar_identify(unsigned char *config)
|
||||||
|
|
||||||
if (profile->logformat == LOG_TEMP_RH) {
|
if (profile->logformat == LOG_TEMP_RH) {
|
||||||
/* Model this as two channels: temperature and humidity. */
|
/* Model this as two channels: temperature and humidity. */
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "Temp");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "Temp");
|
||||||
sdi->channels = g_slist_append(NULL, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "Hum");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "Hum");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
} else if (profile->logformat == LOG_CO) {
|
} else if (profile->logformat == LOG_CO) {
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "CO");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "CO");
|
||||||
sdi->channels = g_slist_append(NULL, ch);
|
|
||||||
} else {
|
} else {
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(NULL, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
|
|
|
@ -215,11 +215,9 @@ static GSList *scan(GSList *options)
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
|
|
||||||
for (i = 0; i < NUM_CHANNELS; i++) {
|
for (i = 0; i < NUM_CHANNELS; i++) {
|
||||||
struct sr_channel *ch;
|
|
||||||
chtype = (i == 0) ? SR_CHANNEL_ANALOG : SR_CHANNEL_LOGIC;
|
chtype = (i == 0) ? SR_CHANNEL_ANALOG : SR_CHANNEL_LOGIC;
|
||||||
ch = sr_channel_new(i, chtype, TRUE,
|
sr_channel_new(sdi, i, chtype, TRUE,
|
||||||
mso19_channel_names[i]);
|
mso19_channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add the driver
|
//Add the driver
|
||||||
|
|
|
@ -92,7 +92,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
GSList *devices, *l;
|
GSList *devices, *l;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
|
@ -162,8 +161,7 @@ static GSList *scan(GSList *options)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "CH1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "CH1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
devc->model = &models[model_id];
|
devc->model = &models[model_id];
|
||||||
|
|
|
@ -71,7 +71,6 @@ static GSList *mic_scan(const char *conn, const char *serialcomm, int idx)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
|
|
||||||
|
@ -100,13 +99,10 @@ static GSList *mic_scan(const char *conn, const char *serialcomm, int idx)
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = mic_devs[idx].di;
|
sdi->driver = mic_devs[idx].di;
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "Temperature");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "Temperature");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
if (mic_devs[idx].has_humidity) {
|
if (mic_devs[idx].has_humidity)
|
||||||
ch = sr_channel_new(1, SR_CHANNEL_ANALOG, TRUE, "Humidity");
|
sr_channel_new(sdi, 1, SR_CHANNEL_ANALOG, TRUE, "Humidity");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
|
@ -470,8 +470,7 @@ static GSList *do_scan(lps_modelid modelid, struct sr_dev_driver *drv, GSList *o
|
||||||
/* Setup channels and channel groups. */
|
/* Setup channels and channel groups. */
|
||||||
for (cnt = 0; cnt < models[modelid].num_channels; cnt++) {
|
for (cnt = 0; cnt < models[modelid].num_channels; cnt++) {
|
||||||
snprintf(channel, sizeof(channel), "CH%d", cnt + 1);
|
snprintf(channel, sizeof(channel), "CH%d", cnt + 1);
|
||||||
ch = sr_channel_new(cnt, SR_CHANNEL_ANALOG, TRUE, channel);
|
ch = sr_channel_new(sdi, cnt, SR_CHANNEL_ANALOG, TRUE, channel);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc->channel_status[cnt].info = g_slist_append(NULL, ch);
|
devc->channel_status[cnt].info = g_slist_append(NULL, ch);
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,6 @@ static GSList *do_scan(struct sr_dev_driver* drv, GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
int len, cnt;
|
int len, cnt;
|
||||||
|
@ -155,8 +154,7 @@ static GSList *do_scan(struct sr_dev_driver* drv, GSList *options)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = drv;
|
sdi->driver = drv;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -98,7 +98,6 @@ static GSList *scan(GSList *options)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *l, *devices;
|
GSList *l, *devices;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
@ -194,11 +193,9 @@ static GSList *scan(GSList *options)
|
||||||
sdi->model = g_strdup("Logic Analyzer");
|
sdi->model = g_strdup("Logic Analyzer");
|
||||||
sdi->version = g_strdup("v1.0");
|
sdi->version = g_strdup("v1.0");
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
ols_channel_names[i]);
|
ols_channel_names[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
devc = ols_dev_new();
|
devc = ols_dev_new();
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,7 +142,6 @@ SR_PRIV struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
uint32_t tmp_int, ui;
|
uint32_t tmp_int, ui;
|
||||||
uint8_t key, type, token;
|
uint8_t key, type, token;
|
||||||
int delay_ms;
|
int delay_ms;
|
||||||
|
@ -215,11 +214,9 @@ SR_PRIV struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial)
|
||||||
switch (token) {
|
switch (token) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
/* Number of usable channels */
|
/* Number of usable channels */
|
||||||
for (ui = 0; ui < tmp_int; ui++) {
|
for (ui = 0; ui < tmp_int; ui++)
|
||||||
ch = sr_channel_new(ui, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, ui, SR_CHANNEL_LOGIC, TRUE,
|
||||||
ols_channel_names[ui]);
|
ols_channel_names[ui]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
/* Amount of sample memory available (bytes) */
|
/* Amount of sample memory available (bytes) */
|
||||||
|
@ -253,11 +250,9 @@ SR_PRIV struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial)
|
||||||
switch (token) {
|
switch (token) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
/* Number of usable channels */
|
/* Number of usable channels */
|
||||||
for (ui = 0; ui < tmp_c; ui++) {
|
for (ui = 0; ui < tmp_c; ui++)
|
||||||
ch = sr_channel_new(ui, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, ui, SR_CHANNEL_LOGIC, TRUE,
|
||||||
ols_channel_names[ui]);
|
ols_channel_names[ui]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
/* protocol version */
|
/* protocol version */
|
||||||
|
|
|
@ -219,7 +219,6 @@ SR_PRIV int pols_convert_trigger(const struct sr_dev_inst *sdi)
|
||||||
SR_PRIV struct sr_dev_inst *p_ols_get_metadata(uint8_t *buf, int bytes_read, struct dev_context *devc)
|
SR_PRIV struct sr_dev_inst *p_ols_get_metadata(uint8_t *buf, int bytes_read, struct dev_context *devc)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
uint32_t tmp_int, ui;
|
uint32_t tmp_int, ui;
|
||||||
uint8_t key, type, token;
|
uint8_t key, type, token;
|
||||||
GString *tmp_str, *devname, *version;
|
GString *tmp_str, *devname, *version;
|
||||||
|
@ -288,11 +287,9 @@ SR_PRIV struct sr_dev_inst *p_ols_get_metadata(uint8_t *buf, int bytes_read, str
|
||||||
switch (token) {
|
switch (token) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
/* Number of usable channels */
|
/* Number of usable channels */
|
||||||
for (ui = 0; ui < tmp_int; ui++) {
|
for (ui = 0; ui < tmp_int; ui++)
|
||||||
ch = sr_channel_new(ui, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, ui, SR_CHANNEL_LOGIC, TRUE,
|
||||||
p_ols_channel_names[ui]);
|
p_ols_channel_names[ui]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
/* Amount of sample memory available (bytes) */
|
/* Amount of sample memory available (bytes) */
|
||||||
|
@ -324,11 +321,9 @@ SR_PRIV struct sr_dev_inst *p_ols_get_metadata(uint8_t *buf, int bytes_read, str
|
||||||
switch (token) {
|
switch (token) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
/* Number of usable channels */
|
/* Number of usable channels */
|
||||||
for (ui = 0; ui < tmp_c; ui++) {
|
for (ui = 0; ui < tmp_c; ui++)
|
||||||
ch = sr_channel_new(ui, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, ui, SR_CHANNEL_LOGIC, TRUE,
|
||||||
p_ols_channel_names[ui]);
|
p_ols_channel_names[ui]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
/* protocol version */
|
/* protocol version */
|
||||||
|
|
|
@ -345,8 +345,7 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi)
|
||||||
for (i = 0; i < model->analog_channels; i++) {
|
for (i = 0; i < model->analog_channels; i++) {
|
||||||
if (!(channel_name = g_strdup_printf("CH%d", i + 1)))
|
if (!(channel_name = g_strdup_printf("CH%d", i + 1)))
|
||||||
return NULL;
|
return NULL;
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE, channel_name);
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, channel_name);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
|
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
|
||||||
|
|
||||||
|
@ -362,9 +361,8 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi)
|
||||||
for (i = 0; i < ARRAY_SIZE(devc->digital_channels); i++) {
|
for (i = 0; i < ARRAY_SIZE(devc->digital_channels); i++) {
|
||||||
if (!(channel_name = g_strdup_printf("D%d", i)))
|
if (!(channel_name = g_strdup_printf("D%d", i)))
|
||||||
return NULL;
|
return NULL;
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, channel_name);
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE, channel_name);
|
||||||
g_free(channel_name);
|
g_free(channel_name);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
devc->digital_group->channels = g_slist_append(
|
devc->digital_group->channels = g_slist_append(
|
||||||
devc->digital_group->channels, ch);
|
devc->digital_group->channels, ch);
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,7 +145,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
GSList *l, *devices, *conn_devices;
|
GSList *l, *devices, *conn_devices;
|
||||||
struct libusb_device_descriptor des;
|
struct libusb_device_descriptor des;
|
||||||
|
@ -206,11 +205,9 @@ static GSList *scan(GSList *options)
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
sdi->connection_id = g_strdup(connection_id);
|
sdi->connection_id = g_strdup(connection_id);
|
||||||
|
|
||||||
for (j = 0; channel_names[j]; j++) {
|
for (j = 0; channel_names[j]; j++)
|
||||||
ch = sr_channel_new(j, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, j, SR_CHANNEL_LOGIC, TRUE,
|
||||||
channel_names[j]);
|
channel_names[j]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
devc->selected_voltage_range = VOLTAGE_RANGE_18_33_V;
|
devc->selected_voltage_range = VOLTAGE_RANGE_18_33_V;
|
||||||
|
|
|
@ -133,13 +133,13 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi)
|
||||||
continue;
|
continue;
|
||||||
g_snprintf(ch_name, 16, "%s%s", pci[i].prefix,
|
g_snprintf(ch_name, 16, "%s%s", pci[i].prefix,
|
||||||
channels[ch_num].name);
|
channels[ch_num].name);
|
||||||
ch = sr_channel_new(ch_idx++, SR_CHANNEL_ANALOG, TRUE, ch_name);
|
ch = sr_channel_new(sdi, ch_idx++, SR_CHANNEL_ANALOG, TRUE,
|
||||||
|
ch_name);
|
||||||
pch = g_malloc0(sizeof(struct pps_channel));
|
pch = g_malloc0(sizeof(struct pps_channel));
|
||||||
pch->hw_output_idx = ch_num;
|
pch->hw_output_idx = ch_num;
|
||||||
pch->hwname = channels[ch_num].name;
|
pch->hwname = channels[ch_num].name;
|
||||||
pch->mq = pci[i].mq;
|
pch->mq = pci[i].mq;
|
||||||
ch->priv = pch;
|
ch->priv = pch;
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -410,7 +410,6 @@ static GSList *sdmm_scan(const char *conn, const char *serialcomm, int dmm)
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
int dropped, ret;
|
int dropped, ret;
|
||||||
|
@ -472,8 +471,7 @@ static GSList *sdmm_scan(const char *conn, const char *serialcomm, int dmm)
|
||||||
sdi->conn = serial;
|
sdi->conn = serial;
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = dmms[dmm].di;
|
sdi->driver = dmms[dmm].di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
||||||
|
|
|
@ -79,30 +79,12 @@ static int init(struct sr_context *sr_ctx)
|
||||||
return std_init(sr_ctx, di, LOG_PREFIX);
|
return std_init(sr_ctx, di, LOG_PREFIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GSList *gen_channel_list(int num_channels)
|
|
||||||
{
|
|
||||||
GSList *list;
|
|
||||||
struct sr_channel *ch;
|
|
||||||
int i;
|
|
||||||
char name[8];
|
|
||||||
|
|
||||||
list = NULL;
|
|
||||||
|
|
||||||
for (i = num_channels; i > 0; --i) {
|
|
||||||
/* The LWLA series simply number channels from CH1 to CHxx. */
|
|
||||||
g_snprintf(name, sizeof(name), "CH%d", i);
|
|
||||||
|
|
||||||
ch = sr_channel_new(i - 1, SR_CHANNEL_LOGIC, TRUE, name);
|
|
||||||
list = g_slist_prepend(list, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct sr_dev_inst *dev_inst_new(void)
|
static struct sr_dev_inst *dev_inst_new(void)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
|
int i;
|
||||||
|
char name[8];
|
||||||
|
|
||||||
/* Allocate memory for our private driver context. */
|
/* Allocate memory for our private driver context. */
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
|
@ -118,7 +100,11 @@ static struct sr_dev_inst *dev_inst_new(void)
|
||||||
devc->samplerate = DEFAULT_SAMPLERATE;
|
devc->samplerate = DEFAULT_SAMPLERATE;
|
||||||
|
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->channels = gen_channel_list(NUM_CHANNELS);
|
for (i = NUM_CHANNELS; i > 0; --i) {
|
||||||
|
/* The LWLA series simply number channels from CH1 to CHxx. */
|
||||||
|
g_snprintf(name, sizeof(name), "CH%d", i);
|
||||||
|
sr_channel_new(sdi, i - 1, SR_CHANNEL_LOGIC, TRUE, name);
|
||||||
|
}
|
||||||
|
|
||||||
return sdi;
|
return sdi;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
GSList *devices = NULL, *l;
|
GSList *devices = NULL, *l;
|
||||||
const char *conn = NULL, *serialcomm = NULL;
|
const char *conn = NULL, *serialcomm = NULL;
|
||||||
uint8_t buf[292];
|
uint8_t buf[292];
|
||||||
|
@ -103,42 +102,27 @@ static GSList *scan(GSList *options)
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
if (devc->optarif == OPTARIF_BASE) {
|
if (devc->optarif == OPTARIF_BASE) {
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "BASE");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "BASE");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
} else if (devc->optarif == OPTARIF_HC) {
|
} else if (devc->optarif == OPTARIF_HC) {
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HP");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HP");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HC");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HC");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
} else if (devc->optarif == OPTARIF_EJP) {
|
} else if (devc->optarif == OPTARIF_EJP) {
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HN");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HN");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HPM");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HPM");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
} else if (devc->optarif == OPTARIF_BBR) {
|
} else if (devc->optarif == OPTARIF_BBR) {
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HPJB");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HPJB");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HPJW");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HPJW");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HPJR");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HCJB");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HPJR");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HCJW");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "HCJR");
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HCJB");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HCJW");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "HCJR");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "IINST");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "IINST");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "PAPP");
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "PAPP");
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
|
@ -59,7 +59,6 @@ SR_PRIV int testo_probe_channels(struct sr_dev_inst *sdi)
|
||||||
{
|
{
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct sr_channel *ch;
|
|
||||||
int unit, packet_len, len, i;
|
int unit, packet_len, len, i;
|
||||||
unsigned char packet[MAX_REPLY_SIZE], buf[MAX_REPLY_SIZE];
|
unsigned char packet[MAX_REPLY_SIZE], buf[MAX_REPLY_SIZE];
|
||||||
char *probe_name;
|
char *probe_name;
|
||||||
|
@ -136,8 +135,7 @@ SR_PRIV int testo_probe_channels(struct sr_dev_inst *sdi)
|
||||||
sr_dbg("Unsupported measurement unit %d", unit);
|
sr_dbg("Unsupported measurement unit %d", unit);
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE, probe_name);
|
sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, probe_name);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
devc->num_channels = packet[6];
|
devc->num_channels = packet[6];
|
||||||
sr_dbg("Found %d channel%s.", devc->num_channels,
|
sr_dbg("Found %d channel%s.", devc->num_channels,
|
||||||
|
|
|
@ -51,7 +51,6 @@ static GSList *scan(GSList *options)
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
GSList *devices, *l;
|
GSList *devices, *l;
|
||||||
const char *conn, *serialcomm;
|
const char *conn, *serialcomm;
|
||||||
struct sr_serial_dev_inst *serial;
|
struct sr_serial_dev_inst *serial;
|
||||||
|
@ -100,8 +99,7 @@ static GSList *scan(GSList *options)
|
||||||
|
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
|
|
||||||
|
|
|
@ -235,7 +235,6 @@ static GSList *scan(GSList *options, int dmm)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
struct sr_channel *ch;
|
|
||||||
const char *conn;
|
const char *conn;
|
||||||
|
|
||||||
drvc = udmms[dmm].di->priv;
|
drvc = udmms[dmm].di->priv;
|
||||||
|
@ -268,8 +267,7 @@ static GSList *scan(GSList *options, int dmm)
|
||||||
sdi->model = g_strdup(udmms[dmm].device);
|
sdi->model = g_strdup(udmms[dmm].device);
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
sdi->driver = udmms[dmm].di;
|
sdi->driver = udmms[dmm].di;
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
sdi->inst_type = SR_INST_USB;
|
sdi->inst_type = SR_INST_USB;
|
||||||
sdi->conn = usb;
|
sdi->conn = usb;
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -53,7 +53,6 @@ static GSList *scan(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
GSList *usb_devices, *devices, *l;
|
GSList *usb_devices, *devices, *l;
|
||||||
int i;
|
int i;
|
||||||
|
@ -86,11 +85,8 @@ static GSList *scan(GSList *options)
|
||||||
sdi->driver = di;
|
sdi->driver = di;
|
||||||
sdi->inst_type = SR_INST_USB;
|
sdi->inst_type = SR_INST_USB;
|
||||||
sdi->conn = l->data;
|
sdi->conn = l->data;
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++)
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE,
|
sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, channels[i]);
|
||||||
channels[i]);
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
devc->limit_samples = 0;
|
devc->limit_samples = 0;
|
||||||
|
|
|
@ -59,7 +59,6 @@ static GSList *scan(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct libusb_device_descriptor des;
|
struct libusb_device_descriptor des;
|
||||||
libusb_device **devlist;
|
libusb_device **devlist;
|
||||||
GSList *devices;
|
GSList *devices;
|
||||||
|
@ -92,8 +91,7 @@ static GSList *scan(GSList *options)
|
||||||
devc = g_malloc0(sizeof(struct dev_context));
|
devc = g_malloc0(sizeof(struct dev_context));
|
||||||
sdi->priv = devc;
|
sdi->priv = devc;
|
||||||
|
|
||||||
ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
|
||||||
sdi->channels = g_slist_append(NULL, ch);
|
|
||||||
|
|
||||||
sdi->conn = sr_usb_dev_inst_new(libusb_get_bus_number(devlist[i]),
|
sdi->conn = sr_usb_dev_inst_new(libusb_get_bus_number(devlist[i]),
|
||||||
libusb_get_device_address(devlist[i]), NULL);
|
libusb_get_device_address(devlist[i]), NULL);
|
||||||
|
|
|
@ -669,9 +669,8 @@ SR_PRIV int dlm_device_init(struct sr_dev_inst *sdi, int model_index)
|
||||||
|
|
||||||
/* Add analog channels. */
|
/* Add analog channels. */
|
||||||
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
|
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE,
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE,
|
||||||
(*scope_models[model_index].analog_names)[i]);
|
(*scope_models[model_index].analog_names)[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
|
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
|
||||||
|
|
||||||
|
@ -698,9 +697,8 @@ SR_PRIV int dlm_device_init(struct sr_dev_inst *sdi, int model_index)
|
||||||
|
|
||||||
/* Add digital channels. */
|
/* Add digital channels. */
|
||||||
for (i = 0; i < scope_models[model_index].digital_channels; i++) {
|
for (i = 0; i < scope_models[model_index].digital_channels; i++) {
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
|
ch = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
|
||||||
(*scope_models[model_index].digital_names)[i]);
|
(*scope_models[model_index].digital_names)[i]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
devc->digital_groups[i / 8]->channels = g_slist_append(
|
devc->digital_groups[i / 8]->channels = g_slist_append(
|
||||||
devc->digital_groups[i / 8]->channels, ch);
|
devc->digital_groups[i / 8]->channels, ch);
|
||||||
|
|
|
@ -164,7 +164,6 @@ static int init(struct sr_context *sr_ctx)
|
||||||
static GSList *scan(GSList *options)
|
static GSList *scan(GSList *options)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
const struct zp_model *prof;
|
const struct zp_model *prof;
|
||||||
|
@ -247,11 +246,9 @@ static GSList *scan(GSList *options)
|
||||||
// memset(devc->trigger_buffer, 0, NUM_TRIGGER_STAGES);
|
// memset(devc->trigger_buffer, 0, NUM_TRIGGER_STAGES);
|
||||||
|
|
||||||
/* Fill in channellist according to this device's profile. */
|
/* Fill in channellist according to this device's profile. */
|
||||||
for (j = 0; j < devc->num_channels; j++) {
|
for (j = 0; j < devc->num_channels; j++)
|
||||||
ch = sr_channel_new(j, SR_CHANNEL_LOGIC, TRUE,
|
sr_channel_new(sdi, j, SR_CHANNEL_LOGIC, TRUE,
|
||||||
channel_names[j]);
|
channel_names[j]);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
devices = g_slist_append(devices, sdi);
|
devices = g_slist_append(devices, sdi);
|
||||||
drvc->instances = g_slist_append(drvc->instances, sdi);
|
drvc->instances = g_slist_append(drvc->instances, sdi);
|
||||||
|
|
|
@ -39,7 +39,6 @@ struct context {
|
||||||
|
|
||||||
static int init(struct sr_input *in, GHashTable *options)
|
static int init(struct sr_input *in, GHashTable *options)
|
||||||
{
|
{
|
||||||
struct sr_channel *ch;
|
|
||||||
struct context *inc;
|
struct context *inc;
|
||||||
int num_channels, i;
|
int num_channels, i;
|
||||||
char name[16];
|
char name[16];
|
||||||
|
@ -57,8 +56,7 @@ static int init(struct sr_input *in, GHashTable *options)
|
||||||
|
|
||||||
for (i = 0; i < num_channels; i++) {
|
for (i = 0; i < num_channels; i++) {
|
||||||
snprintf(name, 16, "%d", i);
|
snprintf(name, 16, "%d", i);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, name);
|
sr_channel_new(in->sdi, i, SR_CHANNEL_LOGIC, TRUE, name);
|
||||||
in->sdi->channels = g_slist_append(in->sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
|
|
@ -51,7 +51,6 @@ static int format_match(GHashTable *metadata)
|
||||||
|
|
||||||
static int init(struct sr_input *in, GHashTable *options)
|
static int init(struct sr_input *in, GHashTable *options)
|
||||||
{
|
{
|
||||||
struct sr_channel *ch;
|
|
||||||
struct context *inc;
|
struct context *inc;
|
||||||
int num_channels, i;
|
int num_channels, i;
|
||||||
char name[16];
|
char name[16];
|
||||||
|
@ -69,8 +68,7 @@ static int init(struct sr_input *in, GHashTable *options)
|
||||||
|
|
||||||
for (i = 0; i < num_channels; i++) {
|
for (i = 0; i < num_channels; i++) {
|
||||||
snprintf(name, 16, "%d", i);
|
snprintf(name, 16, "%d", i);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, name);
|
sr_channel_new(in->sdi, i, SR_CHANNEL_LOGIC, TRUE, name);
|
||||||
in->sdi->channels = g_slist_append(in->sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
|
|
@ -472,7 +472,6 @@ static char *get_line_termination(GString *buf)
|
||||||
static int initial_parse(const struct sr_input *in, GString *buf)
|
static int initial_parse(const struct sr_input *in, GString *buf)
|
||||||
{
|
{
|
||||||
struct context *inc;
|
struct context *inc;
|
||||||
struct sr_channel *ch;
|
|
||||||
GString *channel_name;
|
GString *channel_name;
|
||||||
gsize num_columns, l, i;
|
gsize num_columns, l, i;
|
||||||
unsigned int line_number;
|
unsigned int line_number;
|
||||||
|
@ -558,8 +557,7 @@ static int initial_parse(const struct sr_input *in, GString *buf)
|
||||||
g_string_assign(channel_name, columns[i]);
|
g_string_assign(channel_name, columns[i]);
|
||||||
else
|
else
|
||||||
g_string_printf(channel_name, "%zu", i);
|
g_string_printf(channel_name, "%zu", i);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, channel_name->str);
|
sr_channel_new(in->sdi, i, SR_CHANNEL_LOGIC, TRUE, channel_name->str);
|
||||||
in->sdi->channels = g_slist_append(in->sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
g_string_free(channel_name, TRUE);
|
g_string_free(channel_name, TRUE);
|
||||||
|
|
||||||
|
|
|
@ -404,7 +404,6 @@ static void parse_contents(const struct sr_input *in, char *data)
|
||||||
|
|
||||||
static int init(struct sr_input *in, GHashTable *options)
|
static int init(struct sr_input *in, GHashTable *options)
|
||||||
{
|
{
|
||||||
struct sr_channel *ch;
|
|
||||||
int num_channels, i;
|
int num_channels, i;
|
||||||
char name[16];
|
char name[16];
|
||||||
struct context *inc;
|
struct context *inc;
|
||||||
|
@ -434,8 +433,7 @@ static int init(struct sr_input *in, GHashTable *options)
|
||||||
|
|
||||||
for (i = 0; i < num_channels; i++) {
|
for (i = 0; i < num_channels; i++) {
|
||||||
snprintf(name, 16, "%d", i);
|
snprintf(name, 16, "%d", i);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, name);
|
sr_channel_new(in->sdi, i, SR_CHANNEL_LOGIC, TRUE, name);
|
||||||
in->sdi->channels = g_slist_append(in->sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
|
|
@ -240,7 +240,6 @@ static int process_buffer(struct sr_input *in)
|
||||||
struct context *inc;
|
struct context *inc;
|
||||||
struct sr_datafeed_packet packet;
|
struct sr_datafeed_packet packet;
|
||||||
struct sr_datafeed_meta meta;
|
struct sr_datafeed_meta meta;
|
||||||
struct sr_channel *ch;
|
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
int offset, chunk_samples, total_samples, processed, max_chunk_samples;
|
int offset, chunk_samples, total_samples, processed, max_chunk_samples;
|
||||||
int num_samples, i;
|
int num_samples, i;
|
||||||
|
@ -250,8 +249,7 @@ static int process_buffer(struct sr_input *in)
|
||||||
if (!inc->started) {
|
if (!inc->started) {
|
||||||
for (i = 0; i < inc->num_channels; i++) {
|
for (i = 0; i < inc->num_channels; i++) {
|
||||||
snprintf(channelname, 8, "CH%d", i + 1);
|
snprintf(channelname, 8, "CH%d", i + 1);
|
||||||
ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE, channelname);
|
sr_channel_new(in->sdi, i, SR_CHANNEL_ANALOG, TRUE, channelname);
|
||||||
in->sdi->channels = g_slist_append(in->sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std_session_send_df_header(in->sdi, LOG_PREFIX);
|
std_session_send_df_header(in->sdi, LOG_PREFIX);
|
||||||
|
|
|
@ -792,16 +792,6 @@ static int receive_data(int fd, int revents, void *cb_data)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int add_channel(struct sr_dev_inst *sdi, int idx, const char *name)
|
|
||||||
{
|
|
||||||
struct sr_channel *ch;
|
|
||||||
|
|
||||||
ch = sr_channel_new(idx, SR_CHANNEL_ANALOG, TRUE, name);
|
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
|
|
||||||
return SR_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *const channel_names[] = { "P1", "P2" };
|
static const char *const channel_names[] = { "P1", "P2" };
|
||||||
|
|
||||||
static int setup_channels(struct sr_dev_inst *sdi)
|
static int setup_channels(struct sr_dev_inst *sdi)
|
||||||
|
@ -811,11 +801,8 @@ static int setup_channels(struct sr_dev_inst *sdi)
|
||||||
|
|
||||||
ret = SR_ERR_BUG;
|
ret = SR_ERR_BUG;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(channel_names); i++) {
|
for (i = 0; i < ARRAY_SIZE(channel_names); i++)
|
||||||
ret = add_channel(sdi, i, channel_names[i]);
|
sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE, channel_names[i]);
|
||||||
if (ret != SR_OK)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -589,8 +589,8 @@ enum {
|
||||||
SR_CHANNEL_SET_ENABLED = 1 << 0,
|
SR_CHANNEL_SET_ENABLED = 1 << 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
SR_PRIV struct sr_channel *sr_channel_new(int index, int type,
|
SR_PRIV struct sr_channel *sr_channel_new(struct sr_dev_inst *sdi,
|
||||||
gboolean enabled, const char *name);
|
int index, int type, gboolean enabled, const char *name);
|
||||||
|
|
||||||
/** Device instance data */
|
/** Device instance data */
|
||||||
struct sr_dev_inst {
|
struct sr_dev_inst {
|
||||||
|
|
|
@ -122,7 +122,6 @@ SR_API int sr_session_load(const char *filename, struct sr_session **session)
|
||||||
struct zip_file *zf;
|
struct zip_file *zf;
|
||||||
struct zip_stat zs;
|
struct zip_stat zs;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_channel *ch;
|
|
||||||
int ret, i, j;
|
int ret, i, j;
|
||||||
uint64_t tmp_u64, total_channels, p;
|
uint64_t tmp_u64, total_channels, p;
|
||||||
char **sections, **keys, *metafile, *val;
|
char **sections, **keys, *metafile, *val;
|
||||||
|
@ -212,9 +211,8 @@ SR_API int sr_session_load(const char *filename, struct sr_session **session)
|
||||||
g_variant_new_uint64(total_channels), sdi, NULL);
|
g_variant_new_uint64(total_channels), sdi, NULL);
|
||||||
for (p = 0; p < total_channels; p++) {
|
for (p = 0; p < total_channels; p++) {
|
||||||
snprintf(channelname, SR_MAX_CHANNELNAME_LEN, "%" PRIu64, p);
|
snprintf(channelname, SR_MAX_CHANNELNAME_LEN, "%" PRIu64, p);
|
||||||
ch = sr_channel_new(p, SR_CHANNEL_LOGIC, FALSE,
|
sr_channel_new(sdi, p, SR_CHANNEL_LOGIC, FALSE,
|
||||||
channelname);
|
channelname);
|
||||||
sdi->channels = g_slist_append(sdi->channels, ch);
|
|
||||||
}
|
}
|
||||||
} else if (!strncmp(keys[j], "probe", 5)) {
|
} else if (!strncmp(keys[j], "probe", 5)) {
|
||||||
if (!sdi) {
|
if (!sdi) {
|
||||||
|
|
Loading…
Reference in New Issue