X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=include%2Flibsigrok%2Flibsigrok.h;h=140a8597f61e527424c5f165548597f07d4d4a40;hb=28af4c714e2e3fd032e800f2c60dcda8953f5a3b;hp=42cdcaa5da49ccaad10671b0750044bbe2867e3d;hpb=e77e32a3bebcaadabb12eb29ceaf2d30371d16f0;p=libsigrok.git diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index 42cdcaa5..140a8597 100644 --- a/include/libsigrok/libsigrok.h +++ b/include/libsigrok/libsigrok.h @@ -149,6 +149,7 @@ enum sr_datatype { SR_T_UINT64_RANGE, SR_T_DOUBLE_RANGE, SR_T_INT32, + SR_T_MQLIST, }; /** Value for sr_datafeed_packet.type. */ @@ -230,6 +231,8 @@ enum sr_mq { SR_MQ_POWER_FACTOR, /** Apparent power */ SR_MQ_APPARENT_POWER, + /** Mass */ + SR_MQ_MASS, }; /** Unit of measured quantity, sr_datafeed_analog.unit. */ @@ -297,6 +300,28 @@ enum sr_unit { SR_UNIT_DEGREE, /** Henry (inductance). */ SR_UNIT_HENRY, + /** Mass in gram [g]. */ + SR_UNIT_GRAM, + /** Mass in carat [ct]. */ + SR_UNIT_CARAT, + /** Mass in ounce [oz]. */ + SR_UNIT_OUNCE, + /** Mass in troy ounce [oz t]. */ + SR_UNIT_TROY_OUNCE, + /** Mass in pound [lb]. */ + SR_UNIT_POUND, + /** Mass in pennyweight [dwt]. */ + SR_UNIT_PENNYWEIGHT, + /** Mass in grain [gr]. */ + SR_UNIT_GRAIN, + /** Mass in tael (variants: Hong Kong, Singapore/Malaysia, Taiwan) */ + SR_UNIT_TAEL, + /** Mass in momme. */ + SR_UNIT_MOMME, + /** Mass in tola. */ + SR_UNIT_TOLA, + /** Pieces (number of items). */ + SR_UNIT_PIECE, }; /** Values for sr_datafeed_analog.flags. */ @@ -349,6 +374,8 @@ enum sr_mqflag { SR_MQFLAG_AVG = 0x40000, /** Reference value shown. */ SR_MQFLAG_REFERENCE = 0x80000, + /** Unstable value (hasn't settled yet). */ + SR_MQFLAG_UNSTABLE = 0x100000, }; enum sr_trigger_matches { @@ -518,6 +545,12 @@ struct sr_option { GSList *values; }; +/** Output module flags. */ +enum sr_output_flag { + /** If set, this output module writes the output itself. */ + SR_OUTPUT_INTERNAL_IO_HANDLING = 0x01, +}; + struct sr_input; struct sr_input_module; struct sr_output; @@ -568,15 +601,21 @@ struct sr_config { GVariant *data; }; -/** Information about a config key. */ -struct sr_config_info { - /** Config key like SR_CONF_CONN, etc. */ +enum sr_keytype { + SR_KEY_CONFIG, + SR_KEY_MQ, + SR_KEY_MQFLAGS, +}; + +/** Information about a key. */ +struct sr_key_info { + /** Config key like SR_CONF_CONN, MQ value like SR_MQ_VOLTAGE, etc. */ uint32_t key; - /** Data type like SR_T_STRING, etc. */ + /** Data type like SR_T_STRING, etc if applicable. */ int datatype; - /** Id string, e.g. "serialcomm". */ + /** Short, lowercase ID string, e.g. "serialcomm", "voltage". */ char *id; - /** Name, e.g. "Serial communication". */ + /** Full capitalized name, e.g. "Serial communication". */ char *name; /** Verbose description (unused currently). */ char *description; @@ -624,9 +663,12 @@ enum sr_configkey { /** The device can act as an LCR meter. */ SR_CONF_LCRMETER, - /** The device can act as an LCR meter. */ + /** The device can act as an electronic load. */ SR_CONF_ELECTRONIC_LOAD, + /** The device can act as a scale. */ + SR_CONF_SCALE, + /*--- Driver scan options -------------------------------------------*/ /** @@ -989,7 +1031,7 @@ enum sr_dev_inst_type { SR_INST_SCPI, /** Device-instance type for user-created "devices". */ SR_INST_USER, - /** Device instance type for modbus devices. */ + /** Device instance type for Modbus devices. */ SR_INST_MODBUS, }; @@ -1023,13 +1065,13 @@ struct sr_dev_driver { int (*cleanup) (const struct sr_dev_driver *driver); /** Scan for devices. Driver should do all initialisation required. * Can be called several times, e.g. with different port options. - * \retval NULL Error or no devices found. - * \retval other GSList of a struct sr_dev_inst for each device. + * @retval NULL Error or no devices found. + * @retval other GSList of a struct sr_dev_inst for each device. * Must be freed by caller! */ GSList *(*scan) (struct sr_dev_driver *driver, GSList *options); /** Get list of device instances the driver knows about. - * \returns NULL or GSList of a struct sr_dev_inst for each device. + * @returns NULL or GSList of a struct sr_dev_inst for each device. * Must not be freed by caller! */ GSList *(*dev_list) (const struct sr_dev_driver *driver); @@ -1073,8 +1115,8 @@ struct sr_dev_driver { void *cb_data); /* Dynamic */ - /** Device driver private data. Initialized by init(). */ - void *priv; + /** Device driver context, considered private. Initialized by init(). */ + void *context; }; /** @@ -1093,8 +1135,8 @@ struct sr_serial_port { char *description; }; -#include "proto.h" -#include "version.h" +#include +#include #ifdef __cplusplus }