]> sigrok.org Git - libsigrok.git/blobdiff - include/libsigrok/libsigrok.h
Add sr_dev_inst_user_new(), sr_dev_inst_channel_add().
[libsigrok.git] / include / libsigrok / libsigrok.h
index 3cb83a11acc0b1327ce953817cf36378a40e2c47..63201bfbf6c08670174935c1324c15b009ebafaa 100644 (file)
@@ -207,12 +207,12 @@ enum sr_mq {
        SR_MQ_PARALLEL_CAPACITANCE,
        /** Parallel resistance (LCR meter model). */
        SR_MQ_PARALLEL_RESISTANCE,
-       /** Serial inductance (LCR meter model). */
-       SR_MQ_SERIAL_INDUCTANCE,
-       /** Serial capacitance (LCR meter model). */
-       SR_MQ_SERIAL_CAPACITANCE,
-       /** Serial resistance (LCR meter model). */
-       SR_MQ_SERIAL_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. */
@@ -570,6 +570,9 @@ enum sr_configkey {
        /** Programmable power supply. */
        SR_CONF_POWER_SUPPLY,
 
+       /** LCR meter. */
+       SR_CONF_LCRMETER,
+
        /*--- Driver scan options -------------------------------------------*/
 
        /**
@@ -697,32 +700,32 @@ enum sr_configkey {
        /**
         * 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.
@@ -805,6 +808,18 @@ enum sr_configkey {
        /** 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. */
@@ -877,36 +892,12 @@ enum sr_configkey {
        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;
-       /** 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;
-       /** Serial number. */
-       char *serial_num;
-       /** Connection string to uniquely identify devices. */
-       char *connection_id;
-       /** 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 {
@@ -916,6 +907,8 @@ enum sr_dev_inst_type {
        SR_INST_SERIAL,
        /** Device instance type for SCPI devices. */
        SR_INST_SCPI,
+       /** Device-instance type for user-created "devices". */
+       SR_INST_USER,
 };
 
 /** Device instance status, struct sr_dev_inst.status */
@@ -944,7 +937,7 @@ struct sr_dev_driver {
        /** 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.