]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
Doxyfile: Update to what doxygen 1.8.1.2 generates.
[libsigrok.git] / libsigrok.h
index 20e5c444d681a1d4db379216e810049d36cf0348..8a51f728dd615612d3ada75eac9d1a80d1c2f7fb 100644 (file)
@@ -146,6 +146,12 @@ enum {
        SR_MQ_FREQUENCY,
        SR_MQ_DUTY_CYCLE,
        SR_MQ_CONTINUITY,
+       SR_MQ_PULSE_WIDTH,
+       SR_MQ_CONDUCTANCE,
+       /** For a measurement of electrical power, usually in W, or dBm */
+       SR_MQ_POWER,
+       /** Usually for measuring a transistor's gain, or h_FE*/
+       SR_MQ_GAIN,
 };
 
 /* sr_datafeed_analog.unit values */
@@ -160,8 +166,44 @@ enum {
        SR_UNIT_HERTZ,
        SR_UNIT_PERCENTAGE,
        SR_UNIT_BOOLEAN,
+       SR_UNIT_SECOND,
+       /** Unit of conductance, the inverse of resistance.  */
+       SR_UNIT_SIEMENS,
+       /** An absolute measurement of power, in decibels, referenced to
+        * 1 milliwatt (dBu). */
+       SR_UNIT_DECIBEL_MW,
+       /** Voltage in decibel, referenced to 1 volt (dBV). */
+       SR_UNIT_DECIBEL_VOLT,
+       /** Measurements that intrinsically do not have units attached, such
+        * as ratios, gains, etc. Specifically, a transistor's gain (hFE) is
+        * a unitless quantity. */
+       SR_UNIT_UNITLESS,
 };
 
+/** 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_context;
+
 struct sr_datafeed_packet {
        uint16_t type;
        void *payload;
@@ -189,8 +231,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;
 };
 
@@ -226,6 +272,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 {
@@ -274,13 +323,22 @@ struct sr_hwopt {
 enum {
        SR_HWOPT_DUMMY = 0, /* Used to terminate lists. Must be 0! */
 
-       /** Some drivers cannot detect the exact model they're talking to. */
+       /** Some drivers cannot detect the exact model they're talking to
+        * (may be phased out). */
        SR_HWOPT_MODEL,
 
-       /** Specification on how to connect to a device */
+       /** Specification on how to connect to a device. In combination
+        * with SR_HWOPT_SERIALCOMM, this is a serial port in the form
+        * which makes sense to the operating system (/dev/ttyS0).
+        * Otherwise this specifies a USB device, either in the form of
+        * <bus>.<address> (decimal, e.g. 1.65) or <vendorid>.<productid>
+        * (hexadecimal, e.g. 1d6b.0001). */
        SR_HWOPT_CONN,
 
-       /** Serial communication spec: <data bits><parity><stop bit> e.g. 8n1 */
+       /** Serial communication specification, in the form:
+        *   <speed>/<data bits><parity><stop bit> e.g.9600/ 8n1
+        * This is always an optional parameter, since a driver typically
+        * knows the speed at which the device wants to communicate */
        SR_HWOPT_SERIALCOMM,
 };