]> sigrok.org Git - libsigrok.git/blobdiff - src/dmm/metex14.c
siglent-sds: initial driver implementation for Siglent SDS
[libsigrok.git] / src / dmm / metex14.c
index 0d7234f36748da95e378a977b165aae93087c199..687df9063fbb50cf14679dae361d53030763b4e5 100644 (file)
@@ -86,7 +86,7 @@ static int parse_value(const uint8_t *buf, struct metex14_info *info,
                return SR_OK;
 
        /* Bytes 2-8: Sign, value (up to 5 digits) and decimal point */
-       sscanf((const char *)&valstr, "%f", result);
+       sr_atof_ascii((const char *)&valstr, result);
 
        dot_pos = strcspn(valstr, ".");
        if (dot_pos < cnt)
@@ -243,7 +243,7 @@ static void handle_flags(struct sr_datafeed_analog *analog, float *floatval,
        if (info->is_dc)
                analog->meaning->mqflags |= SR_MQFLAG_DC;
        if (info->is_diode)
-               analog->meaning->mqflags |= SR_MQFLAG_DIODE;
+               analog->meaning->mqflags |= SR_MQFLAG_DIODE | SR_MQFLAG_DC;
 }
 
 static gboolean flags_valid(const struct metex14_info *info)
@@ -293,7 +293,7 @@ SR_PRIV int sr_metex14_packet_request(struct sr_serial_dev_inst *serial)
 
        sr_spew("Requesting DMM packet.");
 
-       return (serial_write_nonblocking(serial, &wbuf, 1) == 1) ? SR_OK : SR_ERR;
+       return serial_write_blocking(serial, &wbuf, 1, 0);
 }
 #endif