X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhameg-hmo%2Fapi.c;h=2ea5ca79efaf3c8ab3694f9292138e78976553c4;hb=700d6b64d578ce10e57f6a2289e37a5564eccf1c;hp=b2705d084cec4d9b34c6ed1dcb216d5f20f2f9e9;hpb=da1726cc4c066a7091acc8c4fa35107746709f4e;p=libsigrok.git diff --git a/src/hardware/hameg-hmo/api.c b/src/hardware/hameg-hmo/api.c index b2705d08..2ea5ca79 100644 --- a/src/hardware/hameg-hmo/api.c +++ b/src/hardware/hameg-hmo/api.c @@ -166,13 +166,6 @@ static int dev_close(struct sr_dev_inst *sdi) return SR_OK; } -static int cleanup(const struct sr_dev_driver *di) -{ - dev_clear(di); - - return SR_OK; -} - static int check_channel_group(struct dev_context *devc, const struct sr_channel_group *cg) { @@ -437,17 +430,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) { @@ -710,7 +703,7 @@ static int hmo_setup_channels(const struct sr_dev_inst *sdi) return SR_OK; } -static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) +static int dev_acquisition_start(const struct sr_dev_inst *sdi) { GSList *l; gboolean digital_added; @@ -757,25 +750,19 @@ 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); + std_session_send_df_header(sdi, LOG_PREFIX); devc->current_channel = devc->enabled_channels; return hmo_request_data(sdi); } -static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data) +static int dev_acquisition_stop(struct sr_dev_inst *sdi) { 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; @@ -796,7 +783,7 @@ SR_PRIV struct sr_dev_driver hameg_hmo_driver_info = { .longname = "Hameg HMO", .api_version = 1, .init = init, - .cleanup = cleanup, + .cleanup = std_cleanup, .scan = scan, .dev_list = dev_list, .dev_clear = dev_clear,