X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhameg-hmo%2Fapi.c;h=c293d2b44dd9e7024a06e8e9e7cee7d68d2b2d21;hb=3be42bc22f8b36599a448273c12a76d3e0f7a940;hp=415f945b12c9a9a693fe8b19e0178789820573a6;hpb=a00106b7f819a2e64a65cfe767edae93bf2fb403;p=libsigrok.git diff --git a/src/hardware/hameg-hmo/api.c b/src/hardware/hameg-hmo/api.c index 415f945b..c293d2b4 100644 --- a/src/hardware/hameg-hmo/api.c +++ b/src/hardware/hameg-hmo/api.c @@ -28,6 +28,7 @@ SR_PRIV struct sr_dev_driver hameg_hmo_driver_info; static const char *manufacturers[] = { "HAMEG", + "Rohde&Schwarz", }; static const uint32_t drvopts[] = { @@ -55,7 +56,7 @@ static int check_manufacturer(const char *manufacturer) { 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; @@ -183,11 +184,11 @@ static int check_channel_group(struct dev_context *devc, 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; @@ -230,7 +231,7 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s 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); @@ -247,7 +248,7 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s 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)", @@ -278,7 +279,7 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s 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]); @@ -377,7 +378,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd 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; @@ -436,17 +437,17 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd 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) { @@ -459,7 +460,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd 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; @@ -689,7 +690,7 @@ static int hmo_setup_channels(const struct sr_dev_inst *sdi) } } - 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), @@ -768,13 +769,10 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data) { struct dev_context *devc; struct sr_scpi_dev_inst *scpi; - struct sr_datafeed_packet packet; (void)cb_data; - packet.type = SR_DF_END; - packet.payload = NULL; - sr_session_send(sdi, &packet); + std_session_send_df_end(sdi, LOG_PREFIX); if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED;