Hi all,
I now made the diff with -u hoping that this is acceptable.
Regards Matthias
--- /home/mschz/elektronik/libsigrok/src/dmm/vc96.c 2023-04-17 18:11:31.155109310 +0200
+++ /home/mschz/elektronik/libsigrok.ba1/src/dmm/vc96.c 2023-04-17 21:29:12.131825015 +0200
@@ -92,10 +92,13 @@
info->is_ac = !strncmp(buf, "AC", 2);
info->is_dc = !strncmp(buf, "DC", 2);
- /* Bytes 0-2: Measurement mode DIO, OHM */
- info->is_ohm = !strncmp(buf, "OHM", 3);
- info->is_diode = !strncmp(buf, "DIO", 3);
- info->is_hfe = !strncmp(buf, "hfe", 3);
+ /* Bytes 0-2: Measurement mode, except AC/DC */
+ info->is_ohm = !strncmp(buf, "OHM", 3) ||
+ (!strncmp(buf, " ", 3) && info->is_ohm);
+ info->is_diode = !strncmp(buf, "DIO", 3) ||
+ (!strncmp(buf, " ", 3) && info->is_volt && info->is_milli);
+ info->is_hfe = !strncmp(buf, "hfe", 3) && !info->is_ampere && !info->is_volt &&
+ !info->is_resistance && !info->is_diode;
/* Bytes 3-8: See parse_value(). */
@@ -119,21 +122,15 @@
info->is_volt = TRUE;
else if (!g_ascii_strcasecmp(u, "mV"))
info->is_milli = info->is_volt = TRUE;
- else if (!g_ascii_strcasecmp(u, "K"))
+ else if (!g_ascii_strncasecmp(u, "K", 1))
+ /* ignore case, VC96 sends wrong upper case "K" */
info->is_kilo = TRUE;
- else if (!g_ascii_strcasecmp(u, "M"))
+ else if (!g_ascii_strncmp(u, "M", 1))
info->is_mega = TRUE;
else if (!g_ascii_strcasecmp(u, ""))
info->is_unitless = TRUE;
- /* Bytes 0-2: Measurement mode, except AC/DC */
- info->is_resistance = !strncmp(buf, "OHM", 3) ||
- (!strncmp(buf, " ", 3) && info->is_ohm);
- info->is_diode = !strncmp(buf, "DIO", 3) ||
- (!strncmp(buf, " ", 3) && info->is_volt && info->is_milli);
- info->is_hfe = !strncmp(buf, "hfe", 3) ||
- (!strncmp(buf, " ", 3) && !info->is_ampere && !info->is_volt &&
- !info->is_resistance && !info->is_diode);
+ sr_spew("is_kilo = %i is_mega = %i", info->is_kilo, info->is_mega);
/*
* Note:
_______________________________________________
sigrok-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sigrok-devel