X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fgwinstek-gpd%2Fprotocol.c;h=6038c637ee9e751df3888723ae82d41111384478;hb=e2bd01f4a7cd7a8057e03123d2ef1782b2d6c1d4;hp=ba69fed4a1fb052d22a3fab462bd24f64f25ee50;hpb=eaa8c6597b880d018731c36922ed4013e34813e1;p=libsigrok.git diff --git a/src/hardware/gwinstek-gpd/protocol.c b/src/hardware/gwinstek-gpd/protocol.c index ba69fed4..6038c637 100644 --- a/src/hardware/gwinstek-gpd/protocol.c +++ b/src/hardware/gwinstek-gpd/protocol.c @@ -53,7 +53,7 @@ SR_PRIV int gpd_receive_reply(struct sr_serial_dev_inst *serial, char *buf, gint64 start, remaining; const int timeout_ms = 100; - if (!serial || (lines <= 0) || !buf || (buflen <= 0)) + if (!serial || !buf || (buflen <= 0)) return SR_ERR_ARG; start = g_get_monotonic_time(); @@ -126,6 +126,9 @@ SR_PRIV int gpd_receive_data(int fd, int revents, void *cb_data) g_free(reply_esc); } else { for (i = 0; i < devc->model->num_channels; i++) { + packet.type = SR_DF_ANALOG; + packet.payload = &analog; + reply[0] = '\0'; gpd_receive_reply(serial, reply, sizeof(reply)); if (sscanf(reply, "%f", &devc->config[i].output_voltage_max) != 1) { @@ -134,12 +137,8 @@ SR_PRIV int gpd_receive_data(int fd, int revents, void *cb_data) return TRUE; } - sr_analog_init(&analog, &encoding, &meaning, &spec, 0); - /* Send the value forward. */ - packet.type = SR_DF_ANALOG; - packet.payload = &analog; - + sr_analog_init(&analog, &encoding, &meaning, &spec, 0); analog.num_samples = 1; ch = g_slist_nth_data(sdi->channels, i); analog.meaning->channels = @@ -160,12 +159,8 @@ SR_PRIV int gpd_receive_data(int fd, int revents, void *cb_data) return TRUE; } - sr_analog_init(&analog, &encoding, &meaning, &spec, 0); - /* Send the value forward. */ - packet.type = SR_DF_ANALOG; - packet.payload = &analog; - + sr_analog_init(&analog, &encoding, &meaning, &spec, 0); analog.num_samples = 1; ch = g_slist_nth_data(sdi->channels, i); analog.meaning->channels =