X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhameg-hmo%2Fapi.c;h=b234caa21f09e257c4a5b82595435c48b86c9139;hb=1c47e0da8f2571bc34dbdc368c3c1f55318c3aa0;hp=1b36f04e396e126819fbbeb2ba3d79da221c2373;hpb=0a1f7b09b3fa4cc4da29c7acf53717e14b004b63;p=libsigrok.git diff --git a/src/hardware/hameg-hmo/api.c b/src/hardware/hameg-hmo/api.c index 1b36f04e..b234caa2 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[] = { @@ -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) { @@ -756,7 +757,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) sr_scpi_source_add(sdi->session, scpi, G_IO_IN, 50, hmo_receive_data, (void *)sdi); - /* Send header packet to the session bus. */ std_session_send_df_header(cb_data, LOG_PREFIX); devc->current_channel = devc->enabled_channels; @@ -768,13 +768,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;