SR_MQ_WIND_SPEED,
/** Pressure */
SR_MQ_PRESSURE,
+ /** Parallel inductance (LCR meter model). */
+ SR_MQ_PARALLEL_INDUCTANCE,
+ /** Parallel capacitance (LCR meter model). */
+ SR_MQ_PARALLEL_CAPACITANCE,
+ /** Parallel resistance (LCR meter model). */
+ SR_MQ_PARALLEL_RESISTANCE,
+ /** Series inductance (LCR meter model). */
+ SR_MQ_SERIES_INDUCTANCE,
+ /** Series capacitance (LCR meter model). */
+ SR_MQ_SERIES_CAPACITANCE,
+ /** Series resistance (LCR meter model). */
+ SR_MQ_SERIES_RESISTANCE,
+ /** Dissipation factor. */
+ SR_MQ_DISSIPATION_FACTOR,
+ /** Quality factor. */
+ SR_MQ_QUALITY_FACTOR,
+ /** Phase angle. */
+ SR_MQ_PHASE_ANGLE,
+ /** Difference from reference value. */
+ SR_MQ_DIFFERENCE,
};
/** Unit of measured quantity, sr_datafeed_analog.unit. */
SR_UNIT_HECTOPASCAL,
/** Relative humidity assuming air temperature of 293 kelvin (%rF). */
SR_UNIT_HUMIDITY_293K,
+ /** Plane angle in 1/360th of a full circle. */
+ SR_UNIT_DEGREE,
+ /** Henry (inductance). */
+ SR_UNIT_HENRY,
};
/** Values for sr_datafeed_analog.flags. */
SR_MQFLAG_DURATION = 0x20000,
/** Device is in "avg" mode, averaging upon each new value. */
SR_MQFLAG_AVG = 0x40000,
+ /** Reference value shown. */
+ SR_MQFLAG_REFERENCE = 0x80000,
};
enum sr_trigger_matches {
/** Used for setting or getting value of a config item. */
struct sr_config {
/** Config key like SR_CONF_CONN, etc. */
- int key;
+ uint32_t key;
/** Key-specific data. */
GVariant *data;
};
/** Information about a config key. */
struct sr_config_info {
/** Config key like SR_CONF_CONN, etc. */
- int key;
+ uint32_t key;
/** Data type like SR_T_STRING, etc. */
int datatype;
/** Id string, e.g. "serialcomm". */
char *description;
};
+#define SR_CONF_GET (1 << 31)
+#define SR_CONF_SET (1 << 30)
+#define SR_CONF_LIST (1 << 29)
+#define SR_CONF_MASK 0x1fffffff
+
/** Constants for device classes */
enum sr_configkey {
/*--- Device classes ------------------------------------------------*/
/** Programmable power supply. */
SR_CONF_POWER_SUPPLY,
+ /** LCR meter. */
+ SR_CONF_LCRMETER,
+
/*--- Driver scan options -------------------------------------------*/
/**
/**
* Output voltage.
* @arg type: double
- * @arg get: get output voltage
+ * @arg get: get measured output voltage
*/
SR_CONF_OUTPUT_VOLTAGE,
/**
- * Maximum output voltage.
+ * Maximum output voltage target.
* @arg type: double
- * @arg get: get maximum output voltage limit
- * @arg set: change output voltage limit
+ * @arg get: get output voltage target
+ * @arg set: change output voltage target
*/
- SR_CONF_OUTPUT_VOLTAGE_MAX,
+ SR_CONF_OUTPUT_VOLTAGE_TARGET,
/**
* Output current.
* @arg type: double
- * @arg get: get output current
+ * @arg get: get measured output current
*/
SR_CONF_OUTPUT_CURRENT,
/**
- * Maximum output current.
+ * Output current limit.
* @arg type: double
- * @arg get: get maximum output voltage limit
- * @arg set: change output voltage limit
+ * @arg get: get output current limit
+ * @arg set: change output current limit
*/
- SR_CONF_OUTPUT_CURRENT_MAX,
+ SR_CONF_OUTPUT_CURRENT_LIMIT,
/**
* Enabling/disabling output.
/** Over-temperature protection (OTP) */
SR_CONF_OVER_TEMPERATURE_PROTECTION,
+ /** Output frequency in Hz. */
+ SR_CONF_OUTPUT_FREQUENCY,
+
+ /** Measured quantity. */
+ SR_CONF_MEASURED_QUANTITY,
+
+ /** Measured secondary quantity. */
+ SR_CONF_MEASURED_2ND_QUANTITY,
+
+ /** Equivalent circuit model. */
+ SR_CONF_EQUIV_CIRCUIT_MODEL,
+
/*--- Special stuff -------------------------------------------------*/
/** Scan options supported by the driver. */
SR_CONF_TEST_MODE,
};
-/** Device instance data
+/**
+ * Opaque structure representing a libsigrok device instance.
+ *
+ * None of the fields of this structure are meant to be accessed directly.
*/
-struct sr_dev_inst {
- /** Device driver. */
- struct sr_dev_driver *driver;
- /** Index of device in driver. */
- int index;
- /** Device instance status. SR_ST_NOT_FOUND, etc. */
- int status;
- /** Device instance type. SR_INST_USB, etc. */
- int inst_type;
- /** Device vendor. */
- char *vendor;
- /** Device model. */
- char *model;
- /** Device version. */
- char *version;
- /** List of channels. */
- GSList *channels;
- /** List of sr_channel_group structs */
- GSList *channel_groups;
- /** Device instance connection data (used?) */
- void *conn;
- /** Device instance private data (used?) */
- void *priv;
- /** Session to which this device is currently assigned. */
- struct sr_session *session;
-};
+struct sr_dev_inst;
/** Types of device instance, struct sr_dev_inst.type */
enum sr_dev_inst_type {
/** Called when driver is loaded, e.g. program startup. */
int (*init) (struct sr_context *sr_ctx);
/** Called before driver is unloaded.
- * Driver must free all resouces held by it. */
+ * Driver must free all resources held by it. */
int (*cleanup) (void);
/** Scan for devices. Driver should do all initialisation required.
* Can be called several times, e.g. with different port options.
/** Query value of a configuration key in driver or given device instance.
* @see sr_config_get().
*/
- int (*config_get) (int id, GVariant **data,
+ int (*config_get) (uint32_t key, GVariant **data,
const struct sr_dev_inst *sdi,
const struct sr_channel_group *cg);
/** Set value of a configuration key in driver or a given device instance.
* @see sr_config_set(). */
- int (*config_set) (int id, GVariant *data,
+ int (*config_set) (uint32_t key, GVariant *data,
const struct sr_dev_inst *sdi,
const struct sr_channel_group *cg);
/** Channel status change.
/** List all possible values for a configuration key in a device instance.
* @see sr_config_list().
*/
- int (*config_list) (int info_id, GVariant **data,
+ int (*config_list) (uint32_t key, GVariant **data,
const struct sr_dev_inst *sdi,
const struct sr_channel_group *cg);