55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
#include <pip.h>
|
|
|
|
class Prot: public PIProtocol {
|
|
public:
|
|
Prot(): PIProtocol() {
|
|
setName("test");
|
|
ba.resize(1024);
|
|
setReceiverAddress("127.0.0.1", 3003, true);
|
|
setReceiverData(ba.data(), ba.size_s());
|
|
setSenderAddress("127.0.0.2", 3003, true);
|
|
setSenderData(ba.data(), ba.size_s());
|
|
setExpectedFrequency(100);
|
|
//setSenderFrequency();
|
|
//startReceive(100);
|
|
startSend(10);
|
|
};
|
|
PIByteArray ba;
|
|
};
|
|
|
|
class MProt: public PIMultiProtocol {
|
|
public:
|
|
MProt() {cor = incor = 0;}
|
|
|
|
int cor, incor;
|
|
|
|
virtual void received(PIProtocol * prot, bool corrected, char * data, int size) {if (corrected) cor++; else incor++; if (prot->name() == "test" && corrected) prot->send();}
|
|
|
|
|
|
};
|
|
|
|
PIConsole c(false);
|
|
//Prot p;
|
|
|
|
int main(int argc, char * argv[]) {
|
|
MProt mp;
|
|
Prot p;
|
|
PIRepeater r("protocols.conf", "r", 1024);
|
|
mp.addProtocol(p);
|
|
c.addVariable("rec : " + mp[0]->receiverDeviceName() + ":", mp[0]->receiverDeviceState_ptr());
|
|
c.addVariable("send: " + mp[0]->senderDeviceName() + ":", mp[0]->senderDeviceState_ptr());
|
|
c.addVariable("freq", mp[0]->immediateFrequency_ptr());
|
|
c.addVariable("sent ", mp[0]->sendCount_ptr());
|
|
c.addVariable("ok ", mp[0]->receiveCount_ptr());
|
|
c.addVariable("wrong", mp[0]->wrongCount_ptr());
|
|
c.addEmptyLine();
|
|
c.addVariable("mp_corr", &mp.cor);
|
|
c.addVariable("mp_incr", &mp.incor);
|
|
c.addVariable(r.firstChannelName() + ", rec ", r.receiveCount_ptr());
|
|
c.addVariable(r.secondChannelName() + ", send", r.sendCount_ptr());
|
|
c.enableExitCapture();
|
|
mp.start();
|
|
c.start(false);
|
|
c.waitForFinish();
|
|
};
|