]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/pce-322a/protocol.c
uni-t-ut181a: silence compiler warning, use of uninitialized variable
[libsigrok.git] / src / hardware / pce-322a / protocol.c
index 6dc9deeb7da8c746f8fc19188f60cf6e4b3e9598..ee98c7c61128cd82cb0a1bdbb2d0a7ab724524d8 100644 (file)
  */
 
 #include <config.h>
+#include <string.h>
 #include "protocol.h"
 
 static int send_command(const struct sr_dev_inst *sdi, uint16_t command)
 {
        struct sr_serial_dev_inst *serial;
        uint8_t buffer[2];
+       int ret;
 
        buffer[0] = command >> 8;
        buffer[1] = command;
@@ -32,8 +34,11 @@ static int send_command(const struct sr_dev_inst *sdi, uint16_t command)
        if (!(serial = sdi->conn))
                return SR_ERR;
 
-       if (serial_write_nonblocking(serial, (const void *)buffer, 2) != 2)
-               return SR_ERR;
+       ret = serial_write_blocking(serial, buffer, sizeof(buffer), 0);
+       if (ret < 0)
+               return ret;
+       if ((size_t)ret != sizeof(buffer))
+               return SR_ERR_IO;
 
        return SR_OK;
 }
@@ -42,6 +47,7 @@ static int send_long_command(const struct sr_dev_inst *sdi, uint32_t command)
 {
        struct sr_serial_dev_inst *serial;
        uint8_t buffer[4];
+       int ret;
 
        buffer[0] = command >> 24;
        buffer[1] = command >> 16;
@@ -51,8 +57,11 @@ static int send_long_command(const struct sr_dev_inst *sdi, uint32_t command)
        if (!(serial = sdi->conn))
                return SR_ERR;
 
-       if (serial_write_nonblocking(serial, (const void *)buffer, 4) != 4)
-               return SR_ERR;
+       ret = serial_write_blocking(serial, buffer, sizeof(buffer), 0);
+       if (ret < 0)
+               return ret;
+       if ((size_t)ret != sizeof(buffer))
+               return SR_ERR_IO;
 
        return SR_OK;
 }
@@ -82,7 +91,7 @@ static void send_data(const struct sr_dev_inst *sdi, float sample)
        devc->num_samples++;
        /* Limiting number of samples is only supported for live data. */
        if (devc->cur_data_source == DATA_SOURCE_LIVE && devc->limit_samples && devc->num_samples >= devc->limit_samples)
-               sdi->driver->dev_acquisition_stop((struct sr_dev_inst *)sdi);
+               sr_dev_acquisition_stop((struct sr_dev_inst *)sdi);
 }
 
 static void process_measurement(const struct sr_dev_inst *sdi)
@@ -140,15 +149,13 @@ static void process_memory_measurement(const struct sr_dev_inst *sdi)
 static void process_byte(const struct sr_dev_inst *sdi, const unsigned char c)
 {
        struct dev_context *devc;
-       unsigned int i;
 
        devc = sdi->priv;
 
        if (devc->buffer_len < BUFFER_SIZE) {
                devc->buffer[devc->buffer_len++] = c;
        } else {
-               for (i = 1; i < BUFFER_SIZE; i++)
-                       devc->buffer[i - 1] = devc->buffer[i];
+               memmove(devc->buffer, devc->buffer + 1, BUFFER_SIZE - 1);
                devc->buffer[BUFFER_SIZE - 1] = c;
        }
 
@@ -162,15 +169,13 @@ static void process_byte(const struct sr_dev_inst *sdi, const unsigned char c)
 static void process_usage_byte(const struct sr_dev_inst *sdi, uint8_t c)
 {
        struct dev_context *devc;
-       unsigned int i;
 
        devc = sdi->priv;
 
        if (devc->buffer_len < MEM_USAGE_BUFFER_SIZE) {
                devc->buffer[devc->buffer_len++] = c;
        } else {
-               for (i = 1; i < MEM_USAGE_BUFFER_SIZE; i++)
-                       devc->buffer[i - 1] = devc->buffer[i];
+               memmove(devc->buffer, devc->buffer + 1, MEM_USAGE_BUFFER_SIZE - 1);
                devc->buffer[MEM_USAGE_BUFFER_SIZE - 1] = c;
        }
 
@@ -193,15 +198,13 @@ static void process_usage_byte(const struct sr_dev_inst *sdi, uint8_t c)
 static void process_memory_byte(const struct sr_dev_inst *sdi, uint8_t c)
 {
        struct dev_context *devc;
-       unsigned int i;
 
        devc = sdi->priv;
 
        if (devc->buffer_len < MEM_DATA_BUFFER_SIZE) {
                devc->buffer[devc->buffer_len++] = c;
        } else {
-               for (i = 1; i < MEM_DATA_BUFFER_SIZE; i++)
-                       devc->buffer[i - 1] = devc->buffer[i];
+               memmove(devc->buffer, devc->buffer + 1, MEM_DATA_BUFFER_SIZE - 1);
                devc->buffer[MEM_DATA_BUFFER_SIZE - 1] = c;
        }