/* 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 {
SR_MQ_APPARENT_POWER,
/** Mass */
SR_MQ_MASS,
+ /** Harmonic ratio */
+ SR_MQ_HARMONIC_RATIO,
/* Update sr_key_info_mq[] (hwdriver.c) upon changes! */
};
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). */
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).
/** 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 */
/** 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 -------------------------------------------*/
/** Coupling. */
SR_CONF_COUPLING,
- /** Trigger matches. */
+ /** Trigger matches. */
SR_CONF_TRIGGER_MATCH,
/** The device supports setting its sample interval, in ms. */
/** 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. */
/** 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 -------------------------------------------------*/