add a way to detect off devices
This commit is contained in:
parent
d552b51c0d
commit
271830422a
@ -95,11 +95,14 @@ ReturnValue_t SusPolling::readReceivedMessage(CookieIF* cookie, uint8_t** buffer
|
|||||||
if (susIdx < 0) {
|
if (susIdx < 0) {
|
||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
if(susDevs[susIdx].replyResult != returnvalue::OK) {
|
||||||
|
return susDevs[susIdx].replyResult;
|
||||||
|
}
|
||||||
MutexGuard mg(ipcLock);
|
MutexGuard mg(ipcLock);
|
||||||
std::memcpy(&susDevs[susIdx].readerReply, &susDevs[susIdx].ownReply, sizeof(acs::SusReply));
|
std::memcpy(&susDevs[susIdx].readerReply, &susDevs[susIdx].ownReply, sizeof(acs::SusReply));
|
||||||
*buffer = reinterpret_cast<uint8_t*>(&susDevs[susIdx].readerReply);
|
*buffer = reinterpret_cast<uint8_t*>(&susDevs[susIdx].readerReply);
|
||||||
*size = sizeof(acs::SusReply);
|
*size = sizeof(acs::SusReply);
|
||||||
return OK;
|
return susDevs[susIdx].replyResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t SusPolling::handleSusPolling() {
|
ReturnValue_t SusPolling::handleSusPolling() {
|
||||||
@ -164,11 +167,18 @@ ReturnValue_t SusPolling::handleSusPolling() {
|
|||||||
}
|
}
|
||||||
MutexGuard mg(ipcLock);
|
MutexGuard mg(ipcLock);
|
||||||
susDevs[idx].ownReply.tempRaw = ((rawReply[0] & 0x0f) << 8) | rawReply[1];
|
susDevs[idx].ownReply.tempRaw = ((rawReply[0] & 0x0f) << 8) | rawReply[1];
|
||||||
for (unsigned chIdx = 0; chIdx < 6; chIdx++) {
|
// Reply is all ones. Sensor is probably off or faulty when
|
||||||
susDevs[idx].ownReply.channelsRaw[chIdx] =
|
// it should not be.
|
||||||
(rawReply[chIdx * 2 + 2] << 8) | rawReply[chIdx * 2 + 3];
|
if(susDevs[idx].ownReply.tempRaw == 0x0fff) {
|
||||||
|
susDevs[idx].replyResult = returnvalue::FAILED;
|
||||||
|
} else {
|
||||||
|
susDevs[idx].replyResult = returnvalue::OK;
|
||||||
|
for (unsigned chIdx = 0; chIdx < 6; chIdx++) {
|
||||||
|
susDevs[idx].ownReply.channelsRaw[chIdx] =
|
||||||
|
(rawReply[chIdx * 2 + 2] << 8) | rawReply[chIdx * 2 + 3];
|
||||||
|
}
|
||||||
|
susDevs[idx].ownReply.dataWasSet = true;
|
||||||
}
|
}
|
||||||
susDevs[idx].ownReply.dataWasSet = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return OK;
|
return OK;
|
||||||
|
Loading…
Reference in New Issue
Block a user