]> sigrok.org Git - libsigrok.git/commitdiff
uni-t-dmm: Add Tecpel DMM-8061 support.
authorUwe Hermann <redacted>
Wed, 1 May 2013 01:00:08 +0000 (03:00 +0200)
committerUwe Hermann <redacted>
Wed, 1 May 2013 01:00:41 +0000 (03:00 +0200)
hardware/uni-t-dmm/api.c
hardware/uni-t-dmm/protocol.c
hardware/uni-t-dmm/protocol.h
hwdriver.c

index 4e8fe349fdaf9238231e96707d7e7288fcc5a406..7cc8ee8ab050726799ac5cec3948eef13e439207 100644 (file)
@@ -37,12 +37,20 @@ static const int32_t hwcaps[] = {
        SR_CONF_CONTINUOUS,
 };
 
+SR_PRIV struct sr_dev_driver tecpel_dmm_8061_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;
 SR_PRIV struct sr_dev_driver voltcraft_vc840_driver_info;
 
 SR_PRIV struct dmm_info udmms[] = {
+       {
+               "Tecpel", "DMM-8061", 2400,
+               FS9721_PACKET_SIZE, NULL,
+               sr_fs9721_packet_valid, sr_fs9721_parse,
+               sr_fs9721_00_temp_c,
+               &tecpel_dmm_8061_driver_info, receive_data_TECPEL_DMM_8061,
+       },
        {
                "UNI-T", "UT61D", 2400,
                FS9922_PACKET_SIZE, NULL,
@@ -324,6 +332,7 @@ SR_PRIV struct sr_dev_driver ID##_driver_info = { \
        .priv = NULL, \
 };
 
+DRV(tecpel_dmm_8061, TECPEL_DMM_8061, "tecpel-dmm-8061", "Tecpel DMM-8061")
 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 d6cfcb8796efa6866916331701dfb021562fe100..d24b12c1d5c39f556e89e075724c037bf6441a8f 100644 (file)
@@ -51,6 +51,8 @@
  *  f1 d1 00 00 00 00 00 00 (1 data byte, 0xd1)
  *
  * Chips and serial settings used in UNI-T DMMs (and rebranded ones):
+ *  - Tecpel DMM-8060: ? (very likely Fortune Semiconductor FS9721_LP3)
+ *  - Tecpel DMM-8061: ? (very likely Fortune Semiconductor FS9721_LP3)
  *  - UNI-T UT108: ?
  *  - UNI-T UT109: ?
  *  - UNI-T UT30A: ?
@@ -290,6 +292,7 @@ SR_PRIV int receive_data_##ID_UPPER(int fd, int revents, void *cb_data) { \
        return receive_data(fd, revents, ID_UPPER, &info, cb_data); }
 
 /* Driver-specific receive_data() wrappers */
+RECEIVE_DATA(TECPEL_DMM_8061, fs9721)
 RECEIVE_DATA(UNI_T_UT61D, fs9922)
 RECEIVE_DATA(UNI_T_UT61E, es51922)
 RECEIVE_DATA(VOLTCRAFT_VC820, fs9721)
index a367336abae6bb2c7f31724df541aaec37e33ed4..51128f6db5e786827c39942f58967f6639768ddd 100644 (file)
 
 /* Note: When adding entries here, don't forget to update DMM_COUNT. */
 enum {
+       TECPEL_DMM_8061,
        UNI_T_UT61D,
        UNI_T_UT61E,
        VOLTCRAFT_VC820,
        VOLTCRAFT_VC840,
 };
 
-#define DMM_COUNT 4
+#define DMM_COUNT 5
 
 struct dmm_info {
        char *vendor;
@@ -87,6 +88,7 @@ struct dev_context {
        uint8_t buflen;
 };
 
+SR_PRIV int receive_data_TECPEL_DMM_8061(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 e9a15c1a6f6a5cf9c270c67e2f7c4f9ffb3c795b..88b0006060a0de1ec53b872dbd12e60ff5de34a1 100644 (file)
@@ -164,6 +164,7 @@ 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;
 #endif
 #ifdef HAVE_HW_UNI_T_DMM
+extern SR_PRIV struct sr_dev_driver tecpel_dmm_8061_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;
@@ -249,6 +250,7 @@ static struct sr_dev_driver *drivers_list[] = {
        &uni_t_ut61e_ser_driver_info,
 #endif
 #ifdef HAVE_HW_UNI_T_DMM
+       &tecpel_dmm_8061_driver_info,
        &uni_t_ut61d_driver_info,
        &uni_t_ut61e_driver_info,
        &voltcraft_vc820_driver_info,