PIPacketExtractor теперь работает
This commit is contained in:
34
main.cpp
34
main.cpp
@@ -1,14 +1,36 @@
|
||||
#include "pip.h"
|
||||
#include "pibinarystream.h"
|
||||
#include "pitextstream.h"
|
||||
#include "piiostream.h"
|
||||
//#include "stream.h"
|
||||
//#include "ccm_.h"
|
||||
//#include "pisystemmonitor_.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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user