From 448e81b1e565525c9e8881f17f36dbca93832346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Tue, 3 May 2016 00:08:58 +0200 Subject: [PATCH] hameg-hmo: Query probe unit (Volt, Ampere) from scope --- src/hardware/hameg-hmo/protocol.c | 14 ++++++++++++++ src/hardware/hameg-hmo/protocol.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/hardware/hameg-hmo/protocol.c b/src/hardware/hameg-hmo/protocol.c index ffd682bf..280e2320 100644 --- a/src/hardware/hameg-hmo/protocol.c +++ b/src/hardware/hameg-hmo/protocol.c @@ -47,6 +47,7 @@ static const char *hameg_scpi_dialect[] = { [SCPI_CMD_SET_HORIZ_TRIGGERPOS] = ":TIM:POS %s", [SCPI_CMD_GET_ANALOG_CHAN_STATE] = ":CHAN%d:STAT?", [SCPI_CMD_SET_ANALOG_CHAN_STATE] = ":CHAN%d:STAT %d", + [SCPI_CMD_GET_PROBE_UNIT] = ":PROB%d:SET:ATT:UNIT?", }; static const uint32_t hmo_devopts[] = { @@ -422,6 +423,19 @@ static int analog_channel_state_get(struct sr_scpi_dev_inst *scpi, if (scope_state_get_array_option(scpi, command, config->coupling_options, &state->analog_channels[i].coupling) != SR_OK) return SR_ERR; + + g_snprintf(command, sizeof(command), + (*config->scpi_dialect)[SCPI_CMD_GET_PROBE_UNIT], + i + 1); + + if (sr_scpi_get_string(scpi, command, &tmp_str) != SR_OK) + return SR_ERR; + + if (tmp_str[0] == 'A') + state->analog_channels[i].probe_unit = 'A'; + else + state->analog_channels[i].probe_unit = 'V'; + g_free(tmp_str); } return SR_OK; diff --git a/src/hardware/hameg-hmo/protocol.h b/src/hardware/hameg-hmo/protocol.h index 3747d62b..6219ed63 100644 --- a/src/hardware/hameg-hmo/protocol.h +++ b/src/hardware/hameg-hmo/protocol.h @@ -73,6 +73,7 @@ struct analog_channel_state { float vertical_offset; gboolean state; + char probe_unit; }; struct scope_state {