sr: analog: Add MQ and UNIT enums.

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.
This commit is contained in:
Uwe Hermann 2012-06-20 23:55:23 +02:00
parent c13536fa9c
commit 9956f2851f
2 changed files with 23 additions and 3 deletions

View File

@ -573,7 +573,8 @@ static void receive_transfer(struct libusb_transfer *transfer)
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++) {

View File

@ -167,9 +167,27 @@ enum {
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 {
@ -199,7 +217,8 @@ struct sr_datafeed_meta_analog {
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;
};