es519xx: fix continuity mode handling
Depending on the chip, the limit value for the buzzer is between 25 and 35 Ω, so this code set the limit for continuity to 25 Ω to be on the safe side.
This commit is contained in:
parent
5f985df23c
commit
a7c01629f6
|
@ -156,7 +156,7 @@ static int parse_range(uint8_t b, float *floatval,
|
||||||
else if (info->is_rpm)
|
else if (info->is_rpm)
|
||||||
/* Not a typo, it's really index 4 in factors_2400_11b[][]. */
|
/* Not a typo, it's really index 4 in factors_2400_11b[][]. */
|
||||||
mode = 4; /* RPM */
|
mode = 4; /* RPM */
|
||||||
else if (info->is_resistance)
|
else if (info->is_resistance || info->is_continuity)
|
||||||
mode = 5; /* Resistance */
|
mode = 5; /* Resistance */
|
||||||
else if (info->is_frequency)
|
else if (info->is_frequency)
|
||||||
mode = 6; /* Frequency */
|
mode = 6; /* Frequency */
|
||||||
|
@ -455,7 +455,7 @@ static void handle_flags(struct sr_datafeed_analog *analog,
|
||||||
if (info->is_continuity) {
|
if (info->is_continuity) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->unit = SR_UNIT_BOOLEAN;
|
||||||
*floatval = (*floatval < 0.0) ? 0.0 : 1.0;
|
*floatval = (*floatval < 0.0 || *floatval > 25.0) ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
if (info->is_diode) {
|
if (info->is_diode) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->mq = SR_MQ_VOLTAGE;
|
||||||
|
@ -588,9 +588,11 @@ static int sr_es519xx_parse(const uint8_t *buf, float *floatval,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_flags(analog, floatval, info);
|
if ((ret = parse_range(buf[0], floatval, info)) != SR_OK)
|
||||||
|
return ret;
|
||||||
|
|
||||||
return parse_range(buf[0], floatval, info);
|
handle_flags(analog, floatval, info);
|
||||||
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue