return SR_OK;
}
+static int scpi_serial_connection_id(struct sr_scpi_dev_inst *scpi,
+ char **connection_id)
+{
+ struct scpi_serial *sscpi = scpi->priv;
+ struct sr_serial_dev_inst *serial = sscpi->serial;
+
+ *connection_id = g_strdup(serial->port);
+
+ return SR_OK;
+}
+
static int scpi_serial_source_add(struct sr_session *session, void *priv,
int events, int timeout, sr_receive_data_callback cb, void *cb_data)
{
static int scpi_serial_send(void *priv, const char *command)
{
- int len, result, written;
+ int result;
struct scpi_serial *sscpi = priv;
struct sr_serial_dev_inst *serial = sscpi->serial;
- len = strlen(command);
- written = 0;
- while (written < len) {
- result = serial_write_nonblocking(serial,
- command + written, len - written);
- if (result < 0) {
- sr_err("Error while sending SCPI command: '%s'.", command);
- return SR_ERR;
- }
- written += result;
+ result = serial_write_blocking(serial, command, strlen(command), 0);
+ if (result < 0) {
+ sr_err("Error while sending SCPI command '%s': %d.",
+ command, result);
+ return SR_ERR;
}
sr_spew("Successfully sent SCPI command: '%s'.", command);
return ret;
if (ret > 0) {
- sr_spew("Read %d bytes into buffer.", ret);
-
if (buf[ret - 1] == '\n') {
sscpi->got_newline = TRUE;
sr_spew("Received terminator");
.scan = scpi_serial_scan,
.dev_inst_new = scpi_serial_dev_inst_new,
.open = scpi_serial_open,
+ .connection_id = scpi_serial_connection_id,
.source_add = scpi_serial_source_add,
.source_remove = scpi_serial_source_remove,
.send = scpi_serial_send,