X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok.h;h=f371c944fd6ff85ac6b699ec1cba06f40f272836;hb=087a9161fffa0cabe8aa37cf3358d88bcd72fb21;hp=23d3793a85f8dd20e67227be8dca308b394de33b;hpb=fc19c288b5ee32618a10f73fda7475b9a5a8ac6d;p=libsigrok.git diff --git a/libsigrok.h b/libsigrok.h index 23d3793a..f371c944 100644 --- a/libsigrok.h +++ b/libsigrok.h @@ -127,7 +127,7 @@ typedef int (*sr_receive_data_callback_t)(int fd, int revents, void *cb_data); /** Data types used by hardware drivers for dev_config_set(). */ enum { - SR_T_UINT64, + SR_T_UINT64 = 10000, SR_T_CHAR, SR_T_BOOL, SR_T_FLOAT, @@ -146,7 +146,7 @@ struct sr_rational { /** Value for sr_datafeed_packet.type. */ enum { - SR_DF_HEADER, + SR_DF_HEADER = 10000, SR_DF_END, SR_DF_TRIGGER, SR_DF_LOGIC, @@ -159,7 +159,7 @@ enum { /** Values for sr_datafeed_analog.mq. */ enum { - SR_MQ_VOLTAGE, + SR_MQ_VOLTAGE = 10000, SR_MQ_CURRENT, SR_MQ_RESISTANCE, SR_MQ_CAPACITANCE, @@ -176,11 +176,13 @@ enum { /** Logarithmic representation of sound pressure relative to a * reference value. */ SR_MQ_SOUND_PRESSURE_LEVEL, + SR_MQ_CARBON_MONOXIDE, + SR_MQ_RELATIVE_HUMIDITY, }; /** Values for sr_datafeed_analog.unit. */ enum { - SR_UNIT_VOLT, + SR_UNIT_VOLT = 10000, SR_UNIT_AMPERE, SR_UNIT_OHM, SR_UNIT_FARAD, @@ -208,6 +210,12 @@ enum { SR_UNIT_UNITLESS, /** Sound pressure level relative so 20 micropascals. */ SR_UNIT_DECIBEL_SPL, + /** + * Normalized (0 to 1) concentration of a substance or compound with 0 + * representing a concentration of 0%, and 1 being 100%. This is + * represented as the fraction of number of particles of the substance. + */ + SR_UNIT_CONCENTRATION, }; /** Values for sr_datafeed_analog.flags. */ @@ -231,13 +239,13 @@ enum { /** Device is in relative mode. */ SR_MQFLAG_RELATIVE = 0x100, /** Sound pressure level is A-weighted in the frequency domain, - * according to IRC 61672:2003. */ + * according to IEC 61672:2003. */ SR_MQFLAG_SPL_FREQ_WEIGHT_A = 0x200, /** Sound pressure level is C-weighted in the frequency domain, - * according to IRC 61672:2003. */ + * according to IEC 61672:2003. */ SR_MQFLAG_SPL_FREQ_WEIGHT_C = 0x400, /** Sound pressure level is Z-weighted (i.e. not at all) in the - * frequency domain, according to IRC 61672:2003. */ + * frequency domain, according to IEC 61672:2003. */ SR_MQFLAG_SPL_FREQ_WEIGHT_Z = 0x800, /** Sound pressure level is not weighted in the frequency domain, * albeit without standards-defined low and high frequency limits. */ @@ -260,7 +268,7 @@ struct sr_context; struct sr_datafeed_packet { uint16_t type; - void *payload; + const void *payload; }; struct sr_datafeed_header { @@ -328,7 +336,7 @@ struct sr_output_format { 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); + const struct sr_datafeed_packet *packet); int (*cleanup) (struct sr_output *o); }; @@ -357,7 +365,7 @@ struct sr_dev { }; enum { - SR_PROBE_LOGIC, + SR_PROBE_LOGIC = 10000, SR_PROBE_ANALOG, }; @@ -376,14 +384,11 @@ struct sr_hwopt { /** Hardware driver options. */ enum { - /** Used to terminate lists. */ - SR_HWOPT_DUMMY = 0, /* Must be 0! */ - /** * Some drivers cannot detect the exact model they're talking to * (may be phased out). */ - SR_HWOPT_MODEL, + SR_HWOPT_MODEL = 10000, /** * Specification on how to connect to a device. @@ -412,13 +417,10 @@ enum { /** Hardware device capabilities. */ enum { - /** Used to terminate lists. */ - SR_HWCAP_DUMMY = 0, /* Must be 0! */ - /*--- Device classes ------------------------------------------------*/ /** The device can act as logic analyzer. */ - SR_HWCAP_LOGIC_ANALYZER, + SR_HWCAP_LOGIC_ANALYZER = 10000, /** The device can act as an oscilloscope. */ SR_HWCAP_OSCILLOSCOPE, @@ -432,10 +434,16 @@ enum { /** The device can act as a sound level meter. */ SR_HWCAP_SOUNDLEVELMETER, + /** The device can measure temperature. */ + SR_HWCAP_THERMOMETER, + + /** The device can measure humidity. */ + SR_HWCAP_HYGROMETER, + /*--- Device configuration ------------------------------------------*/ /** The device supports setting/changing its samplerate. */ - SR_HWCAP_SAMPLERATE, + SR_HWCAP_SAMPLERATE = 20000, /** The device supports setting a pre/post-trigger capture ratio. */ SR_HWCAP_CAPTURE_RATIO, @@ -471,11 +479,10 @@ enum { /** Coupling. */ SR_HWCAP_COUPLING, - /*--- Special stuff -------------------------------------------------*/ /** Session filename. */ - SR_HWCAP_SESSIONFILE, + SR_HWCAP_SESSIONFILE = 30000, /* TODO: Better description. */ /** The device supports specifying a capturefile to inject. */ @@ -489,14 +496,13 @@ enum { /** The device supports setting the number of probes. */ SR_HWCAP_CAPTURE_NUM_PROBES, - /*--- Acquisition modes ---------------------------------------------*/ /** * The device supports setting a sample time limit (how long * the sample acquisition should run, in ms). */ - SR_HWCAP_LIMIT_MSEC, + SR_HWCAP_LIMIT_MSEC = 40000, /** * The device supports setting a sample number limit (how many @@ -516,7 +522,6 @@ enum { * samples continuously, until explicitly stopped by a certain command. */ SR_HWCAP_CONTINUOUS, - }; struct sr_hwcap_option { @@ -541,7 +546,7 @@ struct sr_dev_inst { /** Types of device instances (sr_dev_inst). */ enum { /** Device instance type for USB devices. */ - SR_INST_USB, + SR_INST_USB = 10000, /** Device instance type for serial port devices. */ SR_INST_SERIAL, }; @@ -549,13 +554,15 @@ enum { /** Device instance status. */ enum { /** The device instance was not found. */ - SR_ST_NOT_FOUND, + SR_ST_NOT_FOUND = 10000, /** The device instance was found, but is still booting. */ SR_ST_INITIALIZING, /** The device instance is live, but not in use. */ SR_ST_INACTIVE, /** The device instance is actively in use in a session. */ SR_ST_ACTIVE, + /** The device is winding down its session. */ + SR_ST_STOPPING, }; /* @@ -566,7 +573,7 @@ enum { /** Device info IDs. */ enum { /** A list of options supported by the driver. */ - SR_DI_HWOPTS, + SR_DI_HWOPTS = 10000, /** A list of capabilities supported by the device. */ SR_DI_HWCAPS, /** The number of probes connected to this device. */ @@ -612,7 +619,7 @@ struct sr_dev_driver { char *name; char *longname; int api_version; - int (*init) (void); + int (*init) (struct sr_context *sr_ctx); int (*cleanup) (void); GSList *(*scan) (GSList *options); GSList *(*dev_list) (void); @@ -627,7 +634,7 @@ struct sr_dev_driver { const void *value); int (*dev_acquisition_start) (const struct sr_dev_inst *sdi, void *cb_data); - int (*dev_acquisition_stop) (const struct sr_dev_inst *sdi, + int (*dev_acquisition_stop) (struct sr_dev_inst *sdi, void *cb_data); /* Dynamic */