]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/openbench-logic-sniffer/api.c
serial: rename variable to reflect it's related to libserialport
[libsigrok.git] / src / hardware / openbench-logic-sniffer / api.c
index 5e959507efa54515052dab98c46bf46d3be3492a..792549cb9f6c6cd5f4930c7c3da26317b94d7436 100644 (file)
@@ -135,7 +135,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
 
        g_usleep(RESPONSE_DELAY_US);
 
-       if (sp_input_waiting(serial->data) == 0) {
+       if (sp_input_waiting(serial->sp_data) == 0) {
                sr_dbg("Didn't get any reply.");
                return NULL;
        }
@@ -159,7 +159,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
 
        g_usleep(RESPONSE_DELAY_US);
 
-       if (sp_input_waiting(serial->data) != 0) {
+       if (sp_input_waiting(serial->sp_data) != 0) {
                /* Got metadata. */
                sdi = get_metadata(serial);
        } else {
@@ -464,12 +464,28 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
        /* Send sample limit and pre/post-trigger capture ratio. */
        sr_dbg("Setting sample limit %d, trigger point at %d",
                        (readcount - 1) * 4, (delaycount - 1) * 4);
-       arg[0] = ((readcount - 1) & 0xff);
-       arg[1] = ((readcount - 1) & 0xff00) >> 8;
-       arg[2] = ((delaycount - 1) & 0xff);
-       arg[3] = ((delaycount - 1) & 0xff00) >> 8;
-       if (send_longcommand(serial, CMD_CAPTURE_SIZE, arg) != SR_OK)
-               return SR_ERR;
+
+       if (devc->max_samples > 256 * 1024) {
+               arg[0] = ((readcount - 1) & 0xff);
+               arg[1] = ((readcount - 1) & 0xff00) >> 8;
+               arg[2] = ((readcount - 1) & 0xff0000) >> 16;
+               arg[3] = ((readcount - 1) & 0xff000000) >> 24;
+               if (send_longcommand(serial, CMD_CAPTURE_READCOUNT, arg) != SR_OK)
+                       return SR_ERR;
+               arg[0] = ((delaycount - 1) & 0xff);
+               arg[1] = ((delaycount - 1) & 0xff00) >> 8;
+               arg[2] = ((delaycount - 1) & 0xff0000) >> 16;
+               arg[3] = ((delaycount - 1) & 0xff000000) >> 24;
+               if (send_longcommand(serial, CMD_CAPTURE_DELAYCOUNT, arg) != SR_OK)
+                       return SR_ERR;
+       } else {
+               arg[0] = ((readcount - 1) & 0xff);
+               arg[1] = ((readcount - 1) & 0xff00) >> 8;
+               arg[2] = ((delaycount - 1) & 0xff);
+               arg[3] = ((delaycount - 1) & 0xff00) >> 8;
+               if (send_longcommand(serial, CMD_CAPTURE_SIZE, arg) != SR_OK)
+                       return SR_ERR;
+       }
 
        /* Flag register. */
        sr_dbg("Setting intpat %s, extpat %s, RLE %s, noise_filter %s, demux %s",