]> sigrok.org Git - libsigrok.git/blobdiff - hardware/serial-dmm/protocol.c
sr_parse_(period|voltage): deprecate struct sr_rational
[libsigrok.git] / hardware / serial-dmm / protocol.c
index eda54d9b8671b4a48f02664ababd87be93597969..cbbdcdcae75b8e2ab4b0a3baf861f06fcafaf632 100644 (file)
@@ -90,37 +90,32 @@ static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi,
 {
        float floatval;
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_analog *analog;
+       struct sr_datafeed_analog analog;
        struct dev_context *devc;
 
        log_dmm_packet(buf);
        devc = sdi->priv;
 
-       if (!(analog = g_try_malloc0(sizeof(struct sr_datafeed_analog)))) {
-               sr_err("Analog packet malloc failed.");
-               return;
-       }
+       memset(&analog, 0, sizeof(struct sr_datafeed_analog));
 
-       analog->probes = sdi->probes;
-       analog->num_samples = 1;
-       analog->mq = -1;
+       analog.probes = sdi->probes;
+       analog.num_samples = 1;
+       analog.mq = -1;
 
-       dmms[dmm].packet_parse(buf, &floatval, analog, info);
-       analog->data = &floatval;
+       dmms[dmm].packet_parse(buf, &floatval, &analog, info);
+       analog.data = &floatval;
 
        /* If this DMM needs additional handling, call the resp. function. */
        if (dmms[dmm].dmm_details)
-               dmms[dmm].dmm_details(analog, info);
+               dmms[dmm].dmm_details(&analog, info);
 
-       if (analog->mq != -1) {
+       if (analog.mq != -1) {
                /* Got a measurement. */
                packet.type = SR_DF_ANALOG;
-               packet.payload = analog;
+               packet.payload = &analog;
                sr_session_send(devc->cb_data, &packet);
                devc->num_samples++;
        }
-
-       g_free(analog);
 }
 
 static void handle_new_data(struct sr_dev_inst *sdi, int dmm, void *info)
@@ -218,6 +213,7 @@ RECEIVE_DATA(METEX_M3640D, 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(VOLTCRAFT_VC820_SER, fs9721)
 RECEIVE_DATA(VOLTCRAFT_VC840_SER, fs9721)