]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
fluke-dmm: build fixes
[libsigrok.git] / libsigrok.h
index 728a63f5051b04903009a30b33d8a1df484da423..2a88a7d03bc891602b404221ba661f9f918f4dd3 100644 (file)
@@ -145,6 +145,7 @@ enum {
        SR_MQ_TEMPERATURE,
        SR_MQ_FREQUENCY,
        SR_MQ_DUTY_CYCLE,
+       SR_MQ_CONTINUITY,
 };
 
 /* sr_datafeed_analog.unit values */
@@ -153,10 +154,34 @@ enum {
        SR_UNIT_AMPERE,
        SR_UNIT_OHM,
        SR_UNIT_FARAD,
-       SR_UNIT_CELSIUS,
        SR_UNIT_KELVIN,
+       SR_UNIT_CELSIUS,
+       SR_UNIT_FAHRENHEIT,
        SR_UNIT_HERTZ,
        SR_UNIT_PERCENTAGE,
+       SR_UNIT_BOOLEAN,
+};
+
+/** sr_datafeed_analog.flags values */
+enum {
+       /** Voltage measurement is alternating current. */
+       SR_MQFLAG_AC = 0x01,
+       /** Voltage measurement is direct current. */
+       SR_MQFLAG_DC = 0x02,
+       /** This is a true RMS measurement. */
+       SR_MQFLAG_RMS = 0x04,
+       /** Value is voltage drop across a diode, or NAN. */
+       SR_MQFLAG_DIODE = 0x08,
+       /** Device is in "hold" mode, i.e. repeating the last measurement. */
+       SR_MQFLAG_HOLD = 0x10,
+       /** Device is in "max" mode, only updating when a new max value is found. */
+       SR_MQFLAG_MAX = 0x20,
+       /** Device is in "min" mode, only updating when a new min value is found. */
+       SR_MQFLAG_MIN = 0x40,
+       /** Device is in autoranging mode. */
+       SR_MQFLAG_AUTORANGE = 0x80,
+       /** Device is in relative mode. */
+       SR_MQFLAG_RELATIVE = 0x100,
 };
 
 struct sr_datafeed_packet {
@@ -186,8 +211,12 @@ struct sr_datafeed_meta_analog {
 
 struct sr_datafeed_analog {
        int num_samples;
-       int mq; /* Measured quantity (e.g. voltage, current, temperature) */
-       int unit; /* Unit in which the MQ is measured. */
+       /** Measured quantity (e.g. voltage, current, temperature) */
+       int mq;
+       /** Unit in which the MQ is measured. */
+       int unit;
+       /** Bitmap with extra information about the MQ. */
+       uint64_t mqflags;
        float *data;
 };
 
@@ -223,6 +252,9 @@ struct sr_output_format {
                     uint64_t *length_out);
        int (*event) (struct sr_output *o, int event_type, uint8_t **data_out,
                      uint64_t *length_out);
+       GString *(*recv) (struct sr_output *o, const struct sr_dev_inst *sdi,
+                       struct sr_datafeed_packet *packet);
+       int (*cleanup) (struct sr_output *o);
 };
 
 struct sr_datastore {
@@ -501,6 +533,11 @@ struct sr_dev_driver {
        void *priv;
 };
 
+/* Private driver context. */
+struct drv_context {
+       GSList *instances;
+};
+
 struct sr_session {
        /* List of struct sr_dev* */
        GSList *devs;