MQ is the measured quantity, e.g. voltage, current, temperature.
UNIT is the unit in which these quantities are measured, e.g. volt,
ampere, celsius, kelvin, etc. etc.
The same MQ can be specified in different UNITs by the driver, depending
on what the hardware reports. Conversion is left to the frontends.
packet.payload = &analog;
/* TODO: support for 5xxx series 9-bit samples */
analog.num_samples = transfer->actual_length / 2;
- analog.unit = SR_UNIT_VOLTAGE;
+ analog.mq = SR_MQ_VOLTAGE;
+ analog.unit = SR_UNIT_VOLT;
analog.data = g_try_malloc(analog.num_samples * sizeof(float) * num_probes);
data_offset = 0;
for (i = 0; i < analog.num_samples; i++) {
SR_DF_FRAME_END,
};
+/* sr_datafeed_analog.mq values */
+enum {
+ SR_MQ_VOLTAGE,
+ SR_MQ_CURRENT,
+ SR_MQ_RESISTANCE,
+ SR_MQ_CAPACITANCE,
+ SR_MQ_TEMPERATURE,
+ SR_MQ_FREQUENCY,
+ SR_MQ_DUTY_CYCLE,
+};
+
/* sr_datafeed_analog.unit values */
enum {
- SR_UNIT_VOLTAGE,
+ SR_UNIT_VOLT,
+ SR_UNIT_AMPERE,
+ SR_UNIT_OHM,
+ SR_UNIT_FARAD,
+ SR_UNIT_CELSIUS,
+ SR_UNIT_KELVIN,
+ SR_UNIT_HERTZ,
+ SR_UNIT_PERCENTAGE,
};
struct sr_datafeed_packet {
struct sr_datafeed_analog {
int num_samples;
- int unit;
+ int mq; /* Measured quantity (e.g. voltage, current, temperature) */
+ int unit; /* Unit in which the MQ is measured. */
float *data;
};