]> sigrok.org Git - libsigrok.git/blobdiff - hardware/uni-t-dmm/protocol.c
Add small helper for creating struct sr_config
[libsigrok.git] / hardware / uni-t-dmm / protocol.c
index a4b69403f878e5c625295a04ce08fd3d72d0d513..c953acd5d99ecf563ad1a2f55977eb842a0236a4 100644 (file)
@@ -77,6 +77,7 @@ static void decode_packet(struct dev_context *devc, int dmm, const uint8_t *buf)
        memset(&analog, 0, sizeof(struct sr_datafeed_analog));
 
        /* Parse the protocol packet. */
+       ret = SR_ERR;
        if (dmm == UNI_T_UT61D)
                ret = sr_dmm_parse_fs9922(buf, &floatval, &analog);
        else if (dmm == VOLTCRAFT_VC820)
@@ -254,9 +255,11 @@ static int uni_t_dmm_receive_data(int fd, int revents, int dmm, void *cb_data)
                if (data_byte_counter == NUM_DATA_BYTES) {
                        log_dmm_packet(pbuf);
                        data_byte_counter = 0;
-                       if (!sr_fs9721_packet_valid(pbuf)) {
-                               sr_err("Invalid packet.");
-                               return TRUE;
+                       if (dmm == VOLTCRAFT_VC820) {
+                               if (!sr_fs9721_packet_valid(pbuf)) {
+                                       sr_err("Invalid packet.");
+                                       return TRUE;
+                               }
                        }
                        decode_packet(devc, dmm, pbuf);
                        memset(pbuf, 0x00, NUM_DATA_BYTES);
@@ -264,7 +267,7 @@ static int uni_t_dmm_receive_data(int fd, int revents, int dmm, void *cb_data)
        }
 
        /* Abort acquisition if we acquired enough samples. */
-       if (devc->num_samples >= devc->limit_samples && devc->limit_samples > 0) {
+       if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
                sr_info("Requested number of samples reached.");
                sdi->driver->dev_acquisition_stop(sdi, cb_data);
        }