From 9956f2851fb97a4b4090cedcde6f4b83cb08e971 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Wed, 20 Jun 2012 23:55:23 +0200 Subject: [PATCH] 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. --- hardware/hantek-dso/api.c | 3 ++- sigrok.h.in | 23 +++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/hardware/hantek-dso/api.c b/hardware/hantek-dso/api.c index e6b87f85..c9310336 100644 --- a/hardware/hantek-dso/api.c +++ b/hardware/hantek-dso/api.c @@ -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++) { diff --git a/sigrok.h.in b/sigrok.h.in index 3e6f24e8..1d1f8caf 100644 --- a/sigrok.h.in +++ b/sigrok.h.in @@ -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; };