Files
pip/main.cpp
2022-07-28 17:02:33 +03:00

37 lines
967 B
C++

#include "pip.h"
using namespace PICoutManipulators;
int main(int argc, char * argv[]) {
PIByteArray ba = PIByteArray::fromHex("AA11FFAA22EEAA33FF");
PIIOByteArray b;
b.open(ba);
PIPacketExtractor p(&b);
p.setSplitMode(PIPacketExtractor::Header);
p.setHeader(PIByteArray::fromHex("AABB"));
// p.setFooter(PIByteArray::fromHex("AA"));
p.setPayloadSize(2);
p.setThreadedReadSlot([](const uchar * data, int size, void * d) {
piCout << size;
return true;
});
p.setHeaderCheckSlot([](const uchar * src, const uchar * rec, int size) {
if (*src == *rec) {
if (rec[1] == 0x11) return 1;
if (rec[1] == 0x22) 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;
}