X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fdmm%2Fmetex14.c;h=a6e2a317369170ecfd7a912bc9122f453e42bf68;hb=70e28e780244427fc645427731ad1ea299228e51;hp=8151aa9ded319006f485bf669a089af8039714e7;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/dmm/metex14.c b/src/dmm/metex14.c index 8151aa9d..a6e2a317 100644 --- a/src/dmm/metex14.c +++ b/src/dmm/metex14.c @@ -30,11 +30,13 @@ * It does _not_ work for all Metex DMMs, some use a quite different protocol. */ +#include #include +#include #include #include #include -#include "libsigrok.h" +#include #include "libsigrok-internal.h" #define LOG_PREFIX "metex14" @@ -55,14 +57,14 @@ static int parse_value(const uint8_t *buf, struct metex14_info *info, /* Bytes 5-7: Over limit (various forms) */ is_ol = 0; - is_ol += (!strcasecmp((const char *)&valstr, ".OL")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "O.L")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "OL.")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "OL")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "-.OL")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "-O.L")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "-OL.")) ? 1 : 0; - is_ol += (!strcasecmp((const char *)&valstr, "-OL")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, ".OL")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "O.L")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "OL.")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "OL")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "-.OL")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "-O.L")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "-OL.")) ? 1 : 0; + is_ol += (!g_ascii_strcasecmp((const char *)&valstr, "-OL")) ? 1 : 0; if (is_ol != 0) { sr_spew("Over limit."); *result = INFINITY; @@ -113,35 +115,35 @@ static void parse_flags(const char *buf, struct metex14_info *info) /* Bytes 9-12: Unit */ u = (const char *)&unit; - if (!strcasecmp(u, "A")) + if (!g_ascii_strcasecmp(u, "A")) info->is_ampere = TRUE; - else if (!strcasecmp(u, "mA")) + else if (!g_ascii_strcasecmp(u, "mA")) info->is_milli = info->is_ampere = TRUE; - else if (!strcasecmp(u, "uA")) + else if (!g_ascii_strcasecmp(u, "uA")) info->is_micro = info->is_ampere = TRUE; - else if (!strcasecmp(u, "V")) + else if (!g_ascii_strcasecmp(u, "V")) info->is_volt = TRUE; - else if (!strcasecmp(u, "mV")) + else if (!g_ascii_strcasecmp(u, "mV")) info->is_milli = info->is_volt = TRUE; - else if (!strcasecmp(u, "Ohm")) + else if (!g_ascii_strcasecmp(u, "Ohm")) info->is_ohm = TRUE; - else if (!strcasecmp(u, "KOhm")) + else if (!g_ascii_strcasecmp(u, "KOhm")) info->is_kilo = info->is_ohm = TRUE; - else if (!strcasecmp(u, "MOhm")) + else if (!g_ascii_strcasecmp(u, "MOhm")) info->is_mega = info->is_ohm = TRUE; - else if (!strcasecmp(u, "pF")) + else if (!g_ascii_strcasecmp(u, "pF")) info->is_pico = info->is_farad = TRUE; - else if (!strcasecmp(u, "nF")) + else if (!g_ascii_strcasecmp(u, "nF")) info->is_nano = info->is_farad = TRUE; - else if (!strcasecmp(u, "uF")) + else if (!g_ascii_strcasecmp(u, "uF")) info->is_micro = info->is_farad = TRUE; - else if (!strcasecmp(u, "KHz")) + else if (!g_ascii_strcasecmp(u, "KHz")) info->is_kilo = info->is_hertz = TRUE; - else if (!strcasecmp(u, "C")) + else if (!g_ascii_strcasecmp(u, "C")) info->is_celsius = TRUE; - else if (!strcasecmp(u, "DB")) + else if (!g_ascii_strcasecmp(u, "DB")) info->is_decibel = TRUE; - else if (!strcasecmp(u, "")) + else if (!g_ascii_strcasecmp(u, "")) info->is_unitless = TRUE; /* Bytes 0-1: Measurement mode, except AC/DC */ @@ -187,53 +189,53 @@ static void handle_flags(struct sr_datafeed_analog *analog, float *floatval, /* Measurement modes */ if (info->is_volt) { - analog->mq = SR_MQ_VOLTAGE; - analog->unit = SR_UNIT_VOLT; + analog->meaning->mq = SR_MQ_VOLTAGE; + analog->meaning->unit = SR_UNIT_VOLT; } if (info->is_ampere) { - analog->mq = SR_MQ_CURRENT; - analog->unit = SR_UNIT_AMPERE; + analog->meaning->mq = SR_MQ_CURRENT; + analog->meaning->unit = SR_UNIT_AMPERE; } if (info->is_ohm) { - analog->mq = SR_MQ_RESISTANCE; - analog->unit = SR_UNIT_OHM; + analog->meaning->mq = SR_MQ_RESISTANCE; + analog->meaning->unit = SR_UNIT_OHM; } if (info->is_hertz) { - analog->mq = SR_MQ_FREQUENCY; - analog->unit = SR_UNIT_HERTZ; + analog->meaning->mq = SR_MQ_FREQUENCY; + analog->meaning->unit = SR_UNIT_HERTZ; } if (info->is_farad) { - analog->mq = SR_MQ_CAPACITANCE; - analog->unit = SR_UNIT_FARAD; + analog->meaning->mq = SR_MQ_CAPACITANCE; + analog->meaning->unit = SR_UNIT_FARAD; } if (info->is_celsius) { - analog->mq = SR_MQ_TEMPERATURE; - analog->unit = SR_UNIT_CELSIUS; + analog->meaning->mq = SR_MQ_TEMPERATURE; + analog->meaning->unit = SR_UNIT_CELSIUS; } if (info->is_diode) { - analog->mq = SR_MQ_VOLTAGE; - analog->unit = SR_UNIT_VOLT; + analog->meaning->mq = SR_MQ_VOLTAGE; + analog->meaning->unit = SR_UNIT_VOLT; } if (info->is_gain) { - analog->mq = SR_MQ_GAIN; - analog->unit = SR_UNIT_DECIBEL_VOLT; + analog->meaning->mq = SR_MQ_GAIN; + analog->meaning->unit = SR_UNIT_DECIBEL_VOLT; } if (info->is_hfe) { - analog->mq = SR_MQ_GAIN; - analog->unit = SR_UNIT_UNITLESS; + analog->meaning->mq = SR_MQ_GAIN; + analog->meaning->unit = SR_UNIT_UNITLESS; } if (info->is_logic) { - analog->mq = SR_MQ_GAIN; - analog->unit = SR_UNIT_UNITLESS; + analog->meaning->mq = SR_MQ_GAIN; + analog->meaning->unit = SR_UNIT_UNITLESS; } /* Measurement related flags */ if (info->is_ac) - analog->mqflags |= SR_MQFLAG_AC; + analog->meaning->mqflags |= SR_MQFLAG_AC; if (info->is_dc) - analog->mqflags |= SR_MQFLAG_DC; + analog->meaning->mqflags |= SR_MQFLAG_DC; if (info->is_diode) - analog->mqflags |= SR_MQFLAG_DIODE; + analog->meaning->mqflags |= SR_MQFLAG_DIODE; } static gboolean flags_valid(const struct metex14_info *info) @@ -283,7 +285,7 @@ SR_PRIV int sr_metex14_packet_request(struct sr_serial_dev_inst *serial) sr_spew("Requesting DMM packet."); - return (serial_write(serial, &wbuf, 1) == 1) ? SR_OK : SR_ERR; + return (serial_write_nonblocking(serial, &wbuf, 1) == 1) ? SR_OK : SR_ERR; } #endif