mode = 7; /* Capacitance */
else if (info->is_diode)
mode = 8; /* Diode */
+ else if (info->is_duty_cycle)
+ mode = 0; /* Dummy, unused */
else {
sr_dbg("Invalid mode, range byte was: 0x%02x.", b);
return SR_ERR;
else if (info->is_milli)
factor = (const float[]){1e-2, 1e-1}[idx];
}
+ else if (info->is_duty_cycle)
+ factor = 1e-1;
else if (info->baudrate == 2400)
factor = factors_2400_11b[mode][idx];
else if (info->fivedigits)
case 0x32: /* Frequency / RPM / duty cycle */
if (info->packet_size == 14) {
if (info->is_judge)
- info->is_frequency = TRUE;
- else
info->is_duty_cycle = TRUE;
+ else
+ info->is_frequency = TRUE;
} else {
if (info->is_judge)
info->is_rpm = TRUE;
}
}
+ if (info->is_vahz && (info->is_voltage || info->is_current)) {
+ info->is_voltage = FALSE;
+ info->is_current = FALSE;
+ info->is_milli = info->is_micro = FALSE;
+ if (info->packet_size == 14) {
+ if (info->is_judge)
+ info->is_duty_cycle = TRUE;
+ else
+ info->is_frequency = TRUE;
+ } else {
+ if (info->is_judge)
+ info->is_rpm = TRUE;
+ else
+ info->is_frequency = TRUE;
+ }
+ }
+
if (info->is_current && (info->is_micro || info->is_milli) && info->is_vasel) {
info->is_current = info->is_auto = FALSE;
info->is_voltage = TRUE;