]> sigrok.org Git - libsigrok.git/blobdiff - hardware/rigol-ds/api.c
Create & use new sr_usbtmc_dev_inst for Rigol DS driver.
[libsigrok.git] / hardware / rigol-ds / api.c
index 0f997ebb01da02734b4a83b614c7ac6d15641aca..31342c23321280add9dd87be37ff033009ae713b 100644 (file)
@@ -217,7 +217,7 @@ static int probe_port(const char *port, GSList **devices)
 {
        struct dev_context *devc;
        struct sr_dev_inst *sdi;
-       struct sr_serial_dev_inst *serial;
+       struct sr_usbtmc_dev_inst *usbtmc;
        struct sr_probe *probe;
        unsigned int i;
        int len, num_tokens;
@@ -227,17 +227,17 @@ static int probe_port(const char *port, GSList **devices)
        gchar **tokens, *channel_name;
 
        *devices = NULL;
-       if (!(serial = sr_serial_dev_inst_new(port, NULL)))
+       if (!(usbtmc = sr_usbtmc_dev_inst_new(port)))
                return SR_ERR_MALLOC;
 
-       if (serial_open(serial, SERIAL_RDWR) != SR_OK)
+       if ((usbtmc->fd = open(usbtmc->device, O_RDWR)) < 0)
                return SR_ERR;
-       len = serial_write(serial, "*IDN?", 5);
-       len = serial_read(serial, buf, sizeof(buf));
-       if (serial_close(serial) != SR_OK)
+       len = write(usbtmc->fd, "*IDN?", 5);
+       len = read(usbtmc->fd, buf, sizeof(buf));
+       if (close(usbtmc->fd) < 0)
                return SR_ERR;
 
-       sr_serial_dev_inst_free(serial);
+       sr_usbtmc_dev_inst_free(usbtmc);
 
        if (len == 0)
                return SR_ERR_NA;
@@ -277,10 +277,10 @@ static int probe_port(const char *port, GSList **devices)
 
        g_strfreev(tokens);
 
-       if (!(sdi->conn = sr_serial_dev_inst_new(port, NULL)))
+       if (!(sdi->conn = sr_usbtmc_dev_inst_new(port)))
                return SR_ERR_MALLOC;
        sdi->driver = di;
-       sdi->inst_type = SR_INST_SERIAL;
+       sdi->inst_type = SR_INST_USBTMC;
 
        if (!(devc = g_try_malloc0(sizeof(struct dev_context))))
                return SR_ERR_MALLOC;
@@ -399,8 +399,9 @@ static GSList *dev_list(void)
 
 static int dev_open(struct sr_dev_inst *sdi)
 {
+       struct sr_usbtmc_dev_inst *usbtmc = sdi->conn;
 
-       if (serial_open(sdi->conn, SERIAL_RDWR) != SR_OK)
+       if ((usbtmc->fd = open(usbtmc->device, O_RDWR)) < 0)
                return SR_ERR;
 
        if (rigol_ds_get_dev_cfg(sdi) != SR_OK)
@@ -413,11 +414,12 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_serial_dev_inst *serial;
+       struct sr_usbtmc_dev_inst *usbtmc;
 
-       serial = sdi->conn;
-       if (serial && serial->fd != -1) {
-               serial_close(serial);
+       usbtmc = sdi->conn;
+       if (usbtmc && usbtmc->fd != -1) {
+               close(usbtmc->fd);
+               usbtmc->fd = -1;
                sdi->status = SR_ST_INACTIVE;
        }
 
@@ -737,7 +739,7 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
 
 static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
 {
-       struct sr_serial_dev_inst *serial;
+       struct sr_usbtmc_dev_inst *usbtmc;
        struct dev_context *devc;
        struct sr_probe *probe;
        GSList *l;
@@ -746,7 +748,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       serial = sdi->conn;
+       usbtmc = sdi->conn;
        devc = sdi->priv;
 
        if (devc->data_source == DATA_SOURCE_LIVE) {
@@ -792,7 +794,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
        if (!devc->enabled_analog_probes && !devc->enabled_digital_probes)
                return SR_ERR;
 
-       sr_source_add(serial->fd, G_IO_IN, 50, rigol_ds_receive, (void *)sdi);
+       sr_source_add(usbtmc->fd, G_IO_IN, 50, rigol_ds_receive, (void *)sdi);
 
        /* Send header packet to the session bus. */
        std_session_send_df_header(cb_data, LOG_PREFIX);
@@ -843,7 +845,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
 static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
 {
        struct dev_context *devc;
-       struct sr_serial_dev_inst *serial;
+       struct sr_usbtmc_dev_inst *usbtmc;
 
        (void)cb_data;
 
@@ -858,8 +860,8 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
        g_slist_free(devc->enabled_digital_probes);
        devc->enabled_analog_probes = NULL;
        devc->enabled_digital_probes = NULL;
-       serial = sdi->conn;
-       sr_source_remove(serial->fd);
+       usbtmc = sdi->conn;
+       sr_source_remove(usbtmc->fd);
 
        return SR_OK;
 }