]> sigrok.org Git - libsigrok.git/blobdiff - hardware/brymen-dmm/protocol.c
Replace 'probe' with 'channel' in most places.
[libsigrok.git] / hardware / brymen-dmm / protocol.c
index 425697ee7bea3a8728aa07384a90512e822c2f38..664258aa72f53fb3cc06799176d51b5eb12e24a6 100644 (file)
 
 #include "protocol.h"
 
-/* parser.c */
-SR_PRIV int sr_brymen_parse(const uint8_t *buf, float *floatval,
-                           struct sr_datafeed_analog *analog, void *info);
-
 static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi)
 {
        float floatval;
@@ -35,10 +31,11 @@ static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi)
        analog.num_samples = 1;
        analog.mq = -1;
 
-       sr_brymen_parse(buf, &floatval, &analog, NULL);
+       if (brymen_parse(buf, &floatval, &analog, NULL) != SR_OK)
+               return;
        analog.data = &floatval;
 
-       analog.probes = sdi->probes;
+       analog.channels = sdi->channels;
 
        if (analog.mq != -1) {
                /* Got a measurement. */
@@ -53,12 +50,14 @@ static void handle_new_data(struct sr_dev_inst *sdi)
 {
        struct dev_context *devc;
        int len, status, offset = 0;
+       struct sr_serial_dev_inst *serial;
 
        devc = sdi->priv;
+       serial = sdi->conn;
 
        /* Try to get as much data as the buffer can hold. */
        len = DMM_BUFSIZE - devc->buflen;
-       len = serial_read(devc->serial, devc->buf + devc->buflen, len);
+       len = serial_read(serial, devc->buf + devc->buflen, len);
        if (len < 1) {
                sr_err("Serial port read error: %d.", len);
                return;
@@ -112,6 +111,7 @@ SR_PRIV int brymen_dmm_receive_data(int fd, int revents, void *cb_data)
 {
        struct sr_dev_inst *sdi;
        struct dev_context *devc;
+       struct sr_serial_dev_inst *serial;
        int ret;
        int64_t time;
 
@@ -123,12 +123,14 @@ SR_PRIV int brymen_dmm_receive_data(int fd, int revents, void *cb_data)
        if (!(devc = sdi->priv))
                return TRUE;
 
+       serial = sdi->conn;
+
        if (revents == G_IO_IN) {
                /* Serial data arrived. */
                handle_new_data(sdi);
        } else {
                /* Timeout, send another packet request. */
-               if ((ret = brymen_packet_request(devc->serial)) < 0) {
+               if ((ret = brymen_packet_request(serial)) < 0) {
                        sr_err("Failed to request packet: %d.", ret);
                        return FALSE;
                }
@@ -181,8 +183,8 @@ SR_PRIV int brymen_stream_detect(struct sr_serial_dev_inst *serial,
 
        maxlen = *buflen;
 
-       sr_dbg("Detecting packets on FD %d (timeout = %" PRIu64
-              "ms, baudrate = %d).", serial->fd, timeout_ms, baudrate);
+       sr_dbg("Detecting packets on %s (timeout = %" PRIu64
+              "ms, baudrate = %d).", serial->port, timeout_ms, baudrate);
 
        /* Assume 8n1 transmission. That is 10 bits for every byte. */
        byte_delay_us = 10 * (1000000 / baudrate);