SR_CONF_CONN,
};
-static const uint32_t devopts[] = {
+static const uint32_t drvopts[] = {
SR_CONF_MULTIMETER,
+};
+
+static const uint32_t devopts[] = {
SR_CONF_CONTINUOUS,
SR_CONF_LIMIT_SAMPLES | SR_CONF_SET | SR_CONF_GET,
SR_CONF_LIMIT_MSEC | SR_CONF_SET | SR_CONF_GET,
struct sr_dev_driver *di;
struct drv_context *drvc;
struct sr_usb_dev_inst *usb;
- int ret;
di = sdi->driver;
drvc = di->context;
usb = sdi->conn;
- if ((ret = sr_usb_open(drvc->sr_ctx->libusb_ctx, usb)) == SR_OK)
- sdi->status = SR_ST_ACTIVE;
-
- return ret;
-}
-
-static int dev_close(struct sr_dev_inst *sdi)
-{
- /* TODO */
-
- sdi->status = SR_ST_INACTIVE;
-
- return SR_OK;
+ return sr_usb_open(drvc->sr_ctx->libusb_ctx, usb);
}
-static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
- const struct sr_channel_group *cg)
+static int config_set(uint32_t key, GVariant *data,
+ const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
struct dev_context *devc;
return sr_sw_limits_config_set(&devc->limits, key, data);
}
-static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi,
- const struct sr_channel_group *cg)
+static int config_list(uint32_t key, GVariant **data,
+ const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
- (void)sdi;
- (void)cg;
-
- switch (key) {
- case SR_CONF_SCAN_OPTIONS:
- *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
- scanopts, ARRAY_SIZE(scanopts), sizeof(uint32_t));
- break;
- case SR_CONF_DEVICE_OPTIONS:
- *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
- devopts, ARRAY_SIZE(devopts), sizeof(uint32_t));
- break;
- default:
- return SR_ERR_NA;
- }
-
- return SR_OK;
+ return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts);
}
static int dev_acquisition_start(const struct sr_dev_inst *sdi)
std_session_send_df_header(sdi);
- sr_session_source_add(sdi->session, -1, 0, 10 /* poll_timeout */,
+ sr_session_source_add(sdi->session, -1, 0, 10,
uni_t_dmm_receive_data, (void *)sdi);
return SR_OK;
.cleanup = std_cleanup, \
.scan = scan, \
.dev_list = std_dev_list, \
+ .dev_clear = std_dev_clear, \
.config_get = NULL, \
.config_set = config_set, \
.config_list = config_list, \
.dev_open = dev_open, \
- .dev_close = dev_close, \
+ .dev_close = std_dummy_dev_close /* TODO */, \
.dev_acquisition_start = dev_acquisition_start, \
.dev_acquisition_stop = dev_acquisition_stop, \
.context = NULL, \
}).di
SR_REGISTER_DEV_DRIVER_LIST(uni_t_dmm_drivers,
+ /* {{{ es519xx */
+ DMM(
+ "tenma-72-7750", es519xx,
+ /* The baudrate is actually 19230, see "Note 1" below. */
+ "Tenma", "72-7750", 19200,
+ ES519XX_11B_PACKET_SIZE,
+ sr_es519xx_19200_11b_packet_valid, sr_es519xx_19200_11b_parse,
+ NULL
+ ),
+ DMM(
+ "uni-t-ut60g", es519xx,
+ /* The baudrate is actually 19230, see "Note 1" below. */
+ "UNI-T", "UT60G", 19200,
+ ES519XX_11B_PACKET_SIZE,
+ sr_es519xx_19200_11b_packet_valid, sr_es519xx_19200_11b_parse,
+ NULL
+ ),
+ DMM(
+ "uni-t-ut61e", es519xx,
+ /* The baudrate is actually 19230, see "Note 1" below. */
+ "UNI-T", "UT61E", 19200,
+ ES519XX_14B_PACKET_SIZE,
+ sr_es519xx_19200_14b_packet_valid, sr_es519xx_19200_14b_parse,
+ NULL
+ ),
+ /* }}} */
+ /* {{{ fs9721 */
DMM(
"tecpel-dmm-8061", fs9721,
"Tecpel", "DMM-8061", 2400,
sr_fs9721_00_temp_c
),
DMM(
- "uni-t-ut372", ut372,
- "UNI-T", "UT372", 2400,
- UT372_PACKET_SIZE,
- sr_ut372_packet_valid, sr_ut372_parse,
- NULL
+ "tenma-72-7745", fs9721,
+ "Tenma", "72-7745", 2400,
+ FS9721_PACKET_SIZE,
+ sr_fs9721_packet_valid, sr_fs9721_parse,
+ sr_fs9721_00_temp_c
),
DMM(
"uni-t-ut60a", fs9721,
sr_fs9721_00_temp_c
),
DMM(
- "uni-t-ut60g", es519xx,
- /* The baudrate is actually 19230, see "Note 1" below. */
- "UNI-T", "UT60G", 19200,
- ES519XX_11B_PACKET_SIZE,
- sr_es519xx_19200_11b_packet_valid, sr_es519xx_19200_11b_parse,
+ "voltcraft-vc820", fs9721,
+ "Voltcraft", "VC-820", 2400,
+ FS9721_PACKET_SIZE,
+ sr_fs9721_packet_valid, sr_fs9721_parse,
NULL
),
+ DMM(
+ "voltcraft-vc840", fs9721,
+ "Voltcraft", "VC-840", 2400,
+ FS9721_PACKET_SIZE,
+ sr_fs9721_packet_valid, sr_fs9721_parse,
+ sr_fs9721_00_temp_c
+ ),
+ /* }}} */
+ /* {{{ fs9922 */
DMM(
"uni-t-ut61b", fs9922,
"UNI-T", "UT61B", 2400,
NULL
),
DMM(
- "uni-t-ut61e", es519xx,
- /* The baudrate is actually 19230, see "Note 1" below. */
- "UNI-T", "UT61E", 19200,
- ES519XX_14B_PACKET_SIZE,
- sr_es519xx_19200_14b_packet_valid, sr_es519xx_19200_14b_parse,
+ "voltcraft-vc830", fs9922,
+ /*
+ * Note: The VC830 doesn't set the 'volt' and 'diode' bits of
+ * the FS9922 protocol. Instead, it only sets the user-defined
+ * bit "z1" to indicate "diode mode" and "voltage".
+ */
+ "Voltcraft", "VC-830", 2400,
+ FS9922_PACKET_SIZE,
+ sr_fs9922_packet_valid, sr_fs9922_parse,
+ &sr_fs9922_z1_diode
+ ),
+ /* }}} */
+ /* {{{ ut372 */
+ DMM(
+ "uni-t-ut372", ut372,
+ "UNI-T", "UT372", 2400,
+ UT372_PACKET_SIZE,
+ sr_ut372_packet_valid, sr_ut372_parse,
NULL
),
+ /* }}} */
+ /* {{{ ut71x */
+ DMM(
+ "tenma-72-7730", ut71x,
+ "Tenma", "72-7730", 2400,
+ UT71X_PACKET_SIZE,
+ sr_ut71x_packet_valid, sr_ut71x_parse, NULL
+ ),
+ DMM(
+ "tenma-72-7732", ut71x,
+ "Tenma", "72-7732", 2400,
+ UT71X_PACKET_SIZE,
+ sr_ut71x_packet_valid, sr_ut71x_parse, NULL
+ ),
+ DMM(
+ "tenma-72-9380a", ut71x,
+ "Tenma", "72-9380A", 2400,
+ UT71X_PACKET_SIZE,
+ sr_ut71x_packet_valid, sr_ut71x_parse, NULL
+ ),
DMM(
"uni-t-ut71a", ut71x,
"UNI-T", "UT71A", 2400, UT71X_PACKET_SIZE,
sr_ut71x_packet_valid, sr_ut71x_parse, NULL
),
DMM(
- "voltcraft-vc820", fs9721,
- "Voltcraft", "VC-820", 2400,
- FS9721_PACKET_SIZE,
- sr_fs9721_packet_valid, sr_fs9721_parse,
- NULL
- ),
- DMM(
- "voltcraft-vc830", fs9922,
- /*
- * Note: The VC830 doesn't set the 'volt' and 'diode' bits of
- * the FS9922 protocol. Instead, it only sets the user-defined
- * bit "z1" to indicate "diode mode" and "voltage".
- */
- "Voltcraft", "VC-830", 2400,
- FS9922_PACKET_SIZE,
- sr_fs9922_packet_valid, sr_fs9922_parse,
- &sr_fs9922_z1_diode
- ),
- DMM(
- "voltcraft-vc840", fs9721,
- "Voltcraft", "VC-840", 2400,
- FS9721_PACKET_SIZE,
- sr_fs9721_packet_valid, sr_fs9721_parse,
- sr_fs9721_00_temp_c
- ),
- DMM(
- "voltcraft-vc870", vc870,
- "Voltcraft", "VC-870", 9600, VC870_PACKET_SIZE,
- sr_vc870_packet_valid, sr_vc870_parse, NULL
+ "uni-t-ut804", ut71x,
+ "UNI-T", "UT804", 2400, UT71X_PACKET_SIZE,
+ sr_ut71x_packet_valid, sr_ut71x_parse, NULL
),
DMM(
"voltcraft-vc920", ut71x,
"Voltcraft", "VC-960", 2400, UT71X_PACKET_SIZE,
sr_ut71x_packet_valid, sr_ut71x_parse, NULL
),
+ /* }}} */
+ /* {{{ vc870 */
DMM(
- "tenma-72-7730", ut71x,
- "Tenma", "72-7730", 2400,
- UT71X_PACKET_SIZE,
- sr_ut71x_packet_valid, sr_ut71x_parse, NULL
- ),
- DMM(
- "tenma-72-7732", ut71x,
- "Tenma", "72-7732", 2400,
- UT71X_PACKET_SIZE,
- sr_ut71x_packet_valid, sr_ut71x_parse, NULL
- ),
- DMM(
- "tenma-72-9380a", ut71x,
- "Tenma", "72-9380A", 2400,
- UT71X_PACKET_SIZE,
- sr_ut71x_packet_valid, sr_ut71x_parse, NULL
- ),
- DMM(
- "tenma-72-7745", fs9721,
- "Tenma", "72-7745", 2400,
- FS9721_PACKET_SIZE,
- sr_fs9721_packet_valid, sr_fs9721_parse,
- sr_fs9721_00_temp_c
- ),
- DMM(
- "tenma-72-7750", es519xx,
- /* The baudrate is actually 19230, see "Note 1" below. */
- "Tenma", "72-7750", 19200,
- ES519XX_11B_PACKET_SIZE,
- sr_es519xx_19200_11b_packet_valid, sr_es519xx_19200_11b_parse,
- NULL
+ "voltcraft-vc870", vc870,
+ "Voltcraft", "VC-870", 9600, VC870_PACKET_SIZE,
+ sr_vc870_packet_valid, sr_vc870_parse, NULL
),
+ /* }}} */
);