Please ignore/drop this patch as the problem is due to a broken Hameg HMO2524 
firmware and, as Marc now reported, can be sorted out by simlply upgrading the 
firmware.

Regards,

Guido

Il 03 novembre 2018 19:50:40 CET, Guido Trentalancia <gu...@trentalancia.com> 
ha scritto:
>The Probe Unit Enquiry command is not officially documented in the SCPI
>Programmers Manual, therefore, although this might just be a
>documentation
>error, there is some risk that some ancient firmware versions do not
>support
>such enquiry. Fortunately the Probe Unit Setup command is always
>documented
>therefore it should be supported by all firmware versions, so we fall
>back
>to setting up Volts unit instead of aborting, if such enquiry fails.
>
>This patch might fix the following problem:
>
>https://sourceforge.net/p/sigrok/mailman/message/36442494/
>[sigrok-devel] Hameg HMO2524 - scpi: Timed out waiting for SCPI
>response.
>posted: 2018-10-16 13:53:21
>
>Signed-off-by: Guido Trentalancia <gu...@trentalancia.com>
>---
> src/hardware/hameg-hmo/protocol.c |   28 ++++++++++++++++++++++------
> 1 file changed, 22 insertions(+), 6 deletions(-)
>
>diff -pru libsigrok-git-20102018-orig/src/hardware/hameg-hmo/protocol.c
>libsigrok-git-20102018-hameg-hmo-fix-missing-probe-unit-enquiry-cmd/src/hardware/hameg-hmo/protocol.c
>---
>libsigrok-git-20102018-orig/src/hardware/hameg-hmo/protocol.c  2018-10-20
>13:12:30.895966966 +0200
>+++
>libsigrok-git-20102018-hameg-hmo-fix-missing-probe-unit-enquiry-cmd/src/hardware/hameg-hmo/protocol.c
>  2018-11-03
>19:38:16.547245847 +0100
>@@ -55,6 +55,7 @@ static const char *hameg_scpi_dialect[]
>       [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?",
>+      [SCPI_CMD_SET_PROBE_UNIT]           = ":PROB%d:SET:ATT:UNIT %s",
> };
> 
> static const uint32_t devopts[] = {
>@@ -453,14 +454,29 @@ static int analog_channel_state_get(stru
>                          (*config->scpi_dialect)[SCPI_CMD_GET_PROBE_UNIT],
>                          i + 1);
> 
>-              if (sr_scpi_get_string(scpi, command, &tmp_str) != SR_OK)
>-                      return SR_ERR;
>+              /* The Probe Unit Enquiry command is not officially documented 
>in
>the SCPI
>+               * Programmers Manual, therefore, although this might just be a
>documentation
>+               * error, there is some risk that some ancient firmware 
>versions do
>not support
>+               * such enquiry. Fortunately the Probe Unit Setup command is 
>always
>documented
>+               * therefore it should be supported by all firmware versions, 
>so we
>fall back
>+               * to setting up Volts unit instead of aborting, if such enquiry
>fails.
>+               */
>+              if (sr_scpi_get_string(scpi, command, &tmp_str) != SR_OK) {
>+                      g_snprintf(command, sizeof(command),
>+                                 
>(*config->scpi_dialect)[SCPI_CMD_SET_PROBE_UNIT],
>+                                 i + 1, "V");
>+
>+                      if (sr_scpi_send(scpi, command) != 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);
>+              } else {
>+                      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;
>
>
>_______________________________________________
>sigrok-devel mailing list
>sigrok-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/sigrok-devel



_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to