X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=include%2Flibsigrok%2Flibsigrok.h;h=c16278c407efb91a0eda0c90b23b90d1a503e3bb;hb=fe8c5aef1ffdadd45b31eecc84201ed3ed5402b7;hp=0cbaa0049aadf3126d24d5943d3bccd7751898f4;hpb=6928c4a9289368573f44b683a464bf6b8dcc71d7;p=libsigrok.git diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index 0cbaa004..c16278c4 100644 --- a/include/libsigrok/libsigrok.h +++ b/include/libsigrok/libsigrok.h @@ -84,11 +84,11 @@ enum sr_error_code { /* Handy little macros */ #define SR_HZ(n) (n) -#define SR_KHZ(n) ((n) * (uint64_t)(1000ULL)) -#define SR_MHZ(n) ((n) * (uint64_t)(1000000ULL)) -#define SR_GHZ(n) ((n) * (uint64_t)(1000000000ULL)) +#define SR_KHZ(n) ((n) * UINT64_C(1000)) +#define SR_MHZ(n) ((n) * UINT64_C(1000000)) +#define SR_GHZ(n) ((n) * UINT64_C(1000000000)) -#define SR_HZ_TO_NS(n) ((uint64_t)(1000000000ULL) / (n)) +#define SR_HZ_TO_NS(n) (UINT64_C(1000000000) / (n)) /** libsigrok loglevels. */ enum sr_loglevel { @@ -233,6 +233,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 +294,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 +328,12 @@ enum sr_unit { SR_UNIT_TOLA, /** Pieces (number of items). */ SR_UNIT_PIECE, + /** A relative unit of (power) measurement [dB]. */ + 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) @@ -530,7 +540,7 @@ struct sr_analog_meaning { struct sr_analog_spec { /** - * Number of significant digits after the decimal point if positive, + * Number of significant digits after the decimal point if positive, * or number of non-significant digits before the decimal point if * negative (refers to vendor specifications/datasheet or actual * device display). @@ -650,11 +660,11 @@ struct sr_key_info { /** Configuration capabilities. */ enum sr_configcap { /** Value can be read. */ - SR_CONF_GET = (1 << 31), + SR_CONF_GET = (1UL << 31), /** Value can be written. */ - SR_CONF_SET = (1 << 30), + SR_CONF_SET = (1UL << 30), /** Possible values can be enumerated. */ - SR_CONF_LIST = (1 << 29), + SR_CONF_LIST = (1UL << 29), }; /** Configuration keys */ @@ -703,6 +713,9 @@ enum sr_configkey { /** The device can act as a function generator. */ SR_CONF_SIGNAL_GENERATOR, + /** The device can measure power. */ + SR_CONF_POWERMETER, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Driver scan options -------------------------------------------*/ @@ -748,6 +761,16 @@ 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, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Device (or channel group) configuration -----------------------*/ @@ -797,7 +820,7 @@ enum sr_configkey { /** Coupling. */ SR_CONF_COUPLING, - /** Trigger matches. */ + /** Trigger matches. */ SR_CONF_TRIGGER_MATCH, /** The device supports setting its sample interval, in ms. */ @@ -806,16 +829,16 @@ enum sr_configkey { /** Number of horizontal divisions, as related to SR_CONF_TIMEBASE. */ SR_CONF_NUM_HDIV, - /** Number of vertical divisions, as related to SR_CONF_VDIV. */ + /** Number of vertical divisions, as related to SR_CONF_VDIV. */ SR_CONF_NUM_VDIV, - /** Sound pressure level frequency weighting. */ + /** Sound pressure level frequency weighting. */ SR_CONF_SPL_WEIGHT_FREQ, - /** Sound pressure level time weighting. */ + /** Sound pressure level time weighting. */ SR_CONF_SPL_WEIGHT_TIME, - /** Sound pressure level measurement range. */ + /** Sound pressure level measurement range. */ SR_CONF_SPL_MEASUREMENT_RANGE, /** Max hold mode. */ @@ -953,6 +976,8 @@ enum sr_configkey { * Channel regulation * get: "CV", "CC" or "UR", denoting constant voltage, constant current * or unregulated. + * "CC-" denotes a power supply in current sink mode (e.g. HP 66xxB). + * "" is used when there is no regulation, e.g. the output is disabled. */ SR_CONF_REGULATION, @@ -983,6 +1008,39 @@ enum sr_configkey { /** Trigger level. */ SR_CONF_TRIGGER_LEVEL, + /** Under-voltage condition threshold. */ + SR_CONF_UNDER_VOLTAGE_CONDITION_THRESHOLD, + + /** + * Which external clock source to use if the device supports + * multiple external clock channels. + */ + SR_CONF_EXTERNAL_CLOCK_SOURCE, + + /** 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, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Special stuff -------------------------------------------------*/