X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fserial-dmm%2Fprotocol.c;h=c38c1422aef6a37a9ec97523cc9417b9fad9bccc;hb=36cf5b544537730719ca5f9098cbe0a57618ddd7;hp=52efecb3526ad566cf2046016657f50138cdddcd;hpb=50985c2019b2b5a6ce394589d89ee925b4f5e3a9;p=libsigrok.git diff --git a/hardware/serial-dmm/protocol.c b/hardware/serial-dmm/protocol.c index 52efecb3..c38c1422 100644 --- a/hardware/serial-dmm/protocol.c +++ b/hardware/serial-dmm/protocol.c @@ -35,56 +35,6 @@ static void log_dmm_packet(const uint8_t *buf) buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13]); } -SR_PRIV void dmm_details_dt4000zc(struct sr_datafeed_analog *analog, void *info) -{ - dmm_details_tp4000zc(analog, info); /* Same as TP4000ZC. */ -} - -SR_PRIV void dmm_details_tp4000zc(struct sr_datafeed_analog *analog, void *info) -{ - struct fs9721_info *info_local; - - info_local = (struct fs9721_info *)info; - - /* User-defined FS9721_LP3 flag 'c2c1_10' means temperature. */ - if (info_local->is_c2c1_10) { - analog->mq = SR_MQ_TEMPERATURE; - analog->unit = SR_UNIT_CELSIUS; - } -} - -SR_PRIV void dmm_details_va18b(struct sr_datafeed_analog *analog, void *info) -{ - struct fs9721_info *info_local; - - info_local = (struct fs9721_info *)info; - - /* User-defined FS9721_LP3 flag 'c2c1_01' means temperature. */ - if (info_local->is_c2c1_01) { - analog->mq = SR_MQ_TEMPERATURE; - analog->unit = SR_UNIT_CELSIUS; - } -} - -SR_PRIV void dmm_details_pce_dm32(struct sr_datafeed_analog *analog, void *info) -{ - struct fs9721_info *info_local; - - info_local = (struct fs9721_info *)info; - - /* User-defined FS9721_LP3 flag 'c2c1_01' means temperature (F). */ - if (info_local->is_c2c1_01) { - analog->mq = SR_MQ_TEMPERATURE; - analog->unit = SR_UNIT_FAHRENHEIT; - } - - /* User-defined FS9721_LP3 flag 'c2c1_10' means temperature (C). */ - if (info_local->is_c2c1_10) { - analog->mq = SR_MQ_TEMPERATURE; - analog->unit = SR_UNIT_CELSIUS; - } -} - static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi, int dmm, void *info) { @@ -130,7 +80,9 @@ static void handle_new_data(struct sr_dev_inst *sdi, int dmm, void *info) /* Try to get as much data as the buffer can hold. */ len = DMM_BUFSIZE - devc->buflen; len = serial_read(serial, devc->buf + devc->buflen, len); - if (len < 1) { + if (len == 0) + return; /* No new bytes, nothing to do. */ + if (len < 0) { sr_err("Serial port read error: %d.", len); return; } @@ -208,18 +160,34 @@ 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(BBCGM_M2110, metex14) /* metex14_info used as a dummy. */ RECEIVE_DATA(DIGITEK_DT4000ZC, fs9721) RECEIVE_DATA(TEKPOWER_TP4000ZC, fs9721) RECEIVE_DATA(METEX_ME31, metex14) RECEIVE_DATA(PEAKTECH_3410, metex14) RECEIVE_DATA(MASTECH_MAS345, metex14) RECEIVE_DATA(VA_VA18B, fs9721) +RECEIVE_DATA(VA_VA40B, fs9721) RECEIVE_DATA(METEX_M3640D, metex14) +RECEIVE_DATA(METEX_M4650CR, metex14) RECEIVE_DATA(PEAKTECH_4370, metex14) RECEIVE_DATA(PCE_PCE_DM32, fs9721) RECEIVE_DATA(RADIOSHACK_22_168, metex14) RECEIVE_DATA(RADIOSHACK_22_805, metex14) RECEIVE_DATA(RADIOSHACK_22_812, rs9lcd) +RECEIVE_DATA(TECPEL_DMM_8061_SER, fs9721) +RECEIVE_DATA(VOLTCRAFT_M3650D, metex14) +RECEIVE_DATA(VOLTCRAFT_M4650CR, metex14) RECEIVE_DATA(VOLTCRAFT_VC820_SER, fs9721) +RECEIVE_DATA(VOLTCRAFT_VC830_SER, fs9922) RECEIVE_DATA(VOLTCRAFT_VC840_SER, fs9721) -RECEIVE_DATA(UNI_T_UT61E_SER, es51922) +RECEIVE_DATA(UNI_T_UT60A_SER, fs9721) +RECEIVE_DATA(UNI_T_UT60E_SER, fs9721) +RECEIVE_DATA(UNI_T_UT60G_SER, es519xx) +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) +RECEIVE_DATA(ISO_TECH_IDM103N, es519xx) +RECEIVE_DATA(TENMA_72_7745_SER, fs9721) +RECEIVE_DATA(TENMA_72_7750_SER, es519xx)