* @internal
*/
+#include <config.h>
#include <math.h>
#include <string.h>
#include "protocol.h"
static void send_value(struct sr_dev_inst *sdi)
{
struct dev_context *devc;
- struct sr_datafeed_analog analog;
+ struct sr_datafeed_analog_old analog;
struct sr_datafeed_packet packet;
devc = sdi->priv;
- memset(&analog, 0, sizeof(struct sr_datafeed_analog));
+ memset(&analog, 0, sizeof(struct sr_datafeed_analog_old));
analog.channels = sdi->channels;
analog.num_samples = 1;
analog.mq = devc->mq;
analog.data = &devc->value;
memset(&packet, 0, sizeof(struct sr_datafeed_packet));
- packet.type = SR_DF_ANALOG;
+ packet.type = SR_DF_ANALOG_OLD;
packet.payload = &analog;
- sr_session_send(devc->cb_data, &packet);
+ sr_session_send(sdi, &packet);
devc->num_samples++;
}
* @param buf Pointer to array of 14 data bytes.
* @param[in] raw Write only data bytes, no interpretation.
*/
-void dump_msg14(guchar *buf, gboolean raw)
+static void dump_msg14(guchar *buf, gboolean raw)
{
if (!buf)
return;
}
if (devc->buf[1] == 0) { /* Error msg from device! */
- retc = SR_ERR_ARG;
switch (devc->buf[2]) {
case 1: /* Not used */
sr_err("Device: Illegal error code!");
/* If number of samples or time limit reached, stop acquisition. */
if (devc->limit_samples && (devc->num_samples >= devc->limit_samples))
- sdi->driver->dev_acquisition_stop(sdi, cb_data);
+ sdi->driver->dev_acquisition_stop(sdi);
if (devc->limit_msec) {
elapsed_s = g_timer_elapsed(devc->elapsed_msec, NULL);
if ((elapsed_s * 1000) >= devc->limit_msec)
- sdi->driver->dev_acquisition_stop(sdi, cb_data);
+ sdi->driver->dev_acquisition_stop(sdi);
}
return TRUE;
/* If number of samples or time limit reached, stop acquisition. */
if (devc->limit_samples && (devc->num_samples >= devc->limit_samples))
- sdi->driver->dev_acquisition_stop(sdi, cb_data);
+ sdi->driver->dev_acquisition_stop(sdi);
if (devc->limit_msec) {
elapsed_s = g_timer_elapsed(devc->elapsed_msec, NULL);
if ((elapsed_s * 1000) >= devc->limit_msec)
- sdi->driver->dev_acquisition_stop(sdi, cb_data);
+ sdi->driver->dev_acquisition_stop(sdi);
}
/* Request next data set, if required */
* @param[in] params Further parameters (9 bytes)
* @param[out] buf Buffer to create msg in (42 bytes).
*/
-void create_cmd_14(guchar addr, guchar func, guchar *params, guchar *buf)
+static void create_cmd_14(guchar addr, guchar func, guchar *params, guchar *buf)
{
uint8_t dta[GMC_REPLY_SIZE]; /* Unencoded message */
int cnt;
devc->cmd_idx = 0;
create_cmd_14(devc->addr, 8, params, msg);
devc->req_sent_at = g_get_monotonic_time();
- if (serial_write_blocking(serial, msg, sizeof(msg), 0) < (int)sizeof(msg)) {
+ if (serial_write_blocking(serial, msg, sizeof(msg),
+ serial_timeout(serial, sizeof(msg))) < (int)sizeof(msg)) {
return SR_ERR;
}
if (power_on) {
sr_info("Write some data and wait 3s to turn on powered off device...");
- if (serial_write_blocking(serial, msg, sizeof(msg), 0) < 0)
+ if (serial_write_blocking(serial, msg, sizeof(msg),
+ serial_timeout(serial, sizeof(msg))) < 0)
return SR_ERR;
g_usleep(1 * 1000 * 1000);
- if (serial_write_blocking(serial, msg, sizeof(msg), 0) < 0)
+ if (serial_write_blocking(serial, msg, sizeof(msg),
+ serial_timeout(serial, sizeof(msg))) < 0)
return SR_ERR;
g_usleep(1 * 1000 * 1000);
- if (serial_write_blocking(serial, msg, sizeof(msg), 0) < 0)
+ if (serial_write_blocking(serial, msg, sizeof(msg),
+ serial_timeout(serial, sizeof(msg))) < 0)
return SR_ERR;
g_usleep(1 * 1000 * 1000);
serial_flush(serial);
/* Write message and wait for reply */
devc->req_sent_at = g_get_monotonic_time();
- if (serial_write_blocking(serial, msg, sizeof(msg), 0) < (int)sizeof(msg)) {
+ if (serial_write_blocking(serial, msg, sizeof(msg),
+ serial_timeout(serial, sizeof(msg))) < (int)sizeof(msg)) {
return SR_ERR;
}
params[0] = 5;
params[1] = 5;
create_cmd_14(devc->addr, 6, params, msg);
- if (serial_write_blocking(sdi->conn, msg, sizeof(msg), 0) < 0)
+ if (serial_write_blocking(sdi->conn, msg, sizeof(msg),
+ serial_timeout(sdi->conn, sizeof(msg))) < 0)
return SR_ERR;
else
g_usleep(2 * 1000 * 1000); /* Wait to ensure transfer before interface switched off. */