From: Uwe Hermann Date: Wed, 1 Jan 2014 14:25:39 +0000 (+0100) Subject: Add support for the UNI-T UT61B multimeter. X-Git-Tag: libsigrok-0.3.0~354 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=7cb69b1870f507cf235e22463e9201427fb2f5d6;p=libsigrok.git Add support for the UNI-T UT61B multimeter. --- diff --git a/README.devices b/README.devices index 368d2d79..da1e291d 100644 --- a/README.devices +++ b/README.devices @@ -268,8 +268,7 @@ a short list for convenience: - PCE PCE-DM32: Briefly press the "RS232" button. - RadioShack 22-812: Press and hold "SELECT" and "RANGE" together. - TekPower TP4000ZC: Briefly press the "RS232" button. - - UNI-T UT61C: Press the "REL/RS232/USB" button for roughly 1 second. - - UNI-T UT61D: Press the "REL/RS232/USB" button for roughly 1 second. + - UNI-T UT61B/C/D: Press the "REL/RS232/USB" button for roughly 1 second. - UNI-T UT325: Briefly press the "SEND" button (as per manual). However, it appears that in practice you don't have to press the button (at least on some versions of the device), simply connect the device via USB. diff --git a/hardware/serial-dmm/api.c b/hardware/serial-dmm/api.c index e5bc1c45..b433c063 100644 --- a/hardware/serial-dmm/api.c +++ b/hardware/serial-dmm/api.c @@ -63,6 +63,7 @@ SR_PRIV struct sr_dev_driver voltcraft_vc830_ser_driver_info; SR_PRIV struct sr_dev_driver voltcraft_vc840_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut60a_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut60e_ser_driver_info; +SR_PRIV struct sr_dev_driver uni_t_ut61b_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61c_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61d_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61e_ser_driver_info; @@ -234,6 +235,12 @@ SR_PRIV struct dmm_info dmms[] = { &uni_t_ut60e_ser_driver_info, receive_data_UNI_T_UT60E_SER, }, + { + "UNI-T", "UT61B (UT-D02 cable)", "2400/8n1/rts=0/dtr=1", + 2400, FS9922_PACKET_SIZE, NULL, + sr_fs9922_packet_valid, sr_fs9922_parse, NULL, + &uni_t_ut61b_ser_driver_info, receive_data_UNI_T_UT61B_SER, + }, { "UNI-T", "UT61C (UT-D02 cable)", "2400/8n1/rts=0/dtr=1", 2400, FS9922_PACKET_SIZE, NULL, @@ -560,6 +567,7 @@ DRV(voltcraft_vc830_ser, VOLTCRAFT_VC830_SER, "voltcraft-vc830-ser", "Voltcraft DRV(voltcraft_vc840_ser, VOLTCRAFT_VC840_SER, "voltcraft-vc840-ser", "Voltcraft VC-840 (UT-D02 cable)") DRV(uni_t_ut60a_ser, UNI_T_UT60A_SER, "uni-t-ut60a-ser", "UNI-T UT60A (UT-D02 cable)") DRV(uni_t_ut60e_ser, UNI_T_UT60E_SER, "uni-t-ut60e-ser", "UNI-T UT60E (UT-D02 cable)") +DRV(uni_t_ut61b_ser, UNI_T_UT61B_SER, "uni-t-ut61b-ser", "UNI-T UT61B (UT-D02 cable)") DRV(uni_t_ut61c_ser, UNI_T_UT61C_SER, "uni-t-ut61c-ser", "UNI-T UT61C (UT-D02 cable)") DRV(uni_t_ut61d_ser, UNI_T_UT61D_SER, "uni-t-ut61d-ser", "UNI-T UT61D (UT-D02 cable)") DRV(uni_t_ut61e_ser, UNI_T_UT61E_SER, "uni-t-ut61e-ser", "UNI-T UT61E (UT-D02 cable)") diff --git a/hardware/serial-dmm/protocol.c b/hardware/serial-dmm/protocol.c index 997597f2..71ebf0dc 100644 --- a/hardware/serial-dmm/protocol.c +++ b/hardware/serial-dmm/protocol.c @@ -182,6 +182,7 @@ RECEIVE_DATA(VOLTCRAFT_VC830_SER, fs9922) RECEIVE_DATA(VOLTCRAFT_VC840_SER, fs9721) RECEIVE_DATA(UNI_T_UT60A_SER, fs9721) RECEIVE_DATA(UNI_T_UT60E_SER, fs9721) +RECEIVE_DATA(UNI_T_UT61B_SER, fs9922) RECEIVE_DATA(UNI_T_UT61C_SER, fs9922) RECEIVE_DATA(UNI_T_UT61D_SER, fs9922) RECEIVE_DATA(UNI_T_UT61E_SER, es519xx) diff --git a/hardware/serial-dmm/protocol.h b/hardware/serial-dmm/protocol.h index 733e5ce1..653101ce 100644 --- a/hardware/serial-dmm/protocol.h +++ b/hardware/serial-dmm/protocol.h @@ -46,13 +46,14 @@ enum { VOLTCRAFT_VC840_SER, UNI_T_UT60A_SER, UNI_T_UT60E_SER, + UNI_T_UT61B_SER, UNI_T_UT61C_SER, UNI_T_UT61D_SER, UNI_T_UT61E_SER, ISO_TECH_IDM103N, }; -#define DMM_COUNT 26 +#define DMM_COUNT 27 struct dmm_info { /** Manufacturer/brand. */ @@ -127,6 +128,7 @@ SR_PRIV int receive_data_VOLTCRAFT_VC830_SER(int fd, int revents, void *cb_data) SR_PRIV int receive_data_VOLTCRAFT_VC840_SER(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT60A_SER(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT60E_SER(int fd, int revents, void *cb_data); +SR_PRIV int receive_data_UNI_T_UT61B_SER(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61C_SER(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61D_SER(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61E_SER(int fd, int revents, void *cb_data); diff --git a/hardware/uni-t-dmm/api.c b/hardware/uni-t-dmm/api.c index f874cca0..a9a29625 100644 --- a/hardware/uni-t-dmm/api.c +++ b/hardware/uni-t-dmm/api.c @@ -40,6 +40,7 @@ static const int32_t hwcaps[] = { SR_PRIV struct sr_dev_driver tecpel_dmm_8061_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut60a_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut60e_driver_info; +SR_PRIV struct sr_dev_driver uni_t_ut61b_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61c_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61d_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61e_driver_info; @@ -77,6 +78,13 @@ SR_PRIV struct dmm_info udmms[] = { NULL, &uni_t_ut61c_driver_info, receive_data_UNI_T_UT61C, }, + { + "UNI-T", "UT61B", 2400, + FS9922_PACKET_SIZE, + sr_fs9922_packet_valid, sr_fs9922_parse, + NULL, + &uni_t_ut61b_driver_info, receive_data_UNI_T_UT61B, + }, { "UNI-T", "UT61D", 2400, FS9922_PACKET_SIZE, @@ -391,6 +399,7 @@ SR_PRIV struct sr_dev_driver ID##_driver_info = { \ DRV(tecpel_dmm_8061, TECPEL_DMM_8061, "tecpel-dmm-8061", "Tecpel DMM-8061") DRV(uni_t_ut60a, UNI_T_UT60A, "uni-t-ut60a", "UNI-T UT60A") DRV(uni_t_ut60e, UNI_T_UT60E, "uni-t-ut60e", "UNI-T UT60E") +DRV(uni_t_ut61b, UNI_T_UT61B, "uni-t-ut61b", "UNI-T UT61B") DRV(uni_t_ut61c, UNI_T_UT61C, "uni-t-ut61c", "UNI-T UT61C") DRV(uni_t_ut61d, UNI_T_UT61D, "uni-t-ut61d", "UNI-T UT61D") DRV(uni_t_ut61e, UNI_T_UT61E, "uni-t-ut61e", "UNI-T UT61E") diff --git a/hardware/uni-t-dmm/protocol.c b/hardware/uni-t-dmm/protocol.c index fe45ff76..189cefd0 100644 --- a/hardware/uni-t-dmm/protocol.c +++ b/hardware/uni-t-dmm/protocol.c @@ -303,6 +303,7 @@ SR_PRIV int receive_data_##ID_UPPER(int fd, int revents, void *cb_data) { \ RECEIVE_DATA(TECPEL_DMM_8061, fs9721) RECEIVE_DATA(UNI_T_UT60A, fs9721) RECEIVE_DATA(UNI_T_UT60E, fs9721) +RECEIVE_DATA(UNI_T_UT61B, fs9922) RECEIVE_DATA(UNI_T_UT61C, fs9922) RECEIVE_DATA(UNI_T_UT61D, fs9922) RECEIVE_DATA(UNI_T_UT61E, es519xx) diff --git a/hardware/uni-t-dmm/protocol.h b/hardware/uni-t-dmm/protocol.h index baf90166..3a044106 100644 --- a/hardware/uni-t-dmm/protocol.h +++ b/hardware/uni-t-dmm/protocol.h @@ -33,6 +33,7 @@ enum { TECPEL_DMM_8061, UNI_T_UT60A, UNI_T_UT60E, + UNI_T_UT61B, UNI_T_UT61C, UNI_T_UT61D, UNI_T_UT61E, @@ -85,6 +86,7 @@ struct dev_context { SR_PRIV int receive_data_TECPEL_DMM_8061(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT60A(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT60E(int fd, int revents, void *cb_data); +SR_PRIV int receive_data_UNI_T_UT61B(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61C(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61D(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61E(int fd, int revents, void *cb_data); diff --git a/hwdriver.c b/hwdriver.c index 3db22a7b..bbba4411 100644 --- a/hwdriver.c +++ b/hwdriver.c @@ -219,6 +219,7 @@ extern SR_PRIV struct sr_dev_driver voltcraft_vc830_ser_driver_info; extern SR_PRIV struct sr_dev_driver voltcraft_vc840_ser_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut60a_ser_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut60e_ser_driver_info; +extern SR_PRIV struct sr_dev_driver uni_t_ut61b_ser_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61c_ser_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61d_ser_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61e_ser_driver_info; @@ -228,6 +229,7 @@ extern SR_PRIV struct sr_dev_driver iso_tech_idm103n_driver_info; extern SR_PRIV struct sr_dev_driver tecpel_dmm_8061_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut60a_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut60e_driver_info; +extern SR_PRIV struct sr_dev_driver uni_t_ut61b_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61c_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61d_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61e_driver_info; @@ -354,6 +356,7 @@ static struct sr_dev_driver *drivers_list[] = { &voltcraft_vc840_ser_driver_info, &uni_t_ut60a_ser_driver_info, &uni_t_ut60e_ser_driver_info, + &uni_t_ut61b_ser_driver_info, &uni_t_ut61c_ser_driver_info, &uni_t_ut61d_ser_driver_info, &uni_t_ut61e_ser_driver_info, @@ -363,6 +366,7 @@ static struct sr_dev_driver *drivers_list[] = { &tecpel_dmm_8061_driver_info, &uni_t_ut60a_driver_info, &uni_t_ut60e_driver_info, + &uni_t_ut61b_driver_info, &uni_t_ut61c_driver_info, &uni_t_ut61d_driver_info, &uni_t_ut61e_driver_info,