PISingleApplication fix and optimize

This commit is contained in:
2022-05-08 16:35:01 +03:00
parent 9347ed2e55
commit 460519c075

View File

@@ -49,10 +49,10 @@ bool PISingleApplication::isFirst() const {
void PISingleApplication::sendMessage(const PIByteArray & m) { void PISingleApplication::sendMessage(const PIByteArray & m) {
waitFirst(); waitFirst();
PIByteArray ba; PIByteArray ba;
int lm[2] = {0, 0}; int lm[3] = {0, 0, 0};
for (;;) { for (;;) {
shm->read(lm, 8); shm->read(lm, 12);
if (lm[1] == 0) break; if (lm[2] == 0) break;
piMSleep(10); piMSleep(10);
} }
ba << sacnt << sacnt << int(1) << m; ba << sacnt << sacnt << int(1) << m;
@@ -85,10 +85,12 @@ void PISingleApplication::run() {
int st_[2] = {sacnt, sacnt}; int st_[2] = {sacnt, sacnt};
shm->write(st_, 8); shm->write(st_, 8);
//piCoutObj << "write" << sacnt; //piCoutObj << "write" << sacnt;
readed = shm->readAll(); int ri[3] = {0, 0, 0};
int t1(0), t2(0), nm(0); const int hdr_sz = sizeof(int) * 3;
readed >> t1 >> t2 >> nm; shm->read(ri, hdr_sz);
if (nm != 0 && t1 == t2) { if (ri[2] != 0 && ri[0] == ri[1]) {
readed.resize(shm->size() - hdr_sz);
shm->read(readed.data(), readed.size(), hdr_sz);
PIByteArray msg; PIByteArray msg;
readed >> msg; readed >> msg;
if (!msg.isEmpty()) { if (!msg.isEmpty()) {