*/
#include "protocol.h"
+#include <libserialport.h>
extern SR_PRIV struct sr_dev_driver ols_driver_info;
static struct sr_dev_driver *di = &ols_driver_info;
sr_dbg("Sending cmd 0x%.2x.", command);
buf[0] = command;
- if (serial_write(serial, buf, 1) != 1)
+ if (serial_write_blocking(serial, buf, 1) != 1)
return SR_ERR;
return SR_OK;
buf[2] = (data & 0xff0000) >> 16;
buf[3] = (data & 0xff00) >> 8;
buf[4] = data & 0xff;
- if (serial_write(serial, buf, 5) != 5)
+ if (serial_write_blocking(serial, buf, 5) != 5)
return SR_ERR;
return SR_OK;
key = 0xff;
while (key) {
- if (serial_read(serial, &key, 1) != 1 || key == 0x00)
+ if (serial_read_blocking(serial, &key, 1) != 1 || key == 0x00)
break;
type = key >> 5;
token = key & 0x1f;
case 0:
/* NULL-terminated string */
tmp_str = g_string_new("");
- while (serial_read(serial, &tmp_c, 1) == 1 && tmp_c != '\0')
+ while (serial_read_blocking(serial, &tmp_c, 1) == 1 && tmp_c != '\0')
g_string_append_c(tmp_str, tmp_c);
sr_dbg("Got metadata key 0x%.2x value '%s'.",
key, tmp_str->str);
break;
case 1:
/* 32-bit unsigned integer */
- if (serial_read(serial, &tmp_int, 4) != 4)
+ if (serial_read_blocking(serial, &tmp_int, 4) != 4)
break;
tmp_int = reverse32(tmp_int);
sr_dbg("Got metadata key 0x%.2x value 0x%.8x.",
break;
case 2:
/* 8-bit unsigned integer */
- if (serial_read(serial, &tmp_c, 1) != 1)
+ if (serial_read_blocking(serial, &tmp_c, 1) != 1)
break;
sr_dbg("Got metadata key 0x%.2x value 0x%.2x.",
key, tmp_c);
int num_channels, offset, j;
unsigned int i;
unsigned char byte;
+ int serial_fd;
drvc = di->priv;
sdi = l->data;
devc = sdi->priv;
serial = sdi->conn;
- if (serial->fd == fd)
+ sp_get_port_handle(serial->data, &serial_fd);
+ if (serial_fd == fd)
break;
devc = NULL;
}
* longer than it takes to send a byte, that means it's
* finished. We'll double that to 30ms to be sure...
*/
- sr_source_remove(fd);
- sr_source_add(fd, G_IO_IN, 30, ols_receive_data, cb_data);
+ serial_source_remove(serial);
+ serial_source_add(serial, G_IO_IN, 30, ols_receive_data, cb_data);
devc->raw_sample_buf = g_try_malloc(devc->limit_samples * 4);
if (!devc->raw_sample_buf) {
sr_err("Sample buffer malloc failed.");
}
if (revents == G_IO_IN && devc->num_samples < devc->limit_samples) {
- if (serial_read(serial, &byte, 1) != 1)
+ if (serial_read_nonblocking(serial, &byte, 1) != 1)
return FALSE;
/* Ignore it if we've read enough. */