Add support for the UNI-T UT61C multimeter.

This commit is contained in:
Uwe Hermann 2013-12-29 17:35:51 +01:00
parent 683fd16137
commit 5f985df23c
8 changed files with 29 additions and 1 deletions

View File

@ -268,6 +268,7 @@ a short list for convenience:
- PCE PCE-DM32: Briefly press the "RS232" button. - PCE PCE-DM32: Briefly press the "RS232" button.
- RadioShack 22-812: Press and hold "SELECT" and "RANGE" together. - RadioShack 22-812: Press and hold "SELECT" and "RANGE" together.
- TekPower TP4000ZC: Briefly press the "RS232" button. - 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 UT61D: Press the "REL/RS232/USB" button for roughly 1 second.
- UNI-T UT325: Briefly press the "SEND" button (as per manual). However, it - 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 appears that in practice you don't have to press the button (at least on

View File

@ -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 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_ut60a_ser_driver_info;
SR_PRIV struct sr_dev_driver uni_t_ut60e_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut60e_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_ut61d_ser_driver_info;
SR_PRIV struct sr_dev_driver uni_t_ut61e_ser_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61e_ser_driver_info;
SR_PRIV struct sr_dev_driver iso_tech_idm103n_driver_info; SR_PRIV struct sr_dev_driver iso_tech_idm103n_driver_info;
@ -233,6 +234,12 @@ SR_PRIV struct dmm_info dmms[] = {
&uni_t_ut60e_ser_driver_info, &uni_t_ut60e_ser_driver_info,
receive_data_UNI_T_UT60E_SER, receive_data_UNI_T_UT60E_SER,
}, },
{
"UNI-T", "UT61C (UT-D02 cable)", "2400/8n1/rts=0/dtr=1",
2400, FS9922_PACKET_SIZE, NULL,
sr_fs9922_packet_valid, sr_fs9922_parse, NULL,
&uni_t_ut61c_ser_driver_info, receive_data_UNI_T_UT61C_SER,
},
{ {
"UNI-T", "UT61D (UT-D02 cable)", "2400/8n1/rts=0/dtr=1", "UNI-T", "UT61D (UT-D02 cable)", "2400/8n1/rts=0/dtr=1",
2400, FS9922_PACKET_SIZE, NULL, 2400, FS9922_PACKET_SIZE, NULL,
@ -553,6 +560,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(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_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_ut60e_ser, UNI_T_UT60E_SER, "uni-t-ut60e-ser", "UNI-T UT60E (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_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)") DRV(uni_t_ut61e_ser, UNI_T_UT61E_SER, "uni-t-ut61e-ser", "UNI-T UT61E (UT-D02 cable)")
DRV(iso_tech_idm103n, ISO_TECH_IDM103N, "iso-tech-idm103n", "ISO-TECH IDM103N") DRV(iso_tech_idm103n, ISO_TECH_IDM103N, "iso-tech-idm103n", "ISO-TECH IDM103N")

View File

@ -182,6 +182,7 @@ RECEIVE_DATA(VOLTCRAFT_VC830_SER, fs9922)
RECEIVE_DATA(VOLTCRAFT_VC840_SER, fs9721) RECEIVE_DATA(VOLTCRAFT_VC840_SER, fs9721)
RECEIVE_DATA(UNI_T_UT60A_SER, fs9721) RECEIVE_DATA(UNI_T_UT60A_SER, fs9721)
RECEIVE_DATA(UNI_T_UT60E_SER, fs9721) RECEIVE_DATA(UNI_T_UT60E_SER, fs9721)
RECEIVE_DATA(UNI_T_UT61C_SER, fs9922)
RECEIVE_DATA(UNI_T_UT61D_SER, fs9922) RECEIVE_DATA(UNI_T_UT61D_SER, fs9922)
RECEIVE_DATA(UNI_T_UT61E_SER, es51922) RECEIVE_DATA(UNI_T_UT61E_SER, es51922)
RECEIVE_DATA(ISO_TECH_IDM103N, es519xx) RECEIVE_DATA(ISO_TECH_IDM103N, es519xx)

View File

@ -46,12 +46,13 @@ enum {
VOLTCRAFT_VC840_SER, VOLTCRAFT_VC840_SER,
UNI_T_UT60A_SER, UNI_T_UT60A_SER,
UNI_T_UT60E_SER, UNI_T_UT60E_SER,
UNI_T_UT61C_SER,
UNI_T_UT61D_SER, UNI_T_UT61D_SER,
UNI_T_UT61E_SER, UNI_T_UT61E_SER,
ISO_TECH_IDM103N, ISO_TECH_IDM103N,
}; };
#define DMM_COUNT 25 #define DMM_COUNT 26
struct dmm_info { struct dmm_info {
/** Manufacturer/brand. */ /** Manufacturer/brand. */
@ -126,6 +127,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_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_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_UT60E_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_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); SR_PRIV int receive_data_UNI_T_UT61E_SER(int fd, int revents, void *cb_data);
SR_PRIV int receive_data_ISO_TECH_IDM103N(int fd, int revents, void *cb_data); SR_PRIV int receive_data_ISO_TECH_IDM103N(int fd, int revents, void *cb_data);

View File

@ -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 tecpel_dmm_8061_driver_info;
SR_PRIV struct sr_dev_driver uni_t_ut60a_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_ut60e_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_ut61d_driver_info;
SR_PRIV struct sr_dev_driver uni_t_ut61e_driver_info; SR_PRIV struct sr_dev_driver uni_t_ut61e_driver_info;
SR_PRIV struct sr_dev_driver voltcraft_vc820_driver_info; SR_PRIV struct sr_dev_driver voltcraft_vc820_driver_info;
@ -69,6 +70,13 @@ SR_PRIV struct dmm_info udmms[] = {
sr_fs9721_00_temp_c, sr_fs9721_00_temp_c,
&uni_t_ut60e_driver_info, receive_data_UNI_T_UT60E, &uni_t_ut60e_driver_info, receive_data_UNI_T_UT60E,
}, },
{
"UNI-T", "UT61C", 2400,
FS9922_PACKET_SIZE,
sr_fs9922_packet_valid, sr_fs9922_parse,
NULL,
&uni_t_ut61c_driver_info, receive_data_UNI_T_UT61C,
},
{ {
"UNI-T", "UT61D", 2400, "UNI-T", "UT61D", 2400,
FS9922_PACKET_SIZE, FS9922_PACKET_SIZE,
@ -383,6 +391,7 @@ SR_PRIV struct sr_dev_driver ID##_driver_info = { \
DRV(tecpel_dmm_8061, TECPEL_DMM_8061, "tecpel-dmm-8061", "Tecpel DMM-8061") 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_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_ut60e, UNI_T_UT60E, "uni-t-ut60e", "UNI-T UT60E")
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_ut61d, UNI_T_UT61D, "uni-t-ut61d", "UNI-T UT61D")
DRV(uni_t_ut61e, UNI_T_UT61E, "uni-t-ut61e", "UNI-T UT61E") DRV(uni_t_ut61e, UNI_T_UT61E, "uni-t-ut61e", "UNI-T UT61E")
DRV(voltcraft_vc820, VOLTCRAFT_VC820, "voltcraft-vc820", "Voltcraft VC-820") DRV(voltcraft_vc820, VOLTCRAFT_VC820, "voltcraft-vc820", "Voltcraft VC-820")

View File

@ -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(TECPEL_DMM_8061, fs9721)
RECEIVE_DATA(UNI_T_UT60A, fs9721) RECEIVE_DATA(UNI_T_UT60A, fs9721)
RECEIVE_DATA(UNI_T_UT60E, fs9721) RECEIVE_DATA(UNI_T_UT60E, fs9721)
RECEIVE_DATA(UNI_T_UT61C, fs9922)
RECEIVE_DATA(UNI_T_UT61D, fs9922) RECEIVE_DATA(UNI_T_UT61D, fs9922)
RECEIVE_DATA(UNI_T_UT61E, es51922) RECEIVE_DATA(UNI_T_UT61E, es51922)
RECEIVE_DATA(VOLTCRAFT_VC820, fs9721) RECEIVE_DATA(VOLTCRAFT_VC820, fs9721)

View File

@ -33,6 +33,7 @@ enum {
TECPEL_DMM_8061, TECPEL_DMM_8061,
UNI_T_UT60A, UNI_T_UT60A,
UNI_T_UT60E, UNI_T_UT60E,
UNI_T_UT61C,
UNI_T_UT61D, UNI_T_UT61D,
UNI_T_UT61E, UNI_T_UT61E,
VOLTCRAFT_VC820, VOLTCRAFT_VC820,
@ -84,6 +85,7 @@ struct dev_context {
SR_PRIV int receive_data_TECPEL_DMM_8061(int fd, int revents, void *cb_data); 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_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_UT60E(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_UT61D(int fd, int revents, void *cb_data);
SR_PRIV int receive_data_UNI_T_UT61E(int fd, int revents, void *cb_data); SR_PRIV int receive_data_UNI_T_UT61E(int fd, int revents, void *cb_data);
SR_PRIV int receive_data_VOLTCRAFT_VC820(int fd, int revents, void *cb_data); SR_PRIV int receive_data_VOLTCRAFT_VC820(int fd, int revents, void *cb_data);

View File

@ -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 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_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_ut60e_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_ut61d_ser_driver_info;
extern SR_PRIV struct sr_dev_driver uni_t_ut61e_ser_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61e_ser_driver_info;
extern SR_PRIV struct sr_dev_driver iso_tech_idm103n_driver_info; extern SR_PRIV struct sr_dev_driver iso_tech_idm103n_driver_info;
@ -227,6 +228,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 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_ut60a_driver_info;
extern SR_PRIV struct sr_dev_driver uni_t_ut60e_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut60e_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_ut61d_driver_info;
extern SR_PRIV struct sr_dev_driver uni_t_ut61e_driver_info; extern SR_PRIV struct sr_dev_driver uni_t_ut61e_driver_info;
extern SR_PRIV struct sr_dev_driver voltcraft_vc820_driver_info; extern SR_PRIV struct sr_dev_driver voltcraft_vc820_driver_info;
@ -352,6 +354,7 @@ static struct sr_dev_driver *drivers_list[] = {
&voltcraft_vc840_ser_driver_info, &voltcraft_vc840_ser_driver_info,
&uni_t_ut60a_ser_driver_info, &uni_t_ut60a_ser_driver_info,
&uni_t_ut60e_ser_driver_info, &uni_t_ut60e_ser_driver_info,
&uni_t_ut61c_ser_driver_info,
&uni_t_ut61d_ser_driver_info, &uni_t_ut61d_ser_driver_info,
&uni_t_ut61e_ser_driver_info, &uni_t_ut61e_ser_driver_info,
&iso_tech_idm103n_driver_info, &iso_tech_idm103n_driver_info,
@ -360,6 +363,7 @@ static struct sr_dev_driver *drivers_list[] = {
&tecpel_dmm_8061_driver_info, &tecpel_dmm_8061_driver_info,
&uni_t_ut60a_driver_info, &uni_t_ut60a_driver_info,
&uni_t_ut60e_driver_info, &uni_t_ut60e_driver_info,
&uni_t_ut61c_driver_info,
&uni_t_ut61d_driver_info, &uni_t_ut61d_driver_info,
&uni_t_ut61e_driver_info, &uni_t_ut61e_driver_info,
&voltcraft_vc820_driver_info, &voltcraft_vc820_driver_info,