]> sigrok.org Git - libsigrok.git/commitdiff
Have remaining drivers default to digits=2 for analog values.
authorUwe Hermann <redacted>
Sun, 28 Aug 2016 21:52:48 +0000 (23:52 +0200)
committerUwe Hermann <redacted>
Sun, 28 Aug 2016 22:25:19 +0000 (00:25 +0200)
The default so far was 0, which meant there would be no significant
digits at all, yielding results that looked strange/wrong to the user.

Long-term all remaining drivers should be fixed to use the actual,
correct digits and spec_digits values according to the device's
capabilities and/or datasheet/manual. Until that is done, a default
of digits=2 is used as a temporary workaround.

This fixes the remaining parts of bug #815.

src/hardware/brymen-dmm/protocol.c
src/hardware/fluke-dmm/fluke.c
src/hardware/hameg-hmo/protocol.c
src/hardware/norma-dmm/protocol.c
src/hardware/testo/protocol.c
src/hardware/yokogawa-dlm/protocol.c
src/input/wav.c
src/session_driver.c

index 4cd61ad694f52cd8eee326402d7c1ac9c92f8314..5a7f2252a7e701639278207d2ad880de30942a49 100644 (file)
@@ -32,7 +32,8 @@ static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi)
 
        devc = sdi->priv;
 
-       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
 
        analog.num_samples = 1;
        analog.meaning->mq = 0;
index 1aa9637f5de15f49045711dc7c2e6d14727e8cf7..094832ddbe826c924621e8a34323b38096a8d3bf 100644 (file)
@@ -63,7 +63,8 @@ static struct sr_datafeed_analog *handle_qm_18x(const struct sr_dev_inst *sdi,
                e++;
 
        analog = g_malloc0(sizeof(struct sr_datafeed_analog));
-       sr_analog_init(analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(analog, &encoding, &meaning, &spec, 2);
        analog->data = g_malloc(sizeof(float));
        analog->meaning->channels = sdi->channels;
        analog->num_samples = 1;
@@ -176,7 +177,8 @@ static struct sr_datafeed_analog *handle_qm_28x(const struct sr_dev_inst *sdi,
        }
 
        analog = g_malloc0(sizeof(struct sr_datafeed_analog));
-       sr_analog_init(analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(analog, &encoding, &meaning, &spec, 2);
        analog->data = g_malloc(sizeof(float));
        analog->meaning->channels = sdi->channels;
        analog->num_samples = 1;
@@ -401,7 +403,8 @@ static void handle_qm_19x_data(const struct sr_dev_inst *sdi, char **tokens)
                        fvalue = 1.0;
        }
 
-       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
        analog.meaning->channels = sdi->channels;
        analog.num_samples = 1;
        analog.data = &fvalue;
index 029edbd76750bf378988e0388ba0a707cfa0c85f..2681a8f089728014b265fd2e8fa231bead6c18d0 100644 (file)
@@ -764,7 +764,8 @@ SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data)
                encoding.is_signed = TRUE;
                encoding.is_float = TRUE;
                encoding.is_bigendian = FALSE;
-               encoding.digits = 0;
+               /* TODO: Use proper 'digits' value for this device (and its modes). */
+               encoding.digits = 2;
                encoding.is_digits_decimal = FALSE;
                encoding.scale.p = 1;
                encoding.scale.q = 1;
@@ -779,7 +780,8 @@ SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data)
                }
                meaning.mqflags = 0;
                meaning.channels = g_slist_append(NULL, ch);
-               spec.spec_digits = 0;
+               /* TODO: Use proper 'digits' value for this device (and its modes). */
+               spec.spec_digits = 2;
                packet.payload = &analog;
                sr_session_send(sdi, &packet);
                g_slist_free(meaning.channels);
index fcaae133b494e7e67a8c398cff2cd0db10aeac75..96a47379417392ae559e153cd5064ced93b37da2 100644 (file)
@@ -123,7 +123,8 @@ static void nma_process_line(const struct sr_dev_inst *sdi)
        /* Start decoding. */
        value = 0.0;
        scale = 1.0;
-       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
 
        /*
         * The numbers are hex digits, starting from 0.
index eb02f9f8465a8ec13027f7435ca540b31edb6d54..396612fdc3a479377ae05e3ac7a529046486abdf 100644 (file)
@@ -246,7 +246,8 @@ SR_PRIV void testo_receive_packet(const struct sr_dev_inst *sdi)
 
        packet.type = SR_DF_ANALOG;
        packet.payload = &analog;
-       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
        analog.num_samples = 1;
        analog.meaning->mqflags = 0;
        analog.data = &value;
index f3d38f8c5f42eafb8e70a395aa93a9e490cf24eb..5c9866e412a14bcba7a23fe9ac5759f3103c8bf5 100644 (file)
@@ -995,7 +995,8 @@ static int dlm_analog_samples_send(GArray *data,
                g_array_append_val(float_data, voltage);
        }
 
-       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
        analog.meaning->channels = g_slist_append(NULL, ch);
        analog.num_samples = float_data->len;
        analog.data = (float*)float_data->data;
index 186693047f123088b74790ab9d1c275ae4be34b2..4f5744a7599d2841f98e958d38d11f7a398f3465 100644 (file)
@@ -227,7 +227,8 @@ static void send_chunk(const struct sr_input *in, int offset, int num_samples)
                d += inc->unitsize;
        }
 
-       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       /* TODO: Use proper 'digits' value for this device (and its modes). */
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
        packet.type = SR_DF_ANALOG;
        packet.payload = &analog;
        analog.num_samples = num_samples;
index 99d1c6cf3473e6362b3da6b2cd8b10fda48e23a6..0fecd6b813cc678a6192dc2ac1b91ca2d335989e 100644 (file)
@@ -142,7 +142,8 @@ static gboolean stream_session_data(struct sr_dev_inst *sdi)
                if (vdev->cur_analog_channel != 0) {
                        packet.type = SR_DF_ANALOG;
                        packet.payload = &analog;
-                       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+                       /* TODO: Use proper 'digits' value for this device (and its modes). */
+                       sr_analog_init(&analog, &encoding, &meaning, &spec, 2);
                        analog.meaning->channels = g_slist_prepend(NULL,
                                        g_array_index(vdev->analog_channels,
                                                struct sr_channel *, vdev->cur_analog_channel - 1));