PISingleApplication fix and optimize
This commit is contained in:
@@ -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()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user