dmm: Convert to SR_DF_ANALOG.
This commit is contained in:
parent
7ffcf58736
commit
b02bb45f4c
|
@ -147,61 +147,61 @@ special:
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_brymen_bm25x_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_brymen_bm25x_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
float val;
|
float val;
|
||||||
|
|
||||||
(void)info;
|
(void)info;
|
||||||
|
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
analog->mqflags = 0;
|
analog->meaning->mqflags = 0;
|
||||||
|
|
||||||
if (buf[1] & 8)
|
if (buf[1] & 8)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (buf[1] & 4)
|
if (buf[1] & 4)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (buf[1] & 2)
|
if (buf[1] & 2)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (buf[1] & 1)
|
if (buf[1] & 1)
|
||||||
analog->mqflags |= SR_MQFLAG_RELATIVE;
|
analog->meaning->mqflags |= SR_MQFLAG_RELATIVE;
|
||||||
if (buf[11] & 8)
|
if (buf[11] & 8)
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (buf[13] & 8)
|
if (buf[13] & 8)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
if (buf[14] & 8)
|
if (buf[14] & 8)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
|
|
||||||
if (buf[14] & 4) {
|
if (buf[14] & 4) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
if ((analog->mqflags & (SR_MQFLAG_DC | SR_MQFLAG_AC)) == 0)
|
if ((analog->meaning->mqflags & (SR_MQFLAG_DC | SR_MQFLAG_AC)) == 0)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
}
|
}
|
||||||
if (buf[14] & 2) {
|
if (buf[14] & 2) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (buf[12] & 4) {
|
if (buf[12] & 4) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (buf[13] & 4) {
|
if (buf[13] & 4) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (buf[12] & 2) {
|
if (buf[12] & 2) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (decode_digit(3, buf) == 'C') {
|
if (decode_digit(3, buf) == 'C') {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
if (decode_digit(3, buf) == 'F') {
|
if (decode_digit(3, buf) == 'F') {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_FAHRENHEIT;
|
analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
val = decode_value(buf) * decode_prefix(buf);
|
val = decode_value(buf) * decode_prefix(buf);
|
||||||
|
|
|
@ -248,7 +248,7 @@ static void parse_flags(const uint8_t *buf, struct dtm0660_info *info)
|
||||||
info->is_max = (buf[14] & (1 << 3)) != 0;
|
info->is_max = (buf[14] & (1 << 3)) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
static void handle_flags(struct sr_datafeed_analog *analog, float *floatval,
|
||||||
const struct dtm0660_info *info)
|
const struct dtm0660_info *info)
|
||||||
{
|
{
|
||||||
/* Factors */
|
/* Factors */
|
||||||
|
@ -265,64 +265,64 @@ static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
||||||
|
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_volt) {
|
if (info->is_volt) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_ampere) {
|
if (info->is_ampere) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_ohm) {
|
if (info->is_ohm) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_hz) {
|
if (info->is_hz) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_farad) {
|
if (info->is_farad) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_beep) {
|
if (info->is_beep) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
*floatval = (*floatval == INFINITY) ? 0.0 : 1.0;
|
*floatval = (*floatval == INFINITY) ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
if (info->is_diode) {
|
if (info->is_diode) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_percent) {
|
if (info->is_percent) {
|
||||||
analog->mq = SR_MQ_DUTY_CYCLE;
|
analog->meaning->mq = SR_MQ_DUTY_CYCLE;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
if (info->is_degc) {
|
if (info->is_degc) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
if (info->is_degf) {
|
if (info->is_degf) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_FAHRENHEIT;
|
analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_auto)
|
if (info->is_auto)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
if (info->is_hold)
|
if (info->is_hold)
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (info->is_rel)
|
if (info->is_rel)
|
||||||
analog->mqflags |= SR_MQFLAG_RELATIVE;
|
analog->meaning->mqflags |= SR_MQFLAG_RELATIVE;
|
||||||
if (info->is_min)
|
if (info->is_min)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
if (info->is_max)
|
if (info->is_max)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
|
|
||||||
/* Other flags */
|
/* Other flags */
|
||||||
if (info->is_rs232)
|
if (info->is_rs232)
|
||||||
|
@ -354,7 +354,7 @@ SR_PRIV gboolean sr_dtm0660_packet_valid(const uint8_t *buf)
|
||||||
* @param buf Buffer containing the 15-byte protocol packet. Must not be NULL.
|
* @param buf Buffer containing the 15-byte protocol packet. Must not be NULL.
|
||||||
* @param floatval Pointer to a float variable. That variable will contain the
|
* @param floatval Pointer to a float variable. That variable will contain the
|
||||||
* result value upon parsing success. Must not be NULL.
|
* result value upon parsing success. Must not be NULL.
|
||||||
* @param analog Pointer to a struct sr_datafeed_analog_old. The struct will be
|
* @param analog Pointer to a struct sr_datafeed_analog. The struct will be
|
||||||
* filled with data according to the protocol packet.
|
* filled with data according to the protocol packet.
|
||||||
* Must not be NULL.
|
* Must not be NULL.
|
||||||
* @param info Pointer to a struct dtm0660_info. The struct will be filled
|
* @param info Pointer to a struct dtm0660_info. The struct will be filled
|
||||||
|
@ -364,7 +364,7 @@ SR_PRIV gboolean sr_dtm0660_packet_valid(const uint8_t *buf)
|
||||||
* 'analog' variable contents are undefined and should not be used.
|
* 'analog' variable contents are undefined and should not be used.
|
||||||
*/
|
*/
|
||||||
SR_PRIV int sr_dtm0660_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_dtm0660_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct dtm0660_info *info_local;
|
struct dtm0660_info *info_local;
|
||||||
|
|
|
@ -444,7 +444,7 @@ static void parse_flags(const uint8_t *buf, struct es519xx_info *info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog,
|
static void handle_flags(struct sr_datafeed_analog *analog,
|
||||||
float *floatval, const struct es519xx_info *info)
|
float *floatval, const struct es519xx_info *info)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -454,73 +454,73 @@ static void handle_flags(struct sr_datafeed_analog_old *analog,
|
||||||
|
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_voltage) {
|
if (info->is_voltage) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_current) {
|
if (info->is_current) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_resistance) {
|
if (info->is_resistance) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_frequency) {
|
if (info->is_frequency) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_capacitance) {
|
if (info->is_capacitance) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_temperature && info->is_celsius) {
|
if (info->is_temperature && info->is_celsius) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
if (info->is_temperature && info->is_fahrenheit) {
|
if (info->is_temperature && info->is_fahrenheit) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_FAHRENHEIT;
|
analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
if (info->is_continuity) {
|
if (info->is_continuity) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
*floatval = (*floatval < 0.0 || *floatval > 25.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->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_rpm) {
|
if (info->is_rpm) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_REVOLUTIONS_PER_MINUTE;
|
analog->meaning->unit = SR_UNIT_REVOLUTIONS_PER_MINUTE;
|
||||||
}
|
}
|
||||||
if (info->is_duty_cycle) {
|
if (info->is_duty_cycle) {
|
||||||
analog->mq = SR_MQ_DUTY_CYCLE;
|
analog->meaning->mq = SR_MQ_DUTY_CYCLE;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_auto)
|
if (info->is_auto)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
if (info->is_hold)
|
if (info->is_hold)
|
||||||
/*
|
/*
|
||||||
* Note: HOLD only affects the number displayed on the LCD,
|
* Note: HOLD only affects the number displayed on the LCD,
|
||||||
* but not the value sent via the protocol! It also does not
|
* but not the value sent via the protocol! It also does not
|
||||||
* affect the bargraph on the LCD.
|
* affect the bargraph on the LCD.
|
||||||
*/
|
*/
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (info->is_max)
|
if (info->is_max)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
if (info->is_min)
|
if (info->is_min)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
if (info->is_rel)
|
if (info->is_rel)
|
||||||
analog->mqflags |= SR_MQFLAG_RELATIVE;
|
analog->meaning->mqflags |= SR_MQFLAG_RELATIVE;
|
||||||
|
|
||||||
/* Other flags */
|
/* Other flags */
|
||||||
if (info->is_judge)
|
if (info->is_judge)
|
||||||
|
@ -604,7 +604,7 @@ static gboolean sr_es519xx_packet_valid(const uint8_t *buf,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sr_es519xx_parse(const uint8_t *buf, float *floatval,
|
static int sr_es519xx_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog,
|
struct sr_datafeed_analog *analog,
|
||||||
struct es519xx_info *info)
|
struct es519xx_info *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -640,7 +640,7 @@ SR_PRIV gboolean sr_es519xx_2400_11b_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_2400_11b_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_es519xx_2400_11b_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
@ -669,7 +669,7 @@ SR_PRIV gboolean sr_es519xx_2400_11b_altfn_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_2400_11b_altfn_parse(const uint8_t *buf,
|
SR_PRIV int sr_es519xx_2400_11b_altfn_parse(const uint8_t *buf,
|
||||||
float *floatval, struct sr_datafeed_analog_old *analog, void *info)
|
float *floatval, struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
@ -699,7 +699,7 @@ SR_PRIV gboolean sr_es519xx_19200_11b_5digits_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_19200_11b_5digits_parse(const uint8_t *buf,
|
SR_PRIV int sr_es519xx_19200_11b_5digits_parse(const uint8_t *buf,
|
||||||
float *floatval, struct sr_datafeed_analog_old *analog, void *info)
|
float *floatval, struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
@ -729,7 +729,7 @@ SR_PRIV gboolean sr_es519xx_19200_11b_clamp_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_19200_11b_clamp_parse(const uint8_t *buf,
|
SR_PRIV int sr_es519xx_19200_11b_clamp_parse(const uint8_t *buf,
|
||||||
float *floatval, struct sr_datafeed_analog_old *analog, void *info)
|
float *floatval, struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
@ -758,7 +758,7 @@ SR_PRIV gboolean sr_es519xx_19200_11b_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_19200_11b_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_es519xx_19200_11b_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
@ -786,7 +786,7 @@ SR_PRIV gboolean sr_es519xx_19200_14b_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_19200_14b_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_es519xx_19200_14b_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
@ -815,7 +815,7 @@ SR_PRIV gboolean sr_es519xx_19200_14b_sel_lpf_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_es519xx_19200_14b_sel_lpf_parse(const uint8_t *buf,
|
SR_PRIV int sr_es519xx_19200_14b_sel_lpf_parse(const uint8_t *buf,
|
||||||
float *floatval, struct sr_datafeed_analog_old *analog, void *info)
|
float *floatval, struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct es519xx_info *info_local;
|
struct es519xx_info *info_local;
|
||||||
|
|
||||||
|
|
|
@ -243,7 +243,7 @@ static void parse_flags(const uint8_t *buf, struct fs9721_info *info)
|
||||||
info->is_c2c1_00 = (buf[13] & (1 << 0)) != 0;
|
info->is_c2c1_00 = (buf[13] & (1 << 0)) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
static void handle_flags(struct sr_datafeed_analog *analog, float *floatval,
|
||||||
const struct fs9721_info *info)
|
const struct fs9721_info *info)
|
||||||
{
|
{
|
||||||
/* Factors */
|
/* Factors */
|
||||||
|
@ -260,52 +260,52 @@ static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
||||||
|
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_volt) {
|
if (info->is_volt) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_ampere) {
|
if (info->is_ampere) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_ohm) {
|
if (info->is_ohm) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_hz) {
|
if (info->is_hz) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_farad) {
|
if (info->is_farad) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_beep) {
|
if (info->is_beep) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
*floatval = (*floatval == INFINITY) ? 0.0 : 1.0;
|
*floatval = (*floatval == INFINITY) ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
if (info->is_diode) {
|
if (info->is_diode) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_percent) {
|
if (info->is_percent) {
|
||||||
analog->mq = SR_MQ_DUTY_CYCLE;
|
analog->meaning->mq = SR_MQ_DUTY_CYCLE;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_auto)
|
if (info->is_auto)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
if (info->is_hold)
|
if (info->is_hold)
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (info->is_rel)
|
if (info->is_rel)
|
||||||
analog->mqflags |= SR_MQFLAG_RELATIVE;
|
analog->meaning->mqflags |= SR_MQFLAG_RELATIVE;
|
||||||
|
|
||||||
/* Other flags */
|
/* Other flags */
|
||||||
if (info->is_rs232)
|
if (info->is_rs232)
|
||||||
|
@ -337,7 +337,7 @@ SR_PRIV gboolean sr_fs9721_packet_valid(const uint8_t *buf)
|
||||||
* @param buf Buffer containing the 14-byte protocol packet. Must not be NULL.
|
* @param buf Buffer containing the 14-byte protocol packet. Must not be NULL.
|
||||||
* @param floatval Pointer to a float variable. That variable will contain the
|
* @param floatval Pointer to a float variable. That variable will contain the
|
||||||
* result value upon parsing success. Must not be NULL.
|
* result value upon parsing success. Must not be NULL.
|
||||||
* @param analog Pointer to a struct sr_datafeed_analog_old. The struct will be
|
* @param analog Pointer to a struct sr_datafeed_analog. The struct will be
|
||||||
* filled with data according to the protocol packet.
|
* filled with data according to the protocol packet.
|
||||||
* Must not be NULL.
|
* Must not be NULL.
|
||||||
* @param info Pointer to a struct fs9721_info. The struct will be filled
|
* @param info Pointer to a struct fs9721_info. The struct will be filled
|
||||||
|
@ -347,7 +347,7 @@ SR_PRIV gboolean sr_fs9721_packet_valid(const uint8_t *buf)
|
||||||
* 'analog' variable contents are undefined and should not be used.
|
* 'analog' variable contents are undefined and should not be used.
|
||||||
*/
|
*/
|
||||||
SR_PRIV int sr_fs9721_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_fs9721_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct fs9721_info *info_local;
|
struct fs9721_info *info_local;
|
||||||
|
@ -365,7 +365,7 @@ SR_PRIV int sr_fs9721_parse(const uint8_t *buf, float *floatval,
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV void sr_fs9721_00_temp_c(struct sr_datafeed_analog_old *analog, void *info)
|
SR_PRIV void sr_fs9721_00_temp_c(struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct fs9721_info *info_local;
|
struct fs9721_info *info_local;
|
||||||
|
|
||||||
|
@ -373,12 +373,12 @@ SR_PRIV void sr_fs9721_00_temp_c(struct sr_datafeed_analog_old *analog, void *in
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_00' means temperature (C). */
|
/* User-defined FS9721_LP3 flag 'c2c1_00' means temperature (C). */
|
||||||
if (info_local->is_c2c1_00) {
|
if (info_local->is_c2c1_00) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV void sr_fs9721_01_temp_c(struct sr_datafeed_analog_old *analog, void *info)
|
SR_PRIV void sr_fs9721_01_temp_c(struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct fs9721_info *info_local;
|
struct fs9721_info *info_local;
|
||||||
|
|
||||||
|
@ -386,12 +386,12 @@ SR_PRIV void sr_fs9721_01_temp_c(struct sr_datafeed_analog_old *analog, void *in
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (C). */
|
/* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (C). */
|
||||||
if (info_local->is_c2c1_01) {
|
if (info_local->is_c2c1_01) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV void sr_fs9721_10_temp_c(struct sr_datafeed_analog_old *analog, void *info)
|
SR_PRIV void sr_fs9721_10_temp_c(struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct fs9721_info *info_local;
|
struct fs9721_info *info_local;
|
||||||
|
|
||||||
|
@ -399,12 +399,12 @@ SR_PRIV void sr_fs9721_10_temp_c(struct sr_datafeed_analog_old *analog, void *in
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_10' means temperature (C). */
|
/* User-defined FS9721_LP3 flag 'c2c1_10' means temperature (C). */
|
||||||
if (info_local->is_c2c1_10) {
|
if (info_local->is_c2c1_10) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV void sr_fs9721_01_10_temp_f_c(struct sr_datafeed_analog_old *analog, void *info)
|
SR_PRIV void sr_fs9721_01_10_temp_f_c(struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct fs9721_info *info_local;
|
struct fs9721_info *info_local;
|
||||||
|
|
||||||
|
@ -412,18 +412,18 @@ SR_PRIV void sr_fs9721_01_10_temp_f_c(struct sr_datafeed_analog_old *analog, voi
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (F). */
|
/* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (F). */
|
||||||
if (info_local->is_c2c1_01) {
|
if (info_local->is_c2c1_01) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_FAHRENHEIT;
|
analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_10' means temperature (C). */
|
/* User-defined FS9721_LP3 flag 'c2c1_10' means temperature (C). */
|
||||||
if (info_local->is_c2c1_10) {
|
if (info_local->is_c2c1_10) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV void sr_fs9721_max_c_min(struct sr_datafeed_analog_old *analog, void *info)
|
SR_PRIV void sr_fs9721_max_c_min(struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct fs9721_info *info_local;
|
struct fs9721_info *info_local;
|
||||||
|
|
||||||
|
@ -431,16 +431,16 @@ SR_PRIV void sr_fs9721_max_c_min(struct sr_datafeed_analog_old *analog, void *in
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_00' means MAX. */
|
/* User-defined FS9721_LP3 flag 'c2c1_00' means MAX. */
|
||||||
if (info_local->is_c2c1_00)
|
if (info_local->is_c2c1_00)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (C). */
|
/* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (C). */
|
||||||
if (info_local->is_c2c1_01) {
|
if (info_local->is_c2c1_01) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* User-defined FS9721_LP3 flag 'c2c1_11' means MIN. */
|
/* User-defined FS9721_LP3 flag 'c2c1_11' means MIN. */
|
||||||
if (info_local->is_c2c1_11)
|
if (info_local->is_c2c1_11)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,7 +223,7 @@ static void parse_flags(const uint8_t *buf, struct fs9922_info *info)
|
||||||
/* Byte 13: Always '\n' (newline, 0x0a, 10) */
|
/* Byte 13: Always '\n' (newline, 0x0a, 10) */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
static void handle_flags(struct sr_datafeed_analog *analog, float *floatval,
|
||||||
const struct fs9922_info *info)
|
const struct fs9922_info *info)
|
||||||
{
|
{
|
||||||
/* Factors */
|
/* Factors */
|
||||||
|
@ -241,64 +241,64 @@ static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_volt || info->is_diode) {
|
if (info->is_volt || info->is_diode) {
|
||||||
/* Note: In "diode mode" both is_diode and is_volt are set. */
|
/* Note: In "diode mode" both is_diode and is_volt are set. */
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_ampere) {
|
if (info->is_ampere) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_ohm) {
|
if (info->is_ohm) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_hfe) {
|
if (info->is_hfe) {
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
}
|
}
|
||||||
if (info->is_hertz) {
|
if (info->is_hertz) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_farad) {
|
if (info->is_farad) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_celsius) {
|
if (info->is_celsius) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
if (info->is_fahrenheit) {
|
if (info->is_fahrenheit) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_FAHRENHEIT;
|
analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
if (info->is_beep) {
|
if (info->is_beep) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
*floatval = (*floatval == INFINITY) ? 0.0 : 1.0;
|
*floatval = (*floatval == INFINITY) ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
if (info->is_percent) {
|
if (info->is_percent) {
|
||||||
analog->mq = SR_MQ_DUTY_CYCLE;
|
analog->meaning->mq = SR_MQ_DUTY_CYCLE;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_auto)
|
if (info->is_auto)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
if (info->is_hold)
|
if (info->is_hold)
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (info->is_max)
|
if (info->is_max)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
if (info->is_min)
|
if (info->is_min)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
if (info->is_rel)
|
if (info->is_rel)
|
||||||
analog->mqflags |= SR_MQFLAG_RELATIVE;
|
analog->meaning->mqflags |= SR_MQFLAG_RELATIVE;
|
||||||
|
|
||||||
/* Other flags */
|
/* Other flags */
|
||||||
if (info->is_apo)
|
if (info->is_apo)
|
||||||
|
@ -344,7 +344,7 @@ SR_PRIV gboolean sr_fs9922_packet_valid(const uint8_t *buf)
|
||||||
* @param buf Buffer containing the protocol packet. Must not be NULL.
|
* @param buf Buffer containing the protocol packet. Must not be NULL.
|
||||||
* @param floatval Pointer to a float variable. That variable will contain the
|
* @param floatval Pointer to a float variable. That variable will contain the
|
||||||
* result value upon parsing success. Must not be NULL.
|
* result value upon parsing success. Must not be NULL.
|
||||||
* @param analog Pointer to a struct sr_datafeed_analog_old. The struct will be
|
* @param analog Pointer to a struct sr_datafeed_analog. The struct will be
|
||||||
* filled with data according to the protocol packet.
|
* filled with data according to the protocol packet.
|
||||||
* Must not be NULL.
|
* Must not be NULL.
|
||||||
* @param info Pointer to a struct fs9922_info. The struct will be filled
|
* @param info Pointer to a struct fs9922_info. The struct will be filled
|
||||||
|
@ -354,7 +354,7 @@ SR_PRIV gboolean sr_fs9922_packet_valid(const uint8_t *buf)
|
||||||
* 'analog' variable contents are undefined and should not be used.
|
* 'analog' variable contents are undefined and should not be used.
|
||||||
*/
|
*/
|
||||||
SR_PRIV int sr_fs9922_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_fs9922_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct fs9922_info *info_local;
|
struct fs9922_info *info_local;
|
||||||
|
@ -372,7 +372,7 @@ SR_PRIV int sr_fs9922_parse(const uint8_t *buf, float *floatval,
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog_old *analog, void *info)
|
SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
struct fs9922_info *info_local;
|
struct fs9922_info *info_local;
|
||||||
|
|
||||||
|
@ -380,8 +380,8 @@ SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog_old *analog, void *inf
|
||||||
|
|
||||||
/* User-defined z1 flag means "diode mode". */
|
/* User-defined z1 flag means "diode mode". */
|
||||||
if (info_local->is_z1) {
|
if (info_local->is_z1) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,16 +51,16 @@ SR_PRIV gboolean sr_m2110_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
float val;
|
float val;
|
||||||
|
|
||||||
(void)info;
|
(void)info;
|
||||||
|
|
||||||
/* We don't know the unit, so that's the best we can do. */
|
/* We don't know the unit, so that's the best we can do. */
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
analog->mqflags = 0;
|
analog->meaning->mqflags = 0;
|
||||||
|
|
||||||
if (!strncmp((const char *)buf, "OVERRNG", 7))
|
if (!strncmp((const char *)buf, "OVERRNG", 7))
|
||||||
*floatval = INFINITY;
|
*floatval = INFINITY;
|
||||||
|
|
|
@ -170,7 +170,7 @@ static void parse_flags(const char *buf, struct metex14_info *info)
|
||||||
/* Byte 13: Always '\r' (carriage return, 0x0d, 13) */
|
/* Byte 13: Always '\r' (carriage return, 0x0d, 13) */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
static void handle_flags(struct sr_datafeed_analog *analog, float *floatval,
|
||||||
const struct metex14_info *info)
|
const struct metex14_info *info)
|
||||||
{
|
{
|
||||||
/* Factors */
|
/* Factors */
|
||||||
|
@ -189,53 +189,53 @@ static void handle_flags(struct sr_datafeed_analog_old *analog, float *floatval,
|
||||||
|
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_volt) {
|
if (info->is_volt) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_ampere) {
|
if (info->is_ampere) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_ohm) {
|
if (info->is_ohm) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_hertz) {
|
if (info->is_hertz) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_farad) {
|
if (info->is_farad) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_celsius) {
|
if (info->is_celsius) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
if (info->is_diode) {
|
if (info->is_diode) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_gain) {
|
if (info->is_gain) {
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_DECIBEL_VOLT;
|
analog->meaning->unit = SR_UNIT_DECIBEL_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_hfe) {
|
if (info->is_hfe) {
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
}
|
}
|
||||||
if (info->is_logic) {
|
if (info->is_logic) {
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean flags_valid(const struct metex14_info *info)
|
static gboolean flags_valid(const struct metex14_info *info)
|
||||||
|
@ -311,7 +311,7 @@ SR_PRIV gboolean sr_metex14_packet_valid(const uint8_t *buf)
|
||||||
* @param buf Buffer containing the protocol packet. Must not be NULL.
|
* @param buf Buffer containing the protocol packet. Must not be NULL.
|
||||||
* @param floatval Pointer to a float variable. That variable will be modified
|
* @param floatval Pointer to a float variable. That variable will be modified
|
||||||
* in-place depending on the protocol packet. Must not be NULL.
|
* in-place depending on the protocol packet. Must not be NULL.
|
||||||
* @param analog Pointer to a struct sr_datafeed_analog_old. The struct will be
|
* @param analog Pointer to a struct sr_datafeed_analog. The struct will be
|
||||||
* filled with data according to the protocol packet.
|
* filled with data according to the protocol packet.
|
||||||
* Must not be NULL.
|
* Must not be NULL.
|
||||||
* @param info Pointer to a struct metex14_info. The struct will be filled
|
* @param info Pointer to a struct metex14_info. The struct will be filled
|
||||||
|
@ -321,7 +321,7 @@ SR_PRIV gboolean sr_metex14_packet_valid(const uint8_t *buf)
|
||||||
* 'analog' variable contents are undefined and should not be used.
|
* 'analog' variable contents are undefined and should not be used.
|
||||||
*/
|
*/
|
||||||
SR_PRIV int sr_metex14_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_metex14_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct metex14_info *info_local;
|
struct metex14_info *info_local;
|
||||||
|
|
|
@ -318,7 +318,7 @@ static gboolean is_logic_high(const struct rs9lcd_packet *rs_packet)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_rs9lcd_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_rs9lcd_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
const struct rs9lcd_packet *rs_packet = (void *)buf;
|
const struct rs9lcd_packet *rs_packet = (void *)buf;
|
||||||
double rawval;
|
double rawval;
|
||||||
|
@ -329,95 +329,95 @@ SR_PRIV int sr_rs9lcd_parse(const uint8_t *buf, float *floatval,
|
||||||
|
|
||||||
switch (rs_packet->mode) {
|
switch (rs_packet->mode) {
|
||||||
case MODE_DC_V:
|
case MODE_DC_V:
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
break;
|
break;
|
||||||
case MODE_AC_V:
|
case MODE_AC_V:
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
break;
|
break;
|
||||||
case MODE_DC_UA: /* Fall through */
|
case MODE_DC_UA: /* Fall through */
|
||||||
case MODE_DC_MA: /* Fall through */
|
case MODE_DC_MA: /* Fall through */
|
||||||
case MODE_DC_A:
|
case MODE_DC_A:
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
break;
|
break;
|
||||||
case MODE_AC_UA: /* Fall through */
|
case MODE_AC_UA: /* Fall through */
|
||||||
case MODE_AC_MA: /* Fall through */
|
case MODE_AC_MA: /* Fall through */
|
||||||
case MODE_AC_A:
|
case MODE_AC_A:
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
break;
|
break;
|
||||||
case MODE_OHM:
|
case MODE_OHM:
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
break;
|
break;
|
||||||
case MODE_FARAD:
|
case MODE_FARAD:
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
break;
|
break;
|
||||||
case MODE_CONT:
|
case MODE_CONT:
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
rawval = is_shortcirc(rs_packet);
|
rawval = is_shortcirc(rs_packet);
|
||||||
break;
|
break;
|
||||||
case MODE_DIODE:
|
case MODE_DIODE:
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE | SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE | SR_MQFLAG_DC;
|
||||||
break;
|
break;
|
||||||
case MODE_HZ: /* Fall through */
|
case MODE_HZ: /* Fall through */
|
||||||
case MODE_VOLT_HZ: /* Fall through */
|
case MODE_VOLT_HZ: /* Fall through */
|
||||||
case MODE_AMP_HZ:
|
case MODE_AMP_HZ:
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
break;
|
break;
|
||||||
case MODE_LOGIC:
|
case MODE_LOGIC:
|
||||||
/*
|
/*
|
||||||
* No matter whether or not we have an actual voltage reading,
|
* No matter whether or not we have an actual voltage reading,
|
||||||
* we are measuring voltage, so we set our MQ as VOLTAGE.
|
* we are measuring voltage, so we set our MQ as VOLTAGE.
|
||||||
*/
|
*/
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
if (!isnan(rawval)) {
|
if (!isnan(rawval)) {
|
||||||
/* We have an actual voltage. */
|
/* We have an actual voltage. */
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
} else {
|
} else {
|
||||||
/* We have either HI or LOW. */
|
/* We have either HI or LOW. */
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
rawval = is_logic_high(rs_packet);
|
rawval = is_logic_high(rs_packet);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MODE_HFE:
|
case MODE_HFE:
|
||||||
analog->mq = SR_MQ_GAIN;
|
analog->meaning->mq = SR_MQ_GAIN;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
break;
|
break;
|
||||||
case MODE_DUTY: /* Fall through */
|
case MODE_DUTY: /* Fall through */
|
||||||
case MODE_VOLT_DUTY: /* Fall through */
|
case MODE_VOLT_DUTY: /* Fall through */
|
||||||
case MODE_AMP_DUTY:
|
case MODE_AMP_DUTY:
|
||||||
analog->mq = SR_MQ_DUTY_CYCLE;
|
analog->meaning->mq = SR_MQ_DUTY_CYCLE;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
break;
|
break;
|
||||||
case MODE_WIDTH: /* Fall through */
|
case MODE_WIDTH: /* Fall through */
|
||||||
case MODE_VOLT_WIDTH: /* Fall through */
|
case MODE_VOLT_WIDTH: /* Fall through */
|
||||||
case MODE_AMP_WIDTH:
|
case MODE_AMP_WIDTH:
|
||||||
analog->mq = SR_MQ_PULSE_WIDTH;
|
analog->meaning->mq = SR_MQ_PULSE_WIDTH;
|
||||||
analog->unit = SR_UNIT_SECOND;
|
analog->meaning->unit = SR_UNIT_SECOND;
|
||||||
break;
|
break;
|
||||||
case MODE_TEMP:
|
case MODE_TEMP:
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
/* We need to reparse. */
|
/* We need to reparse. */
|
||||||
rawval = lcd_to_double(rs_packet, READ_TEMP);
|
rawval = lcd_to_double(rs_packet, READ_TEMP);
|
||||||
analog->unit = is_celsius(rs_packet) ?
|
analog->meaning->unit = is_celsius(rs_packet) ?
|
||||||
SR_UNIT_CELSIUS : SR_UNIT_FAHRENHEIT;
|
SR_UNIT_CELSIUS : SR_UNIT_FAHRENHEIT;
|
||||||
break;
|
break;
|
||||||
case MODE_DBM:
|
case MODE_DBM:
|
||||||
analog->mq = SR_MQ_POWER;
|
analog->meaning->mq = SR_MQ_POWER;
|
||||||
analog->unit = SR_UNIT_DECIBEL_MW;
|
analog->meaning->unit = SR_UNIT_DECIBEL_MW;
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sr_dbg("Unknown mode: %d.", rs_packet->mode);
|
sr_dbg("Unknown mode: %d.", rs_packet->mode);
|
||||||
|
@ -425,13 +425,13 @@ SR_PRIV int sr_rs9lcd_parse(const uint8_t *buf, float *floatval,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rs_packet->info & INFO_HOLD)
|
if (rs_packet->info & INFO_HOLD)
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (rs_packet->digit4 & DIG4_MAX)
|
if (rs_packet->digit4 & DIG4_MAX)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
if (rs_packet->indicatrix2 & IND2_MIN)
|
if (rs_packet->indicatrix2 & IND2_MIN)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
if (rs_packet->info & INFO_AUTO)
|
if (rs_packet->info & INFO_AUTO)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
|
|
||||||
*floatval = rawval;
|
*floatval = rawval;
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
|
|
@ -88,7 +88,7 @@ SR_PRIV gboolean sr_ut372_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_ut372_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_ut372_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
unsigned int i, j, value, divisor;
|
unsigned int i, j, value, divisor;
|
||||||
uint8_t segments, flags1, flags2;
|
uint8_t segments, flags1, flags2;
|
||||||
|
@ -99,21 +99,21 @@ SR_PRIV int sr_ut372_parse(const uint8_t *buf, float *floatval,
|
||||||
flags2 = decode_pair(buf + 23);
|
flags2 = decode_pair(buf + 23);
|
||||||
|
|
||||||
if (flags2 & FLAGS2_RPM_MASK) {
|
if (flags2 & FLAGS2_RPM_MASK) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_REVOLUTIONS_PER_MINUTE;
|
analog->meaning->unit = SR_UNIT_REVOLUTIONS_PER_MINUTE;
|
||||||
} else if (flags2 & FLAGS2_COUNT_MASK) {
|
} else if (flags2 & FLAGS2_COUNT_MASK) {
|
||||||
analog->mq = SR_MQ_COUNT;
|
analog->meaning->mq = SR_MQ_COUNT;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags1 & FLAGS1_HOLD_MASK)
|
if (flags1 & FLAGS1_HOLD_MASK)
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (flags2 & FLAGS2_MIN_MASK)
|
if (flags2 & FLAGS2_MIN_MASK)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
if (flags2 & FLAGS2_MAX_MASK)
|
if (flags2 & FLAGS2_MAX_MASK)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
if (flags2 & FLAGS2_AVG_MASK)
|
if (flags2 & FLAGS2_AVG_MASK)
|
||||||
analog->mqflags |= SR_MQFLAG_AVG;
|
analog->meaning->mqflags |= SR_MQFLAG_AVG;
|
||||||
|
|
||||||
value = 0;
|
value = 0;
|
||||||
divisor = 1;
|
divisor = 1;
|
||||||
|
|
|
@ -212,73 +212,73 @@ static void parse_flags(const uint8_t *buf, struct ut71x_info *info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog,
|
static void handle_flags(struct sr_datafeed_analog *analog,
|
||||||
float *floatval, const struct ut71x_info *info)
|
float *floatval, const struct ut71x_info *info)
|
||||||
{
|
{
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_voltage) {
|
if (info->is_voltage) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_current) {
|
if (info->is_current) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_resistance) {
|
if (info->is_resistance) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_frequency) {
|
if (info->is_frequency) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_capacitance) {
|
if (info->is_capacitance) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_temperature && info->is_celsius) {
|
if (info->is_temperature && info->is_celsius) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
}
|
}
|
||||||
if (info->is_temperature && info->is_fahrenheit) {
|
if (info->is_temperature && info->is_fahrenheit) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_FAHRENHEIT;
|
analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
if (info->is_continuity) {
|
if (info->is_continuity) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
*floatval = (*floatval < 0.0 || *floatval > 60.0) ? 0.0 : 1.0;
|
*floatval = (*floatval < 0.0 || *floatval > 60.0) ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
if (info->is_diode) {
|
if (info->is_diode) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_duty_cycle) {
|
if (info->is_duty_cycle) {
|
||||||
analog->mq = SR_MQ_DUTY_CYCLE;
|
analog->meaning->mq = SR_MQ_DUTY_CYCLE;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
if (info->is_power) {
|
if (info->is_power) {
|
||||||
analog->mq = SR_MQ_POWER;
|
analog->meaning->mq = SR_MQ_POWER;
|
||||||
analog->unit = SR_UNIT_WATT;
|
analog->meaning->unit = SR_UNIT_WATT;
|
||||||
}
|
}
|
||||||
if (info->is_loop_current) {
|
if (info->is_loop_current) {
|
||||||
/* 4mA = 0%, 20mA = 100% */
|
/* 4mA = 0%, 20mA = 100% */
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
/* All AC modes do True-RMS measurements. */
|
/* All AC modes do True-RMS measurements. */
|
||||||
analog->mqflags |= SR_MQFLAG_RMS;
|
analog->meaning->mqflags |= SR_MQFLAG_RMS;
|
||||||
if (info->is_auto)
|
if (info->is_auto)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean flags_valid(const struct ut71x_info *info)
|
static gboolean flags_valid(const struct ut71x_info *info)
|
||||||
|
@ -325,7 +325,7 @@ SR_PRIV gboolean sr_ut71x_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_ut71x_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_ut71x_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct ut71x_info *info_local;
|
struct ut71x_info *info_local;
|
||||||
|
|
|
@ -282,7 +282,7 @@ static void parse_flags(const uint8_t *buf, struct vc870_info *info)
|
||||||
info->is_auto = !info->is_manu;
|
info->is_auto = !info->is_manu;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_flags(struct sr_datafeed_analog_old *analog,
|
static void handle_flags(struct sr_datafeed_analog *analog,
|
||||||
float *floatval, const struct vc870_info *info)
|
float *floatval, const struct vc870_info *info)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -292,95 +292,95 @@ static void handle_flags(struct sr_datafeed_analog_old *analog,
|
||||||
|
|
||||||
/* Measurement modes */
|
/* Measurement modes */
|
||||||
if (info->is_voltage) {
|
if (info->is_voltage) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_current) {
|
if (info->is_current) {
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_AMPERE;
|
analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_resistance) {
|
if (info->is_resistance) {
|
||||||
analog->mq = SR_MQ_RESISTANCE;
|
analog->meaning->mq = SR_MQ_RESISTANCE;
|
||||||
analog->unit = SR_UNIT_OHM;
|
analog->meaning->unit = SR_UNIT_OHM;
|
||||||
}
|
}
|
||||||
if (info->is_frequency) {
|
if (info->is_frequency) {
|
||||||
analog->mq = SR_MQ_FREQUENCY;
|
analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
analog->unit = SR_UNIT_HERTZ;
|
analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_capacitance) {
|
if (info->is_capacitance) {
|
||||||
analog->mq = SR_MQ_CAPACITANCE;
|
analog->meaning->mq = SR_MQ_CAPACITANCE;
|
||||||
analog->unit = SR_UNIT_FARAD;
|
analog->meaning->unit = SR_UNIT_FARAD;
|
||||||
}
|
}
|
||||||
if (info->is_temperature) {
|
if (info->is_temperature) {
|
||||||
analog->mq = SR_MQ_TEMPERATURE;
|
analog->meaning->mq = SR_MQ_TEMPERATURE;
|
||||||
analog->unit = SR_UNIT_CELSIUS;
|
analog->meaning->unit = SR_UNIT_CELSIUS;
|
||||||
/* TODO: Handle Fahrenheit in auxiliary display. */
|
/* TODO: Handle Fahrenheit in auxiliary display. */
|
||||||
// analog->unit = SR_UNIT_FAHRENHEIT;
|
// analog->meaning->unit = SR_UNIT_FAHRENHEIT;
|
||||||
}
|
}
|
||||||
if (info->is_continuity) {
|
if (info->is_continuity) {
|
||||||
analog->mq = SR_MQ_CONTINUITY;
|
analog->meaning->mq = SR_MQ_CONTINUITY;
|
||||||
analog->unit = SR_UNIT_BOOLEAN;
|
analog->meaning->unit = SR_UNIT_BOOLEAN;
|
||||||
/* Vendor docs: "< 20 Ohm acoustic" */
|
/* Vendor docs: "< 20 Ohm acoustic" */
|
||||||
*floatval = (*floatval < 0.0 || *floatval > 20.0) ? 0.0 : 1.0;
|
*floatval = (*floatval < 0.0 || *floatval > 20.0) ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
if (info->is_diode) {
|
if (info->is_diode) {
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
}
|
}
|
||||||
if (info->is_loop_current) {
|
if (info->is_loop_current) {
|
||||||
/* 4mA = 0%, 20mA = 100% */
|
/* 4mA = 0%, 20mA = 100% */
|
||||||
analog->mq = SR_MQ_CURRENT;
|
analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
analog->unit = SR_UNIT_PERCENTAGE;
|
analog->meaning->unit = SR_UNIT_PERCENTAGE;
|
||||||
}
|
}
|
||||||
if (info->is_power) {
|
if (info->is_power) {
|
||||||
analog->mq = SR_MQ_POWER;
|
analog->meaning->mq = SR_MQ_POWER;
|
||||||
analog->unit = SR_UNIT_WATT;
|
analog->meaning->unit = SR_UNIT_WATT;
|
||||||
}
|
}
|
||||||
if (info->is_power_apparent_power) {
|
if (info->is_power_apparent_power) {
|
||||||
analog->mq = SR_MQ_POWER;
|
analog->meaning->mq = SR_MQ_POWER;
|
||||||
analog->unit = SR_UNIT_WATT;
|
analog->meaning->unit = SR_UNIT_WATT;
|
||||||
/* TODO: Handle apparent power. */
|
/* TODO: Handle apparent power. */
|
||||||
// analog->mq = SR_MQ_APPARENT_POWER;
|
// analog->meaning->mq = SR_MQ_APPARENT_POWER;
|
||||||
// analog->unit = SR_UNIT_VOLT_AMPERE;
|
// analog->meaning->unit = SR_UNIT_VOLT_AMPERE;
|
||||||
}
|
}
|
||||||
if (info->is_power_factor_freq) {
|
if (info->is_power_factor_freq) {
|
||||||
analog->mq = SR_MQ_POWER_FACTOR;
|
analog->meaning->mq = SR_MQ_POWER_FACTOR;
|
||||||
analog->unit = SR_UNIT_UNITLESS;
|
analog->meaning->unit = SR_UNIT_UNITLESS;
|
||||||
/* TODO: Handle frequency. */
|
/* TODO: Handle frequency. */
|
||||||
// analog->mq = SR_MQ_FREQUENCY;
|
// analog->meaning->mq = SR_MQ_FREQUENCY;
|
||||||
// analog->unit = SR_UNIT_HERTZ;
|
// analog->meaning->unit = SR_UNIT_HERTZ;
|
||||||
}
|
}
|
||||||
if (info->is_v_a_rms_value) {
|
if (info->is_v_a_rms_value) {
|
||||||
analog->mqflags |= SR_MQFLAG_RMS;
|
analog->meaning->mqflags |= SR_MQFLAG_RMS;
|
||||||
analog->mq = SR_MQ_VOLTAGE;
|
analog->meaning->mq = SR_MQ_VOLTAGE;
|
||||||
analog->unit = SR_UNIT_VOLT;
|
analog->meaning->unit = SR_UNIT_VOLT;
|
||||||
/* TODO: Handle effective current value */
|
/* TODO: Handle effective current value */
|
||||||
// analog->mq = SR_MQ_CURRENT;
|
// analog->meaning->mq = SR_MQ_CURRENT;
|
||||||
// analog->unit = SR_UNIT_AMPERE;
|
// analog->meaning->unit = SR_UNIT_AMPERE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Measurement related flags */
|
/* Measurement related flags */
|
||||||
if (info->is_ac)
|
if (info->is_ac)
|
||||||
analog->mqflags |= SR_MQFLAG_AC;
|
analog->meaning->mqflags |= SR_MQFLAG_AC;
|
||||||
if (info->is_dc)
|
if (info->is_dc)
|
||||||
analog->mqflags |= SR_MQFLAG_DC;
|
analog->meaning->mqflags |= SR_MQFLAG_DC;
|
||||||
if (info->is_auto)
|
if (info->is_auto)
|
||||||
analog->mqflags |= SR_MQFLAG_AUTORANGE;
|
analog->meaning->mqflags |= SR_MQFLAG_AUTORANGE;
|
||||||
if (info->is_diode)
|
if (info->is_diode)
|
||||||
analog->mqflags |= SR_MQFLAG_DIODE;
|
analog->meaning->mqflags |= SR_MQFLAG_DIODE;
|
||||||
if (info->is_hold)
|
if (info->is_hold)
|
||||||
/*
|
/*
|
||||||
* Note: HOLD only affects the number displayed on the LCD,
|
* Note: HOLD only affects the number displayed on the LCD,
|
||||||
* but not the value sent via the protocol! It also does not
|
* but not the value sent via the protocol! It also does not
|
||||||
* affect the bargraph on the LCD.
|
* affect the bargraph on the LCD.
|
||||||
*/
|
*/
|
||||||
analog->mqflags |= SR_MQFLAG_HOLD;
|
analog->meaning->mqflags |= SR_MQFLAG_HOLD;
|
||||||
if (info->is_max)
|
if (info->is_max)
|
||||||
analog->mqflags |= SR_MQFLAG_MAX;
|
analog->meaning->mqflags |= SR_MQFLAG_MAX;
|
||||||
if (info->is_min)
|
if (info->is_min)
|
||||||
analog->mqflags |= SR_MQFLAG_MIN;
|
analog->meaning->mqflags |= SR_MQFLAG_MIN;
|
||||||
if (info->is_rel)
|
if (info->is_rel)
|
||||||
analog->mqflags |= SR_MQFLAG_RELATIVE;
|
analog->meaning->mqflags |= SR_MQFLAG_RELATIVE;
|
||||||
|
|
||||||
/* Other flags */
|
/* Other flags */
|
||||||
if (info->is_batt)
|
if (info->is_batt)
|
||||||
|
@ -412,7 +412,7 @@ SR_PRIV gboolean sr_vc870_packet_valid(const uint8_t *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
SR_PRIV int sr_vc870_parse(const uint8_t *buf, float *floatval,
|
SR_PRIV int sr_vc870_parse(const uint8_t *buf, float *floatval,
|
||||||
struct sr_datafeed_analog_old *analog, void *info)
|
struct sr_datafeed_analog *analog, void *info)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct vc870_info *info_local;
|
struct vc870_info *info_local;
|
||||||
|
|
Loading…
Reference in New Issue