else if (info->is_rpm)
/* Not a typo, it's really index 4 in factors_2400_11b[][]. */
mode = 4; /* RPM */
- else if (info->is_resistance)
+ else if (info->is_resistance || info->is_continuity)
mode = 5; /* Resistance */
else if (info->is_frequency)
mode = 6; /* Frequency */
if (info->is_continuity) {
analog->mq = SR_MQ_CONTINUITY;
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) {
analog->mq = SR_MQ_VOLTAGE;
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;
}
/*