X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fcommon%2Fdmm%2Ffs9922.c;h=51d3c654dbc7aa7ed9e7efcc2949397699c4f404;hb=0d4405ce5e9373d2dcd90a9188b79d79eaafae5d;hp=4e878ac63f4a717b00f55d2100984eee0ac7a8da;hpb=29a27196a13de2ffd9b671185e4b464b9db9b549;p=libsigrok.git diff --git a/hardware/common/dmm/fs9922.c b/hardware/common/dmm/fs9922.c index 4e878ac6..51d3c654 100644 --- a/hardware/common/dmm/fs9922.c +++ b/hardware/common/dmm/fs9922.c @@ -194,7 +194,7 @@ static void parse_flags(const uint8_t *buf, struct fs9922_info *info) info->is_beep = (buf[9] & (1 << 3)) != 0; info->is_diode = (buf[9] & (1 << 2)) != 0; info->is_percent = (buf[9] & (1 << 1)) != 0; - info->is_z4 = (buf[8] & (1 << 0)) != 0; /* User symbol 4 */ + info->is_z4 = (buf[9] & (1 << 0)) != 0; /* User symbol 4 */ /* Byte 10 */ info->is_volt = (buf[10] & (1 << 7)) != 0; @@ -293,6 +293,8 @@ static void handle_flags(struct sr_datafeed_analog *analog, float *floatval, analog->mqflags |= SR_MQFLAG_DC; if (info->is_auto) analog->mqflags |= SR_MQFLAG_AUTORANGE; + if (info->is_diode) + analog->mqflags |= SR_MQFLAG_DIODE; if (info->is_hold) analog->mqflags |= SR_MQFLAG_HOLD; if (info->is_max) @@ -373,3 +375,17 @@ SR_PRIV int sr_fs9922_parse(const uint8_t *buf, float *floatval, return SR_OK; } + +SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog *analog, void *info) +{ + struct fs9922_info *info_local; + + info_local = (struct fs9922_info *)info; + + /* User-defined z1 flag means "diode mode". */ + if (info_local->is_z1) { + analog->mq = SR_MQ_VOLTAGE; + analog->unit = SR_UNIT_VOLT; + analog->mqflags |= SR_MQFLAG_DIODE; + } +}