[SCPI_CMD_SET_ANALOG_CHAN_STATE] = ":CHAN%d:STAT %d",
};
-static const int32_t hmo_hwcaps[] = {
+static const uint32_t hmo_devopts[] = {
SR_CONF_OSCILLOSCOPE,
- SR_CONF_TRIGGER_SOURCE,
- SR_CONF_TIMEBASE,
- SR_CONF_NUM_TIMEBASE,
- SR_CONF_TRIGGER_SLOPE,
- SR_CONF_HORIZ_TRIGGERPOS,
- SR_CONF_SAMPLERATE,
SR_CONF_LIMIT_FRAMES,
+ SR_CONF_TRIGGER_SOURCE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
+ SR_CONF_TIMEBASE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
+ SR_CONF_NUM_TIMEBASE | SR_CONF_GET,
+ SR_CONF_TRIGGER_SLOPE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
+ SR_CONF_HORIZ_TRIGGERPOS | SR_CONF_GET | SR_CONF_SET,
+ SR_CONF_SAMPLERATE | SR_CONF_GET,
};
-static const int32_t hmo_analog_caps[] = {
- SR_CONF_NUM_VDIV,
- SR_CONF_COUPLING,
- SR_CONF_VDIV,
+static const uint32_t hmo_analog_devopts[] = {
+ SR_CONF_NUM_VDIV | SR_CONF_GET,
+ SR_CONF_COUPLING | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
+ SR_CONF_VDIV | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
};
static const char *hmo_coupling_options[] = {
.analog_names = &scope_analog_channel_names,
.digital_names = &scope_digital_channel_names,
- .hw_caps = &hmo_hwcaps,
- .num_hwcaps = ARRAY_SIZE(hmo_hwcaps),
+ .devopts = &hmo_devopts,
+ .num_devopts = ARRAY_SIZE(hmo_devopts),
- .analog_hwcaps = &hmo_analog_caps,
- .num_analog_hwcaps = ARRAY_SIZE(hmo_analog_caps),
+ .analog_devopts = &hmo_analog_devopts,
+ .num_analog_devopts = ARRAY_SIZE(hmo_analog_devopts),
.coupling_options = &hmo_coupling_options,
.trigger_sources = &hmo_compact2_trigger_sources,
.analog_names = &scope_analog_channel_names,
.digital_names = &scope_digital_channel_names,
- .hw_caps = &hmo_hwcaps,
- .num_hwcaps = ARRAY_SIZE(hmo_hwcaps),
+ .devopts = &hmo_devopts,
+ .num_devopts = ARRAY_SIZE(hmo_devopts),
- .analog_hwcaps = &hmo_analog_caps,
- .num_analog_hwcaps = ARRAY_SIZE(hmo_analog_caps),
+ .analog_devopts = &hmo_analog_devopts,
+ .num_analog_devopts = ARRAY_SIZE(hmo_analog_devopts),
.coupling_options = &hmo_coupling_options,
.trigger_sources = &hmo_compact4_trigger_sources,
return SR_ERR_NA;
}
- if (!(devc->analog_groups = g_try_malloc0(sizeof(struct sr_channel_group) *
- scope_models[model_index].analog_channels)))
- return SR_ERR_MALLOC;
+ devc->analog_groups = g_malloc0(sizeof(struct sr_channel_group*) *
+ scope_models[model_index].analog_channels);
- if (!(devc->digital_groups = g_try_malloc0(sizeof(struct sr_channel_group) *
- scope_models[model_index].digital_pods)))
- return SR_ERR_MALLOC;
+ devc->digital_groups = g_malloc0(sizeof(struct sr_channel_group*) *
+ scope_models[model_index].digital_pods);
/* Add analog channels. */
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
return SR_ERR_MALLOC;
sdi->channels = g_slist_append(sdi->channels, ch);
- devc->analog_groups[i].name =
- (char *)(*scope_models[model_index].analog_names)[i];
- devc->analog_groups[i].channels = g_slist_append(NULL, ch);
+ devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
+
+ devc->analog_groups[i]->name = g_strdup(
+ (char *)(*scope_models[model_index].analog_names)[i]);
+ devc->analog_groups[i]->channels = g_slist_append(NULL, ch);
sdi->channel_groups = g_slist_append(sdi->channel_groups,
- &devc->analog_groups[i]);
+ devc->analog_groups[i]);
}
/* Add digital channel groups. */
for (i = 0; i < scope_models[model_index].digital_pods; ++i) {
g_snprintf(tmp, 25, "POD%d", i);
- devc->digital_groups[i].name = g_strdup(tmp);
+
+ devc->digital_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
+
+ devc->digital_groups[i]->name = g_strdup(tmp);
sdi->channel_groups = g_slist_append(sdi->channel_groups,
- &devc->digital_groups[i < 8 ? 0 : 1]);
+ devc->digital_groups[i < 8 ? 0 : 1]);
}
/* Add digital channels. */
return SR_ERR_MALLOC;
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, ch);
+ devc->digital_groups[i < 8 ? 0 : 1]->channels = g_slist_append(
+ devc->digital_groups[i < 8 ? 0 : 1]->channels, ch);
}
devc->model_config = &scope_models[model_index];