/*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrok project.
*
* Copyright (C) 2012 Bert Vermeulen <bert@biot.com>
*
char *e, *u;
gboolean is_oor;
- (void)sdi;
-
if (strcmp(tokens[0], "QM") || !tokens[1])
return NULL;
while(*e && *e == ' ')
e++;
- /* TODO: Check malloc return value. */
- analog = g_try_malloc0(sizeof(struct sr_datafeed_analog));
+ if (!(analog = g_try_malloc0(sizeof(struct sr_datafeed_analog))))
+ return NULL;
+ if (!(analog->data = g_try_malloc(sizeof(float))))
+ return NULL;
+ analog->probes = sdi->probes;
analog->num_samples = 1;
- /* TODO: Check malloc return value. */
- analog->data = g_try_malloc(sizeof(float));
if (is_oor)
*analog->data = NAN;
else
float fvalue;
char *eptr;
- (void)sdi;
-
if (!tokens[1])
return NULL;
return NULL;
}
- /* TODO: Check malloc return value. */
- analog = g_try_malloc0(sizeof(struct sr_datafeed_analog));
+ if (!(analog = g_try_malloc0(sizeof(struct sr_datafeed_analog))))
+ return NULL;
+ if (!(analog->data = g_try_malloc(sizeof(float))))
+ return NULL;
+ analog->probes = sdi->probes;
analog->num_samples = 1;
- /* TODO: Check malloc return value. */
- analog->data = g_try_malloc(sizeof(float));
*analog->data = fvalue;
analog->mq = -1;
fvalue = 1.0;
}
+ analog.probes = sdi->probes;
analog.num_samples = 1;
analog.data = &fvalue;
analog.mq = devc->mq;
static void handle_line(const struct sr_dev_inst *sdi)
{
struct dev_context *devc;
+ struct sr_serial_dev_inst *serial;
struct sr_datafeed_packet packet;
struct sr_datafeed_analog *analog;
int num_tokens, n, i;
char cmd[16], **tokens;
devc = sdi->priv;
+ serial = sdi->conn;
sr_spew("Received line '%s' (%d).", devc->buf, devc->buflen);
if (devc->buflen == 1) {
/* Slip the request in now, before the main
* timer loop asks for metadata again. */
n = sprintf(cmd, "QM %d\r", devc->meas_type);
- if (serial_write(devc->serial, cmd, n) == -1)
+ if (serial_write(serial, cmd, n) == -1)
sr_err("Unable to send QM (measurement): %s.",
strerror(errno));
}
{
struct sr_dev_inst *sdi;
struct dev_context *devc;
+ struct sr_serial_dev_inst *serial;
int len;
int64_t now, elapsed;
if (!(devc = sdi->priv))
return TRUE;
+ serial = sdi->conn;
if (revents == G_IO_IN) {
/* Serial data arrived. */
while(FLUKEDMM_BUFSIZE - devc->buflen - 1 > 0) {
- len = serial_read(devc->serial, devc->buf + devc->buflen, 1);
+ len = serial_read(serial, devc->buf + devc->buflen, 1);
if (len < 1)
break;
devc->buflen++;
}
}
- if (devc->num_samples >= devc->limit_samples) {
+ if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
sdi->driver->dev_acquisition_stop(sdi, cb_data);
return TRUE;
}
* out-of-sync or temporary disconnect issues. */
if ((devc->expect_response == FALSE && elapsed > devc->profile->poll_period)
|| elapsed > devc->profile->timeout) {
- if (serial_write(devc->serial, "QM\r", 3) == -1)
+ if (serial_write(serial, "QM\r", 3) == -1)
sr_err("Unable to send QM: %s.", strerror(errno));
devc->cmd_sent_at = now;
devc->expect_response = TRUE;