X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fbeaglelogic%2Fprotocol.c;h=a07bb203d1526369190b1db7bfe0764215563542;hb=55462b8ba9f48931de9b9a7bfbc182a1d113b3b5;hp=05dcccf1ffac25bc0a1f0e3784e150f94bd68c7e;hpb=fe5a735553470fe372ff1c12eb55398bd0f098b8;p=libsigrok.git
diff --git a/src/hardware/beaglelogic/protocol.c b/src/hardware/beaglelogic/protocol.c
index 05dcccf1..a07bb203 100644
--- a/src/hardware/beaglelogic/protocol.c
+++ b/src/hardware/beaglelogic/protocol.c
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-#include "protocol.h"
#include
#include
#include
#include
+#include "protocol.h"
/* Define data packet size independent of packet (bufunitsize bytes) size
* from the BeagleLogic kernel module */
@@ -40,6 +40,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 +68,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);