示例#1
0
文件: main.c 项目: brgl/sigrok-cli
int select_channels(struct sr_dev_inst *sdi)
{
	struct sr_channel *ch;
	gboolean enabled;
	GSList *selected_channels, *l, *channels;

	channels = sr_dev_inst_channels_get(sdi);

	if (opt_channels) {
		if (!(selected_channels = parse_channelstring(sdi, opt_channels)))
			return SR_ERR;

		for (l = channels; l; l = l->next) {
			ch = l->data;
			enabled = (g_slist_find(selected_channels, ch) != NULL);
			if (sr_dev_channel_enable(ch, enabled) != SR_OK)
				return SR_ERR;
		}
		g_slist_free(selected_channels);
	}
#ifdef HAVE_SRD
	map_pd_channels(sdi);
#endif
	return SR_OK;
}
示例#2
0
文件: device.c 项目: anatol/libsigrok
END_TEST

START_TEST(test_channel_add)
{
	int ret;
	struct sr_dev_inst *sdi;
	GSList *channels;

	sdi = sr_dev_inst_user_new("Vendor", "Model", "Version");
	fail_unless(sdi != NULL, "sr_dev_inst_user_new() failed.");

	channels = sr_dev_inst_channels_get(sdi);
	fail_unless(g_slist_length(channels) == 0, "More than 0 channels.");

	ret = sr_dev_inst_channel_add(sdi, 0, SR_CHANNEL_LOGIC, "D1");
	channels = sr_dev_inst_channels_get(sdi);
	fail_unless(ret == SR_OK);
	fail_unless(g_slist_length(channels) == 1);

	ret = sr_dev_inst_channel_add(sdi, 1, SR_CHANNEL_ANALOG, "A1");
	channels = sr_dev_inst_channels_get(sdi);
	fail_unless(ret == SR_OK);
	fail_unless(g_slist_length(channels) == 2);
}
示例#3
0
文件: lib.c 项目: ant9000/libsigrok
GArray *srtest_get_enabled_logic_channels(const struct sr_dev_inst *sdi)
{
	struct sr_channel *ch;
	GArray *channels;
	GSList *l;

	channels = g_array_new(FALSE, FALSE, sizeof(int));
	for (l = sr_dev_inst_channels_get(sdi); l; l = l->next) {
		ch = l->data;
		if (ch->type != SR_CHANNEL_LOGIC)
			continue;
		if (ch->enabled != TRUE)
			continue;
		g_array_append_val(channels, ch->index);
	}

	return channels;
}