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