From: Aurelien Jacobs Date: Tue, 16 Aug 2016 23:27:22 +0000 (+0200) Subject: m2110: properly set encoding digits X-Git-Tag: libsigrok-0.5.0~268 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=8882e7e6cf121edec20db5651eababacd9b6503c;p=libsigrok.git m2110: properly set encoding digits --- diff --git a/src/dmm/m2110.c b/src/dmm/m2110.c index 93887dcc..fc092765 100644 --- a/src/dmm/m2110.c +++ b/src/dmm/m2110.c @@ -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; }