]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/link-mso19/protocol.c
scpi-pps: don't break SCPI devices when scanning for HP-IB devices
[libsigrok.git] / src / hardware / link-mso19 / protocol.c
index 8d4f9056d6a51a6ea29a738abac2ba19bcbbd2b8..8721ec2b0c4761e4abf675de1e0a722821575057 100644 (file)
@@ -30,8 +30,6 @@
 static const char mso_head[] = { 0x40, 0x4c, 0x44, 0x53, 0x7e };
 static const char mso_foot[] = { 0x7e };
 
-extern SR_PRIV struct sr_dev_driver link_mso19_driver_info;
-
 SR_PRIV int mso_send_control_message(struct sr_serial_dev_inst *serial,
                                     uint16_t payload[], int n)
 {
@@ -50,8 +48,8 @@ SR_PRIV int mso_send_control_message(struct sr_serial_dev_inst *serial,
        p += sizeof(mso_head);
 
        for (i = 0; i < n; i++) {
-               *(uint16_t *) p = g_htons(payload[i]);
-               p += 2;
+               WB16(p, payload[i]);
+               p += sizeof(uint16_t);
        }
        memcpy(p, mso_foot, sizeof(mso_foot));
 
@@ -102,7 +100,7 @@ SR_PRIV int mso_configure_trigger(const struct sr_dev_inst *sdi)
                trigger_config |= 0x20; //DSO level trigger & width < trigger_width
                break;
        case 2:
-               trigger_config |= 0x40; //DSO level trigger & width >= trigger_width 
+               trigger_config |= 0x40; //DSO level trigger & width >= trigger_width
                break;
        case 3:
                trigger_config |= 0x60; //LA combination trigger
@@ -291,7 +289,7 @@ SR_PRIV void stop_acquisition(const struct sr_dev_inst *sdi)
        devc = sdi->priv;
        serial_source_remove(sdi->session, devc->serial);
 
-       std_session_send_df_end(sdi, LOG_PREFIX);
+       std_session_send_df_end(sdi);
 }
 
 SR_PRIV int mso_clkrate_out(struct sr_serial_dev_inst *serial, uint16_t val)
@@ -351,25 +349,10 @@ SR_PRIV int mso_receive_data(int fd, int revents, void *cb_data)
 {
        struct sr_datafeed_packet packet;
        struct sr_datafeed_logic logic;
-       struct sr_dev_inst *sdi;
-       GSList *l;
+       struct sr_dev_inst *sdi = cb_data;
+       struct dev_context *devc = sdi->priv;
        int i;
 
-       struct drv_context *drvc = di->context;
-
-       /* Find this device's devc struct by its fd. */
-       struct dev_context *devc = NULL;
-       for (l = drvc->instances; l; l = l->next) {
-               sdi = l->data;
-               devc = sdi->priv;
-               if (devc->serial->fd == fd)
-                       break;
-               devc = NULL;
-       }
-       if (!devc)
-               /* Shouldn't happen. */
-               return TRUE;
-
        (void)revents;
 
        uint8_t in[1024];
@@ -422,7 +405,7 @@ SR_PRIV int mso_receive_data(int fd, int revents, void *cb_data)
 
        if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
                sr_info("Requested number of samples reached.");
-               sdi->driver->dev_acquisition_stop(sdi);
+               sr_dev_acquisition_stop(sdi);
        }
 
        return TRUE;