static const char *manufacturers[] = {
"HAMEG",
+ "Rohde&Schwarz",
};
static const uint32_t drvopts[] = {
{
unsigned int i;
- for (i = 0; i < ARRAY_SIZE(manufacturers); ++i)
+ for (i = 0; i < ARRAY_SIZE(manufacturers); i++)
if (!strcmp(manufacturer, manufacturers[i]))
return SR_OK;
goto fail;
sdi = g_malloc0(sizeof(struct sr_dev_inst));
- sdi->status = SR_ST_ACTIVE;
sdi->vendor = g_strdup(hw_info->manufacturer);
sdi->model = g_strdup(hw_info->model);
sdi->version = g_strdup(hw_info->firmware_version);
if (hmo_init_device(sdi) != SR_OK)
goto fail;
- sr_scpi_close(sdi->conn);
-
- sdi->status = SR_ST_INACTIVE;
-
return sdi;
fail:
if (!cg)
return CG_NONE;
- for (i = 0; i < model->analog_channels; ++i)
+ for (i = 0; i < model->analog_channels; i++)
if (cg == devc->analog_groups[i])
return CG_ANALOG;
- for (i = 0; i < model->digital_pods; ++i)
+ for (i = 0; i < model->digital_pods; i++)
if (cg == devc->digital_groups[i])
return CG_DIGITAL;
sr_err("No channel group specified.");
return SR_ERR_CHANNEL_GROUP;
} else if (cg_type == CG_ANALOG) {
- for (i = 0; i < model->analog_channels; ++i) {
+ for (i = 0; i < model->analog_channels; i++) {
if (cg != devc->analog_groups[i])
continue;
*data = g_variant_new_int32(model->num_ydivs);
sr_err("No channel group specified.");
return SR_ERR_CHANNEL_GROUP;
} else if (cg_type == CG_ANALOG) {
- for (i = 0; i < model->analog_channels; ++i) {
+ for (i = 0; i < model->analog_channels; i++) {
if (cg != devc->analog_groups[i])
continue;
*data = g_variant_new("(tt)",
sr_err("No channel group specified.");
return SR_ERR_CHANNEL_GROUP;
} else if (cg_type == CG_ANALOG) {
- for (i = 0; i < model->analog_channels; ++i) {
+ for (i = 0; i < model->analog_channels; i++) {
if (cg != devc->analog_groups[i])
continue;
*data = g_variant_new_string((*model->coupling_options)[state->analog_channels[i].coupling]);
if (p != (*model->vdivs)[i][0] ||
q != (*model->vdivs)[i][1])
continue;
- for (j = 1; j <= model->analog_channels; ++j) {
+ for (j = 1; j <= model->analog_channels; j++) {
if (cg != devc->analog_groups[j - 1])
continue;
state->analog_channels[j - 1].vdiv = i;
break;
case SR_CONF_TRIGGER_SLOPE:
tmp = g_variant_get_string(data, NULL);
+ for (i = 0; (*model->trigger_slopes)[i]; i++) {
+ if (g_strcmp0(tmp, (*model->trigger_slopes)[i]) != 0)
+ continue;
+ state->trigger_slope = i;
+ g_snprintf(command, sizeof(command),
+ (*model->scpi_dialect)[SCPI_CMD_SET_TRIGGER_SLOPE],
+ (*model->trigger_slopes)[i]);
- if (!tmp || !(tmp[0] == 'f' || tmp[0] == 'r'))
- return SR_ERR_ARG;
-
- state->trigger_slope = (tmp[0] == 'r') ? 0 : 1;
-
- g_snprintf(command, sizeof(command),
- (*model->scpi_dialect)[SCPI_CMD_SET_TRIGGER_SLOPE],
- (state->trigger_slope == 0) ? "POS" : "NEG");
-
- ret = sr_scpi_send(sdi->conn, command);
+ ret = sr_scpi_send(sdi->conn, command);
+ break;
+ }
break;
case SR_CONF_COUPLING:
if (cg_type == CG_NONE) {
for (i = 0; (*model->coupling_options)[i]; i++) {
if (strcmp(tmp, (*model->coupling_options)[i]) != 0)
continue;
- for (j = 1; j <= model->analog_channels; ++j) {
+ for (j = 1; j <= model->analog_channels; j++) {
if (cg != devc->analog_groups[j - 1])
continue;
state->analog_channels[j-1].coupling = i;
}
}
- for (i = 1; i <= model->digital_pods; ++i) {
+ for (i = 1; i <= model->digital_pods; i++) {
if (state->digital_pods[i - 1] == pod_enabled[i - 1])
continue;
g_snprintf(command, sizeof(command),