]> sigrok.org Git - libsigrok.git/commitdiff
Add support for the UNI-T UT61B multimeter.
authorUwe Hermann <redacted>
Wed, 1 Jan 2014 14:25:39 +0000 (15:25 +0100)
committerUwe Hermann <redacted>
Wed, 1 Jan 2014 14:28:44 +0000 (15:28 +0100)
README.devices
hardware/serial-dmm/api.c
hardware/serial-dmm/protocol.c
hardware/serial-dmm/protocol.h
hardware/uni-t-dmm/api.c
hardware/uni-t-dmm/protocol.c
hardware/uni-t-dmm/protocol.h
hwdriver.c

index 368d2d7911c329749c5f2c3cd36a1bbf39a7a92c..da1e291d6440fe6795d7f5d34449e6cb4c31b0b1 100644 (file)
@@ -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.
index e5bc1c4569a7e385d4678a032608104b1bcaf9c6..b433c0630de468577f8a883571b76f53dc4ab2a1 100644 (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 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)")
index 997597f212531782427f09160b83ff5e60d3d8f7..71ebf0dce344326b9537c12eb00573d3ff092ac8 100644 (file)
@@ -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)
index 733e5ce14d10a6fd1df2c3b2859bf8d80df11ede..653101cea34c1fdd876e2da43ff0ba084977e556 100644 (file)
@@ -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);
index f874cca0a99bd95877d6eb1a95608294229c2c4d..a9a29625b96ef549e91f065b4db486d8c5edea42 100644 (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 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")
index fe45ff765129f1e499c4fb661cbb1332270a288d..189cefd0536e544f7762dfbda647536e1d3c6649 100644 (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(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)
index baf901665f29f562e4238b84d3d8025f019cd5b4..3a0441067d6d06ae5a7e83bb2262ff1b4d01329a 100644 (file)
@@ -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);
index 3db22a7bd828d1a9c4d40a8fef0b121266b5533f..bbba44111012839842a29bb4681d9fc734126c93 100644 (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 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,