]> sigrok.org Git - libsigrok.git/commitdiff
Add support for the UNI-T UT61C multimeter.
authorUwe Hermann <redacted>
Sun, 29 Dec 2013 16:35:51 +0000 (17:35 +0100)
committerUwe Hermann <redacted>
Sun, 29 Dec 2013 16:35:51 +0000 (17:35 +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 a99fc7e2e95f8fb0e9783e99c7adf8f0022b533c..368d2d7911c329749c5f2c3cd36a1bbf39a7a92c 100644 (file)
@@ -268,6 +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 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
index 57bca222e41fa96be058f33900c1ba97d046db0f..7a03ba32e65f6657b5e7c0edd604cc20d3292f9e 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_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;
 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,
                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",
                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(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_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)")
 DRV(iso_tech_idm103n, ISO_TECH_IDM103N, "iso-tech-idm103n", "ISO-TECH IDM103N")
index 06e0acd026d9b5609ed5dfc5dcd40d75fba9746a..b08bd3016a86edc09eeb67f0ecbb3dba753d7f26 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_UT61C_SER, fs9922)
 RECEIVE_DATA(UNI_T_UT61D_SER, fs9922)
 RECEIVE_DATA(UNI_T_UT61E_SER, es51922)
 RECEIVE_DATA(ISO_TECH_IDM103N, es519xx)
index 22264573da0b742e1bece4658782a49d12edb6c5..733e5ce14d10a6fd1df2c3b2859bf8d80df11ede 100644 (file)
@@ -46,12 +46,13 @@ enum {
        VOLTCRAFT_VC840_SER,
        UNI_T_UT60A_SER,
        UNI_T_UT60E_SER,
+       UNI_T_UT61C_SER,
        UNI_T_UT61D_SER,
        UNI_T_UT61E_SER,
        ISO_TECH_IDM103N,
 };
 
-#define DMM_COUNT 25
+#define DMM_COUNT 26
 
 struct dmm_info {
        /** 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_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_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);
 SR_PRIV int receive_data_ISO_TECH_IDM103N(int fd, int revents, void *cb_data);
index e6239a1a3edb3b9ee86c770b8688e1e1f80b18e4..8292dfb0a05823740e05dbe3205447efc11029f5 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_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;
 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,
                &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,
                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(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_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")
 DRV(voltcraft_vc820, VOLTCRAFT_VC820, "voltcraft-vc820", "Voltcraft VC-820")
index 8b7bb9b28b2efee360d244491094c36fd75af9b3..3158e0fad54103eb6c534008cd1bfef9b92f56d6 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_UT61C, fs9922)
 RECEIVE_DATA(UNI_T_UT61D, fs9922)
 RECEIVE_DATA(UNI_T_UT61E, es51922)
 RECEIVE_DATA(VOLTCRAFT_VC820, fs9721)
index a6a8f7186c557d506894531ae275017855bd309b..baf901665f29f562e4238b84d3d8025f019cd5b4 100644 (file)
@@ -33,6 +33,7 @@ enum {
        TECPEL_DMM_8061,
        UNI_T_UT60A,
        UNI_T_UT60E,
+       UNI_T_UT61C,
        UNI_T_UT61D,
        UNI_T_UT61E,
        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_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_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);
 SR_PRIV int receive_data_VOLTCRAFT_VC820(int fd, int revents, void *cb_data);
index b1d94ccd10609090e537e25fd15655fdecc4227d..3db22a7bd828d1a9c4d40a8fef0b121266b5533f 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_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;
 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 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_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;
 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,
        &uni_t_ut60a_ser_driver_info,
        &uni_t_ut60e_ser_driver_info,
+       &uni_t_ut61c_ser_driver_info,
        &uni_t_ut61d_ser_driver_info,
        &uni_t_ut61e_ser_driver_info,
        &iso_tech_idm103n_driver_info,
@@ -360,6 +363,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_ut61c_driver_info,
        &uni_t_ut61d_driver_info,
        &uni_t_ut61e_driver_info,
        &voltcraft_vc820_driver_info,