]> sigrok.org Git - libsigrok.git/commitdiff
m2110: properly set encoding digits
authorAurelien Jacobs <redacted>
Tue, 16 Aug 2016 23:27:22 +0000 (01:27 +0200)
committerUwe Hermann <redacted>
Tue, 23 Aug 2016 10:58:04 +0000 (12:58 +0200)
src/dmm/m2110.c

index 93887dcc804b1b6863d5eadfef14c3fdf9d1468c..fc09276561b6e60b134e2438b7c3a79f4605a40d 100644 (file)
@@ -53,6 +53,7 @@ SR_PRIV gboolean sr_m2110_packet_valid(const uint8_t *buf)
 SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval,
                                struct sr_datafeed_analog *analog, void *info)
 {
+       int dot_pos, digits = 0;
        float val;
 
        (void)info;
@@ -64,8 +65,15 @@ SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval,
 
        if (!strncmp((const char *)buf, "OVERRNG", 7))
                *floatval = INFINITY;
-       else if (sscanf((const char *)buf, "%f", &val) == 1)
+       else if (sscanf((const char *)buf, "%f", &val) == 1) {
                *floatval = val;
+               dot_pos = strcspn((const char *)buf, ".");
+               if (dot_pos < 7)
+                       digits = 6 - dot_pos;
+       }
+
+       analog->encoding->digits  = digits;
+       analog->spec->spec_digits = digits;
 
        return SR_OK;
 }