X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=include%2Flibsigrok%2Flibsigrok.h;h=a8b118c3809aaf25854981ca830bb02848b57bca;hb=755793e991c4d429f99254f23008bfddb89d8e00;hp=a384f611d53cf687a1c52cac90b44d13df1dcf44;hpb=7d7fd93c947dcaa94f3d90bfb6b0bf3ce01d774d;p=libsigrok.git diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index a384f611..a8b118c3 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 { @@ -162,8 +162,6 @@ enum sr_packettype { SR_DF_TRIGGER, /** Payload is struct sr_datafeed_logic. */ SR_DF_LOGIC, - /** DEPRECATED! Use SR_DF_ANALOG instead. */ - SR_DF_ANALOG_OLD, /** Beginning of frame. No payload. */ SR_DF_FRAME_BEGIN, /** End of frame. No payload. */ @@ -233,6 +231,8 @@ enum sr_mq { SR_MQ_APPARENT_POWER, /** Mass */ SR_MQ_MASS, + /** Harmonic ratio */ + SR_MQ_HARMONIC_RATIO, /* Update sr_key_info_mq[] (hwdriver.c) upon changes! */ }; @@ -265,7 +265,7 @@ enum sr_unit { SR_UNIT_SIEMENS, /** * An absolute measurement of power, in decibels, referenced to - * 1 milliwatt (dBu). + * 1 milliwatt (dBm). */ SR_UNIT_DECIBEL_MW, /** Voltage in decibel, referenced to 1 volt (dBV). */ @@ -383,6 +383,8 @@ enum sr_mqflag { SR_MQFLAG_REFERENCE = 0x80000, /** Unstable value (hasn't settled yet). */ SR_MQFLAG_UNSTABLE = 0x100000, + /** Measurement is four wire (e.g. Kelvin connection). */ + SR_MQFLAG_FOUR_WIRE = 0x200000, /* * Update mq_strings[] (analog.c) and fancyprint() (output/analog.c) @@ -494,24 +496,6 @@ struct sr_datafeed_logic { void *data; }; -/** Analog datafeed payload for type SR_DF_ANALOG_OLD. */ -struct sr_datafeed_analog_old { - /** The channels for which data is included in this packet. */ - GSList *channels; - /** Number of samples in data */ - int num_samples; - /** Measured quantity (voltage, current, temperature, and so on). - * Use SR_MQ_VOLTAGE, ... */ - int mq; - /** Unit in which the MQ is measured. Use SR_UNIT_VOLT, ... */ - int unit; - /** Bitmap with extra information about the MQ. Use SR_MQFLAG_AC, ... */ - uint64_t mqflags; - /** The analog value(s). The data is interleaved according to - * the channels list. */ - float *data; -}; - /** Analog datafeed payload for type SR_DF_ANALOG. */ struct sr_datafeed_analog { void *data; @@ -526,7 +510,12 @@ struct sr_analog_encoding { gboolean is_signed; gboolean is_float; gboolean is_bigendian; - uint8_t digits; + /** + * Number of significant digits after the decimal point if positive, + * or number of non-significant digits before the decimal point if + * negative (refers to the value we actually read on the wire). + */ + int8_t digits; gboolean is_digits_decimal; struct sr_rational scale; struct sr_rational offset; @@ -540,7 +529,13 @@ struct sr_analog_meaning { }; struct sr_analog_spec { - uint8_t spec_digits; + /** + * 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). + */ + int8_t spec_digits; }; /** Generic option struct used by various subsystems. */ @@ -655,11 +650,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 */ @@ -705,6 +700,12 @@ enum sr_configkey { /** The device can act as a scale. */ SR_CONF_SCALE, + /** 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 -------------------------------------------*/ @@ -799,7 +800,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. */ @@ -808,16 +809,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. */ @@ -976,6 +977,24 @@ enum sr_configkey { /** Over-temperature protection (OTP) active. */ SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE, + /** Under-voltage condition. */ + SR_CONF_UNDER_VOLTAGE_CONDITION, + + /** Under-voltage condition active. */ + SR_CONF_UNDER_VOLTAGE_CONDITION_ACTIVE, + + /** 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, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Special stuff -------------------------------------------------*/ @@ -1009,6 +1028,9 @@ enum sr_configkey { /** The device supports setting a probe factor. */ SR_CONF_PROBE_FACTOR, + /** Number of powerline cycles for ADC integration time. */ + SR_CONF_ADC_POWERLINE_CYCLES, + /* Update sr_key_info_config[] (hwdriver.c) upon changes! */ /*--- Acquisition modes, sample limiting ----------------------------*/ @@ -1145,11 +1167,9 @@ struct sr_dev_driver { /** Close device */ int (*dev_close) (struct sr_dev_inst *sdi); /** Begin data acquisition on the specified device. */ - int (*dev_acquisition_start) (const struct sr_dev_inst *sdi, - void *cb_data); + int (*dev_acquisition_start) (const struct sr_dev_inst *sdi); /** End data acquisition on the specified device. */ - int (*dev_acquisition_stop) (struct sr_dev_inst *sdi, - void *cb_data); + int (*dev_acquisition_stop) (struct sr_dev_inst *sdi); /* Dynamic */ /** Device driver context, considered private. Initialized by init(). */