X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=include%2Flibsigrok%2Flibsigrok.h;h=42cdcaa5da49ccaad10671b0750044bbe2867e3d;hp=1483b08e4448c384a95b1a2ad61e460c323eca94;hb=e77e32a3bebcaadabb12eb29ceaf2d30371d16f0;hpb=b9c10ae18b24984bb230e2c4ae8f5d067d183815 diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index 1483b08e..42cdcaa5 100644 --- a/include/libsigrok/libsigrok.h +++ b/include/libsigrok/libsigrok.h @@ -226,6 +226,10 @@ enum sr_mq { SR_MQ_DIFFERENCE, /** Count. */ SR_MQ_COUNT, + /** Power factor. */ + SR_MQ_POWER_FACTOR, + /** Apparent power */ + SR_MQ_APPARENT_POWER, }; /** Unit of measured quantity, sr_datafeed_analog.unit. */ @@ -287,7 +291,7 @@ enum sr_unit { SR_UNIT_METER_SECOND, /** Pressure in hectopascal */ SR_UNIT_HECTOPASCAL, - /** Relative humidity assuming air temperature of 293 kelvin (%rF). */ + /** 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, @@ -531,6 +535,8 @@ enum sr_channeltype { /** Information on single channel. */ struct sr_channel { + /** The device this channel is attached to. */ + struct sr_dev_inst *sdi; /** The index of this channel, starting at 0. Logic channels will * be encoded according to this index in SR_DF_LOGIC packets. */ int index; @@ -618,6 +624,9 @@ enum sr_configkey { /** The device can act as an LCR meter. */ SR_CONF_LCRMETER, + /** The device can act as an LCR meter. */ + SR_CONF_ELECTRONIC_LOAD, + /*--- Driver scan options -------------------------------------------*/ /** @@ -653,6 +662,14 @@ enum sr_configkey { */ SR_CONF_SERIALCOMM, + /** + * Modbus slave address specification. + * + * This is always an optional parameter, since a driver typically + * knows the default slave address of the device. + */ + SR_CONF_MODBUSADDR, + /*--- Device (or channel group) configuration -----------------------*/ /** The device supports setting its samplerate, in Hz. */ @@ -706,8 +723,8 @@ enum sr_configkey { /** The device supports setting its sample interval, in ms. */ SR_CONF_SAMPLE_INTERVAL, - /** Number of timebases, as related to SR_CONF_TIMEBASE. */ - SR_CONF_NUM_TIMEBASE, + /** Number of horizontal divisions, as related to SR_CONF_TIMEBASE. */ + SR_CONF_NUM_HDIV, /** Number of vertical divisions, as related to SR_CONF_VDIV. */ SR_CONF_NUM_VDIV, @@ -752,51 +769,51 @@ enum sr_configkey { SR_CONF_NUM_ANALOG_CHANNELS, /** - * Output voltage. + * Current voltage. * @arg type: double - * @arg get: get measured output voltage + * @arg get: get measured voltage */ - SR_CONF_OUTPUT_VOLTAGE, + SR_CONF_VOLTAGE, /** - * Maximum output voltage target. + * Maximum target voltage. * @arg type: double - * @arg get: get output voltage target - * @arg set: change output voltage target + * @arg get: get target voltage + * @arg set: change target voltage */ - SR_CONF_OUTPUT_VOLTAGE_TARGET, + SR_CONF_VOLTAGE_TARGET, /** - * Output current. + * Current current. * @arg type: double - * @arg get: get measured output current + * @arg get: get measured current */ - SR_CONF_OUTPUT_CURRENT, + SR_CONF_CURRENT, /** - * Output current limit. + * Current limit. * @arg type: double - * @arg get: get output current limit - * @arg set: change output current limit + * @arg get: get current limit + * @arg set: change current limit */ - SR_CONF_OUTPUT_CURRENT_LIMIT, + SR_CONF_CURRENT_LIMIT, /** - * Enabling/disabling output. + * Enabling/disabling channel. * @arg type: boolean * @arg get: @b true if currently enabled * @arg set: enable/disable */ - SR_CONF_OUTPUT_ENABLED, + SR_CONF_ENABLED, /** - * Output channel configuration. + * 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, + SR_CONF_CHANNEL_CONFIG, /** * Over-voltage protection (OVP) feature @@ -833,7 +850,7 @@ enum sr_configkey { /** * Over-current protection (OCP) active * @arg type: boolean - * @arg get: @b true if device has activated OCP, i.e. the output current + * @arg get: @b true if device has activated OCP, i.e. the current current * exceeds the over-current protection threshold. */ SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE, @@ -853,11 +870,11 @@ enum sr_configkey { SR_CONF_AMPLITUDE, /** - * Output channel regulation + * Channel regulation * get: "CV", "CC" or "UR", denoting constant voltage, constant current * or unregulated. */ - SR_CONF_OUTPUT_REGULATION, + SR_CONF_REGULATION, /** Over-temperature protection (OTP) */ SR_CONF_OVER_TEMPERATURE_PROTECTION, @@ -874,6 +891,12 @@ enum sr_configkey { /** Equivalent circuit model. */ SR_CONF_EQUIV_CIRCUIT_MODEL, + /* Output frequency target in Hz. */ + SR_CONF_OUTPUT_FREQUENCY_TARGET, + + /** Over-temperature protection (OTP) active. */ + SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE, + /*--- Special stuff -------------------------------------------------*/ /** Scan options supported by the driver. */ @@ -966,6 +989,8 @@ enum sr_dev_inst_type { SR_INST_SCPI, /** Device-instance type for user-created "devices". */ SR_INST_USER, + /** Device instance type for modbus devices. */ + SR_INST_MODBUS, }; /** Device instance status, struct sr_dev_inst.status */ @@ -992,24 +1017,24 @@ struct sr_dev_driver { /** API version (currently 1). */ int api_version; /** Called when driver is loaded, e.g. program startup. */ - int (*init) (struct sr_context *sr_ctx); + int (*init) (struct sr_dev_driver *driver, struct sr_context *sr_ctx); /** Called before driver is unloaded. * Driver must free all resources held by it. */ - int (*cleanup) (void); + int (*cleanup) (const struct sr_dev_driver *driver); /** Scan for devices. Driver should do all initialisation required. * Can be called several times, e.g. with different port options. * \retval NULL Error or no devices found. * \retval other GSList of a struct sr_dev_inst for each device. * Must be freed by caller! */ - GSList *(*scan) (GSList *options); + GSList *(*scan) (struct sr_dev_driver *driver, GSList *options); /** Get list of device instances the driver knows about. * \returns NULL or GSList of a struct sr_dev_inst for each device. * Must not be freed by caller! */ - GSList *(*dev_list) (void); + GSList *(*dev_list) (const struct sr_dev_driver *driver); /** Clear list of devices the driver knows about. */ - int (*dev_clear) (void); + int (*dev_clear) (const struct sr_dev_driver *driver); /** Query value of a configuration key in driver or given device instance. * @see sr_config_get(). */