#include "pip.h" using namespace PICoutManipulators; int main(int argc, char * argv[]) { PIByteArray ba = PIByteArray::fromHex("AA1122BB11233AA4455"); PIIOByteArray b; b.open(ba); PIPacketExtractor p(&b); p.setSplitMode(PIPacketExtractor::Header); p.setHeader(PIByteArray::fromHex("00")); p.setFooter(PIByteArray::fromHex("AA")); p.setPayloadSize(2); p.setThreadedReadSlot([](const uchar * data, int size, void * d) { return true; }); p.setHeaderCheckSlot([](const uchar * src, const uchar * rec, int size)->int { if (*src == *rec) { if (rec[0] == 0xAA) return 2; if (rec[0] == 0xBB) return 3; } return -1; }); // p.setPayloadCheckSlot([](const uchar * data, int size) { // return data[1] == 0xFF; // }); CONNECTL(&p, packetReceived, ([](const uchar * data, int size){ piCout << PIByteArray(data, size).toHex(); })); p.startThreadedRead(); piMSleep(100); p.stop(); return 0; }