]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/beaglelogic/beaglelogic_tcp.c
beaglelogic: Fix mismatched printf specifiers.
[libsigrok.git] / src / hardware / beaglelogic / beaglelogic_tcp.c
index 2c303c976c1bef216e2f31cac7642a91eb3fe4f6..e06a19a82a8b5a76df44af8c0085b98f07272e63 100644 (file)
@@ -2,7 +2,8 @@
  * This file is part of the libsigrok project.
  *
  * Copyright (C) 2017 Kumar Abhishek <abhishek@theembeddedkitchen.net>
- * Portions of the code are adopted from scpi_tcp.c and scpi.c
+ * Portions of the code are adapted from scpi_tcp.c and scpi.c, their
+ * copyright notices are listed below:
  *
  * Copyright (C) 2013 Martin Ling <martin-sigrok@earth.li>
  * Copyright (C) 2013 poljar (Damir Jelić) <poljarinho@gmail.com>
@@ -41,7 +42,8 @@
 #include "protocol.h"
 #include "beaglelogic.h"
 
-static int beaglelogic_tcp_open(struct dev_context *devc) {
+static int beaglelogic_tcp_open(struct dev_context *devc)
+{
        struct addrinfo hints;
        struct addrinfo *results, *res;
        int err;
@@ -83,7 +85,8 @@ static int beaglelogic_tcp_open(struct dev_context *devc) {
 }
 
 static int beaglelogic_tcp_send_cmd(struct dev_context *devc,
-                                   const char *format, ...) {
+                                   const char *format, ...)
+{
        int len, out;
        va_list args, args_copy;
        char *buf;
@@ -104,22 +107,25 @@ static int beaglelogic_tcp_send_cmd(struct dev_context *devc,
 
        if (out < 0) {
                sr_err("Send error: %s", g_strerror(errno));
+               g_free(buf);
                return SR_ERR;
        }
 
        if (out < (int)strlen(buf)) {
-               sr_dbg("Only sent %d/%d bytes of command: '%s'.", out,
+               sr_dbg("Only sent %d/%zu bytes of command: '%s'.", out,
                       strlen(buf), buf);
        }
 
        sr_spew("Sent command: '%s'.", buf);
+
        g_free(buf);
 
        return SR_OK;
 }
 
 static int beaglelogic_tcp_read_data(struct dev_context *devc, char *buf,
-               int maxlen) {
+                                    int maxlen)
+{
        int len;
 
        len = recv(devc->socket, buf, maxlen, 0);
@@ -132,7 +138,8 @@ static int beaglelogic_tcp_read_data(struct dev_context *devc, char *buf,
        return len;
 }
 
-SR_PRIV int beaglelogic_tcp_drain(struct dev_context *devc) {
+SR_PRIV int beaglelogic_tcp_drain(struct dev_context *devc)
+{
        char *buf = g_malloc(1024);
        fd_set rset;
        int ret, len = 0;
@@ -147,27 +154,28 @@ SR_PRIV int beaglelogic_tcp_drain(struct dev_context *devc) {
 
        do {
                ret = select(devc->socket + 1, &rset, NULL, NULL, &tv);
-               if (ret > 0) {
+               if (ret > 0)
                        len += beaglelogic_tcp_read_data(devc, buf, 1024);
-               }
        } while (ret > 0);
 
        sr_spew("Drained %d bytes of data.", len);
 
        g_free(buf);
+
        return SR_OK;
 }
 
 static int beaglelogic_tcp_get_string(struct dev_context *devc, const char *cmd,
-               char **tcp_resp) {
+                                     char **tcp_resp)
+{
        GString *response = g_string_sized_new(1024);
        int len;
        gint64 timeout;
 
+       *tcp_resp = NULL;
        if (cmd) {
-               if (beaglelogic_tcp_send_cmd(devc, cmd) != SR_OK) {
+               if (beaglelogic_tcp_send_cmd(devc, cmd) != SR_OK)
                        return SR_ERR;
-               }
        }
 
        timeout = g_get_monotonic_time() + devc->read_timeout;
@@ -179,9 +187,8 @@ static int beaglelogic_tcp_get_string(struct dev_context *devc, const char *cmd,
                return SR_ERR;
        }
 
-       if (len > 0) {
+       if (len > 0)
                g_string_set_size(response, len);
-       }
 
        if (g_get_monotonic_time() > timeout) {
                sr_err("Timed out waiting for response.");
@@ -201,11 +208,13 @@ static int beaglelogic_tcp_get_string(struct dev_context *devc, const char *cmd,
                response->str, response->len);
 
        *tcp_resp = g_string_free(response, FALSE);
+
        return SR_OK;
 }
 
 static int beaglelogic_tcp_get_int(struct dev_context *devc,
-                                  const char *cmd, int *response) {
+                                  const char *cmd, int *response)
+{
        int ret;
        char *resp = NULL;
 
@@ -223,7 +232,8 @@ static int beaglelogic_tcp_get_int(struct dev_context *devc,
        return ret;
 }
 
-SR_PRIV int beaglelogic_tcp_detect(struct dev_context *devc) {
+SR_PRIV int beaglelogic_tcp_detect(struct dev_context *devc)
+{
        char *resp = NULL;
        int ret;
 
@@ -234,33 +244,35 @@ SR_PRIV int beaglelogic_tcp_detect(struct dev_context *devc) {
                ret = SR_ERR;
 
        g_free(resp);
+
        return ret;
 }
 
-static int beaglelogic_open(struct dev_context *devc) {
+static int beaglelogic_open(struct dev_context *devc)
+{
        return beaglelogic_tcp_open(devc);
 }
 
-static int beaglelogic_close(struct dev_context *devc) {
-       g_free(devc->address);
-       g_free(devc->port);
-
+static int beaglelogic_close(struct dev_context *devc)
+{
        if (close(devc->socket) < 0)
                return SR_ERR;
 
        return SR_OK;
 }
 
-static int beaglelogic_get_buffersize(struct dev_context *devc) {
+static int beaglelogic_get_buffersize(struct dev_context *devc)
+{
        return beaglelogic_tcp_get_int(devc, "memalloc",
                (int *)&devc->buffersize);
 }
 
-static int beaglelogic_set_buffersize(struct dev_context *devc) {
+static int beaglelogic_set_buffersize(struct dev_context *devc)
+{
        int ret;
        char *resp;
 
-       beaglelogic_tcp_send_cmd(devc, "memalloc %lu", devc->buffersize);
+       beaglelogic_tcp_send_cmd(devc, "memalloc %" PRIu32, devc->buffersize);
        ret = beaglelogic_tcp_get_string(devc, NULL, &resp);
        if (ret == SR_OK && !g_ascii_strncasecmp(resp, "ok", 2))
                ret = SR_OK;
@@ -268,21 +280,28 @@ static int beaglelogic_set_buffersize(struct dev_context *devc) {
                ret = SR_ERR;
 
        g_free(resp);
+
        return ret;
 }
 
-static int beaglelogic_get_samplerate(struct dev_context *devc) {
+static int beaglelogic_get_samplerate(struct dev_context *devc)
+{
        int arg, err;
+
        err = beaglelogic_tcp_get_int(devc, "samplerate", &arg);
+       if (err)
+               return err;
+
        devc->cur_samplerate = arg;
-       return err;
+       return SR_OK;
 }
 
-static int beaglelogic_set_samplerate(struct dev_context *devc) {
+static int beaglelogic_set_samplerate(struct dev_context *devc)
+{
        int ret;
        char *resp;
 
-       beaglelogic_tcp_send_cmd(devc, "samplerate %lu",
+       beaglelogic_tcp_send_cmd(devc, "samplerate %" PRIu32,
                (uint32_t)devc->cur_samplerate);
        ret = beaglelogic_tcp_get_string(devc, NULL, &resp);
        if (ret == SR_OK && !g_ascii_strncasecmp(resp, "ok", 2))
@@ -291,19 +310,22 @@ static int beaglelogic_set_samplerate(struct dev_context *devc) {
                ret = SR_ERR;
 
        g_free(resp);
+
        return ret;
 }
 
-static int beaglelogic_get_sampleunit(struct dev_context *devc) {
+static int beaglelogic_get_sampleunit(struct dev_context *devc)
+{
        return beaglelogic_tcp_get_int(devc, "sampleunit",
                (int *)&devc->sampleunit);
 }
 
-static int beaglelogic_set_sampleunit(struct dev_context *devc) {
+static int beaglelogic_set_sampleunit(struct dev_context *devc)
+{
        int ret;
        char *resp;
 
-       beaglelogic_tcp_send_cmd(devc, "sampleunit %lu", devc->sampleunit);
+       beaglelogic_tcp_send_cmd(devc, "sampleunit %" PRIu32, devc->sampleunit);
        ret = beaglelogic_tcp_get_string(devc, NULL, &resp);
        if (ret == SR_OK && !g_ascii_strncasecmp(resp, "ok", 2))
                ret = SR_OK;
@@ -311,19 +333,22 @@ static int beaglelogic_set_sampleunit(struct dev_context *devc) {
                ret = SR_ERR;
 
        g_free(resp);
+
        return ret;
 }
 
-static int beaglelogic_get_triggerflags(struct dev_context *devc) {
+static int beaglelogic_get_triggerflags(struct dev_context *devc)
+{
        return beaglelogic_tcp_get_int(devc, "triggerflags",
                (int *)&devc->triggerflags);
 }
 
-static int beaglelogic_set_triggerflags(struct dev_context *devc) {
+static int beaglelogic_set_triggerflags(struct dev_context *devc)
+{
        int ret;
        char *resp;
 
-       beaglelogic_tcp_send_cmd(devc, "triggerflags %lu", devc->triggerflags);
+       beaglelogic_tcp_send_cmd(devc, "triggerflags %" PRIu32, devc->triggerflags);
        ret = beaglelogic_tcp_get_string(devc, NULL, &resp);
        if (ret == SR_OK && !g_ascii_strncasecmp(resp, "ok", 2))
                ret = SR_OK;
@@ -331,33 +356,41 @@ static int beaglelogic_set_triggerflags(struct dev_context *devc) {
                ret = SR_ERR;
 
        g_free(resp);
+
        return ret;
 }
 
-static int beaglelogic_get_lasterror(struct dev_context *devc) {
+static int beaglelogic_get_lasterror(struct dev_context *devc)
+{
        devc->last_error = 0;
+
        return SR_OK;
 }
 
-static int beaglelogic_start(struct dev_context *devc) {
+static int beaglelogic_start(struct dev_context *devc)
+{
        beaglelogic_tcp_drain(devc);
+
        return beaglelogic_tcp_send_cmd(devc, "get");
 }
 
-static int beaglelogic_stop(struct dev_context *devc) {
+static int beaglelogic_stop(struct dev_context *devc)
+{
        return beaglelogic_tcp_send_cmd(devc, "close");
 }
 
-static int beaglelogic_get_bufunitsize(struct dev_context *devc) {
+static int beaglelogic_get_bufunitsize(struct dev_context *devc)
+{
        return beaglelogic_tcp_get_int(devc, "bufunitsize",
                (int *)&devc->bufunitsize);
 }
 
-static int beaglelogic_set_bufunitsize(struct dev_context *devc) {
+static int beaglelogic_set_bufunitsize(struct dev_context *devc)
+{
        int ret;
        char *resp;
 
-       beaglelogic_tcp_send_cmd(devc, "bufunitsize %ld", devc->bufunitsize);
+       beaglelogic_tcp_send_cmd(devc, "bufunitsize %" PRIu32, devc->bufunitsize);
        ret = beaglelogic_tcp_get_string(devc, NULL, &resp);
        if (ret == SR_OK && !g_ascii_strncasecmp(resp, "ok", 2))
                ret = SR_OK;
@@ -365,11 +398,14 @@ static int beaglelogic_set_bufunitsize(struct dev_context *devc) {
                ret = SR_ERR;
 
        g_free(resp);
+
        return ret;
 }
 
-static int dummy(struct dev_context *devc) {
-       (devc);
+static int dummy(struct dev_context *devc)
+{
+       (void)devc;
+
        return SR_ERR_NA;
 }