#include 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(); };