X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=include%2Flibsigrok%2Flibsigrok.h;h=3ecc460a28fa9bb387443ec4e5f180615ebc22cd;hb=cac58676e987d06b890366ac4078a1e4fb1cbdc3;hp=1f20e1d66826b1b8d2bfafba6e98858cc3aff5d8;hpb=d514d35dab8b831264c8cb01444cf0bb5abbbf8f;p=libsigrok.git diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index 1f20e1d6..3ecc460a 100644 --- a/include/libsigrok/libsigrok.h +++ b/include/libsigrok/libsigrok.h @@ -64,6 +64,7 @@ extern "C" { /** Status/error codes returned by libsigrok functions. */ enum sr_error_code { + SR_OK_CONTINUE = 1, /**< Keep going. */ SR_OK = 0, /**< No error. */ SR_ERR = -1, /**< Generic/unspecified error. */ SR_ERR_MALLOC = -2, /**< Malloc/calloc/realloc error. */ @@ -74,6 +75,7 @@ enum sr_error_code { SR_ERR_DEV_CLOSED = -7, /**< Device is closed, but must be open. */ SR_ERR_TIMEOUT = -8, /**< A timeout occurred. */ SR_ERR_CHANNEL_GROUP = -9, /**< A channel group must be specified. */ + SR_ERR_DATA =-10, /**< Data is invalid. */ /* * Note: When adding entries here, don't forget to also update the @@ -467,6 +469,8 @@ struct sr_channel { gboolean enabled; /** Name of channel. */ char *name; + /** Private data for driver use. */ + void *priv; }; /** Structure for groups of channels that have common properties. */ @@ -659,29 +663,100 @@ enum sr_configkey { /** The device supports setting the number of analog channels. */ SR_CONF_NUM_ANALOG_CHANNELS, - /** Output voltage. */ + /** + * Output voltage. + * @arg type: double + * @arg get: get output voltage + */ SR_CONF_OUTPUT_VOLTAGE, - /** Maximum output voltage. */ + /** + * Maximum output voltage. + * @arg type: double + * @arg get: get maximum output voltage limit + * @arg set: change output voltage limit + */ SR_CONF_OUTPUT_VOLTAGE_MAX, - /** Output current. */ + /** + * Output current. + * @arg type: double + * @arg get: get output current + */ SR_CONF_OUTPUT_CURRENT, - /** Maximum output current. */ + /** + * Maximum output current. + * @arg type: double + * @arg get: get maximum output voltage limit + * @arg set: change output voltage limit + */ SR_CONF_OUTPUT_CURRENT_MAX, - /** Enabling/disabling output. */ + /** + * Enabling/disabling output. + * @arg type: boolean + * @arg get: @b true if currently enabled + * @arg set: enable/disable + */ SR_CONF_OUTPUT_ENABLED, - /** Channel output configuration. */ - SR_CONF_OUTPUT_CHANNEL, + /** + * Output channel configuration. + * @arg type: string + * @arg get: get current setting + * @arg set: change current setting + * @arg list: array of possible values + */ + SR_CONF_OUTPUT_CHANNEL_CONFIG, + + /** + * Over-voltage protection (OVP) feature + * @arg type: boolean + * @arg get: @b true if currently enabled + * @arg set: enable/disable + */ + SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED, + + /** + * Over-voltage protection (OVP) active + * @arg type: boolean + * @arg get: @b true if device has activated OVP, i.e. the output voltage + * exceeds the over-voltage protection threshold. + */ + SR_CONF_OVER_VOLTAGE_PROTECTION_ACTIVE, - /** Over-voltage protection (OVP) */ - SR_CONF_OVER_VOLTAGE_PROTECTION, + /** + * Over-voltage protection (OVP) threshold + * @arg type: double (voltage) + * @arg get: get current threshold + * @arg set: set new threshold + */ + SR_CONF_OVER_VOLTAGE_PROTECTION_THRESHOLD, - /** Over-current protection (OCP) */ - SR_CONF_OVER_CURRENT_PROTECTION, + /** + * Over-current protection (OCP) feature + * @arg type: boolean + * @arg get: @b true if currently enabled + * @arg set: enable/disable + */ + SR_CONF_OVER_CURRENT_PROTECTION_ENABLED, + + /** + * Over-current protection (OCP) active + * @arg type: boolean + * @arg get: @b true if device has activated OCP, i.e. the output current + * exceeds the over-current protection threshold. + */ + SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE, + + /** + * Over-current protection (OCP) threshold + * @arg type: double (current) + * @arg get: get current threshold + * @arg set: set new threshold + */ + SR_CONF_OVER_CURRENT_PROTECTION_THRESHOLD, /** Choice of clock edge for external clock ("r" or "f"). */ SR_CONF_CLOCK_EDGE, @@ -689,6 +764,16 @@ enum sr_configkey { /** Amplitude of a source without strictly-defined MQ. */ SR_CONF_AMPLITUDE, + /** + * Output channel regulation + * get: "CV", "CC" or "UR", denoting constant voltage, constant current + * or unregulated. + */ + SR_CONF_OUTPUT_REGULATION, + + /** Over-temperature protection (OTP) */ + SR_CONF_OVER_TEMPERATURE_PROTECTION, + /*--- Special stuff -------------------------------------------------*/ /** Scan options supported by the driver. */