diff --git a/src_main/system/pisingleapplication.cpp b/src_main/system/pisingleapplication.cpp index 386edbdb..ccd25a03 100644 --- a/src_main/system/pisingleapplication.cpp +++ b/src_main/system/pisingleapplication.cpp @@ -55,7 +55,7 @@ void PISingleApplication::sendMessage(const PIByteArray & m) { if (lm[1] == 0) break; piMSleep(10); } - ba << sacnt << int(1) << m; + ba << sacnt << sacnt << int(1) << m; shm->write(ba); } @@ -82,20 +82,21 @@ void PISingleApplication::begin() { void PISingleApplication::run() { if (!first) return; ++sacnt; - shm->write(&sacnt, 4); + int st_[2] = {sacnt, sacnt}; + shm->write(st_, 8); piCoutObj << "write" << sacnt; readed = shm->readAll(); - int t(0), nm(0); - readed >> t >> nm; - if (nm != 0) { + int t1(0), t2(0), nm(0); + readed >> t1 >> t2 >> nm; + if (nm != 0 && t1 == t2) { PIByteArray msg; readed >> msg; if (!msg.isEmpty()) { messageReceived(msg); piCoutObj << "message" << msg; } - int wi[2] = {sacnt, sacnt}; - shm->write(wi, 8); + int wi[3] = {sacnt, sacnt, 0}; + shm->write(wi, 12); } }