]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/beaglelogic/protocol.c
Consistently use SR_PACKAGE_VERSION instead of VERSION
[libsigrok.git] / src / hardware / beaglelogic / protocol.c
index 05dcccf1ffac25bc0a1f0e3784e150f94bd68c7e..e1f6009ff82149fd5ffd4bf9ad7d16b313ffdbf7 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "protocol.h"
-#include <errno.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "protocol.h"
 
 /* Define data packet size independent of packet (bufunitsize bytes) size
  * from the BeagleLogic kernel module */
@@ -40,6 +39,7 @@ SR_PRIV int beaglelogic_receive_data(int fd, int revents, void *cb_data)
        struct sr_datafeed_logic logic;
 
        int trigger_offset;
+       int pre_trigger_samples;
        uint32_t packetsize;
        uint64_t bytes_remaining;
 
@@ -67,8 +67,9 @@ SR_PRIV int beaglelogic_receive_data(int fd, int revents, void *cb_data)
                } else {
                        /* Check for trigger */
                        trigger_offset = soft_trigger_logic_check(devc->stl,
-                                       logic.data, packetsize, NULL);
+                                       logic.data, packetsize, &pre_trigger_samples);
                        if (trigger_offset > -1) {
+                               devc->bytes_read += pre_trigger_samples * logic.unitsize;
                                trigger_offset *= logic.unitsize;
                                logic.length = MIN(packetsize - trigger_offset,
                                                bytes_remaining);