X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=include%2Flibsigrok%2Flibsigrok.h;h=42614fd0c79bcf7ff30b7554e022b87b4cbe5370;hb=0996f644344b55ee8a2cd4519ee0876d02ddb8f5;hp=a60e53bd17f995f7059a291919645feaaa7f9881;hpb=e131be0ac34c36e374b78db9d01b8ef0e91eaed7;p=libsigrok.git diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index a60e53bd..42614fd0 100644 --- a/include/libsigrok/libsigrok.h +++ b/include/libsigrok/libsigrok.h @@ -80,6 +80,13 @@ enum sr_error_code { /* Update sr_strerror()/sr_strerror_name() (error.c) upon changes! */ }; +/** Ternary return type for DMM/LCR/etc packet parser validity checks. */ +enum sr_valid_code { + SR_PACKET_INVALID = -1, /**< Certainly invalid. */ + SR_PACKET_VALID = 0, /**< Certainly valid. */ + SR_PACKET_NEED_RX = +1, /**< Need more RX data. */ +}; + #define SR_MAX_CHANNELNAME_LEN 32 /* Handy little macros */ @@ -233,6 +240,10 @@ enum sr_mq { SR_MQ_MASS, /** Harmonic ratio */ SR_MQ_HARMONIC_RATIO, + /** Energy. */ + SR_MQ_ENERGY, + /** Electric charge. */ + SR_MQ_ELECTRIC_CHARGE, /* Update sr_key_info_mq[] (hwdriver.c) upon changes! */ }; @@ -290,7 +301,7 @@ enum sr_unit { SR_UNIT_VOLT_AMPERE, /** Real power [W]. */ SR_UNIT_WATT, - /** Consumption [Wh]. */ + /** Energy (consumption) in watt hour [Wh]. */ SR_UNIT_WATT_HOUR, /** Wind speed in meters per second. */ SR_UNIT_METER_SECOND, @@ -324,6 +335,12 @@ enum sr_unit { SR_UNIT_TOLA, /** Pieces (number of items). */ SR_UNIT_PIECE, + /** Energy in joule. */ + SR_UNIT_JOULE, + /** Electric charge in coulomb. */ + SR_UNIT_COULOMB, + /** Electric charge in ampere hour [Ah]. */ + SR_UNIT_AMPERE_HOUR, /* * Update unit_strings[] (analog.c) and fancyprint() (output/analog.c) @@ -706,6 +723,12 @@ enum sr_configkey { /** The device can measure power. */ SR_CONF_POWERMETER, + /** + * The device can switch between multiple sources, e.g. a relay actuator + * or multiplexer. + */ + SR_CONF_MULTIPLEXER, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Driver scan options -------------------------------------------*/ @@ -751,6 +774,36 @@ enum sr_configkey { */ SR_CONF_MODBUSADDR, + /** + * User specified forced driver attachment to unknown devices. + * + * By design the interpretation of the string depends on the + * specific driver. It typically would be either a replacement + * '*IDN?' response value, or a sub-driver name. But could also + * be anything else and totally arbitrary. + */ + SR_CONF_FORCE_DETECT, + + /** + * Override builtin probe names from user specs. + * + * Users may want to override the names which are assigned to + * probes during scan (these usually match the vendor's labels + * on the device). This avoids the interactive tedium of + * changing channel names after device creation and before + * protocol decoder attachment. Think of IEEE488 recorders or + * parallel computer bus loggers. The scan option eliminates + * the issue of looking up previously assigned names before + * renaming a channel (see sigrok-cli -C), which depends on + * the device as well as the application, and is undesirable. + * The scan option is limited to those drivers which implement + * support for it, but works identically across those drivers. + * + * The value is a string, either a comma separated list of + * probe names, or an alias for a typical set of names. + */ + SR_CONF_PROBE_NAMES, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Device (or channel group) configuration -----------------------*/ @@ -830,12 +883,6 @@ enum sr_configkey { /** Logic low-high threshold range. */ SR_CONF_VOLTAGE_THRESHOLD, - /** Logic threshold: predefined levels (TTL, ECL, CMOS, etc). */ - SR_CONF_LOGIC_THRESHOLD, - - /** Logic threshold: custom numerical value. */ - SR_CONF_LOGIC_THRESHOLD_CUSTOM, - /** The device supports using an external clock. */ SR_CONF_EXTERNAL_CLOCK, @@ -1006,6 +1053,56 @@ enum sr_configkey { /** Offset of a source without strictly-defined MQ. */ SR_CONF_OFFSET, + /** The device supports setting a pattern for the logic trigger. */ + SR_CONF_TRIGGER_PATTERN, + + /** High resolution mode. */ + SR_CONF_HIGH_RESOLUTION, + + /** Peak detection. */ + SR_CONF_PEAK_DETECTION, + + /** Logic threshold: predefined levels (TTL, ECL, CMOS, etc). */ + SR_CONF_LOGIC_THRESHOLD, + + /** Logic threshold: custom numerical value. */ + SR_CONF_LOGIC_THRESHOLD_CUSTOM, + + /** The measurement range of a DMM or the output range of a power supply. */ + SR_CONF_RANGE, + + /** The number of digits (e.g. for a DMM). */ + SR_CONF_DIGITS, + + /** Phase of a source signal. */ + SR_CONF_PHASE, + + /** Duty cycle of a source signal. */ + SR_CONF_DUTY_CYCLE, + + /** + * Current power. + * @arg type: double + * @arg get: get measured power + */ + SR_CONF_POWER, + + /** + * Power target. + * @arg type: double + * @arg get: get power target + * @arg set: change power target + */ + SR_CONF_POWER_TARGET, + + /** + * Resistance target. + * @arg type: double + * @arg get: get resistance target + * @arg set: change resistance target + */ + SR_CONF_RESISTANCE_TARGET, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Special stuff -------------------------------------------------*/