hotfix ACS/SUS
This commit is contained in:
parent
c8472f222c
commit
b0a2b5886f
@ -27,6 +27,9 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
- Bugfix for STR where an invalid reply was received for special requests
|
- Bugfix for STR where an invalid reply was received for special requests
|
||||||
like firmware updates.
|
like firmware updates.
|
||||||
- Bugfix for shell command executors in command controller which lead to a crash.
|
- Bugfix for shell command executors in command controller which lead to a crash.
|
||||||
|
- Fixed regression where the reply result for ACS board and SUS board devices was set to FAILED
|
||||||
|
even when going to OFF mode. In that case, it has to be set to OK so the device handler can
|
||||||
|
complete the OFF transition.
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
|
@ -122,13 +122,14 @@ ReturnValue_t AcsBoardPolling::sendMessage(CookieIF* cookie, const uint8_t* send
|
|||||||
} else {
|
} else {
|
||||||
sif::warning << "AcsBoardPolling: Unknown ADIS type" << std::endl;
|
sif::warning << "AcsBoardPolling: Unknown ADIS type" << std::endl;
|
||||||
}
|
}
|
||||||
|
adis.replyResult = returnvalue::FAILED;
|
||||||
adis.performStartup = true;
|
adis.performStartup = true;
|
||||||
} else if (req->mode == acs::SimpleSensorMode::OFF) {
|
} else if (req->mode == acs::SimpleSensorMode::OFF) {
|
||||||
adis.performStartup = false;
|
adis.performStartup = false;
|
||||||
adis.ownReply.cfgWasSet = false;
|
adis.ownReply.cfgWasSet = false;
|
||||||
adis.ownReply.dataWasSet = false;
|
adis.ownReply.dataWasSet = false;
|
||||||
|
adis.replyResult = returnvalue::OK;
|
||||||
}
|
}
|
||||||
adis.replyResult = returnvalue::FAILED;
|
|
||||||
adis.mode = req->mode;
|
adis.mode = req->mode;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
@ -144,10 +145,11 @@ ReturnValue_t AcsBoardPolling::sendMessage(CookieIF* cookie, const uint8_t* send
|
|||||||
if (req->mode == acs::SimpleSensorMode::NORMAL) {
|
if (req->mode == acs::SimpleSensorMode::NORMAL) {
|
||||||
std::memcpy(gyro.sensorCfg, req->ctrlRegs, 5);
|
std::memcpy(gyro.sensorCfg, req->ctrlRegs, 5);
|
||||||
gyro.performStartup = true;
|
gyro.performStartup = true;
|
||||||
|
gyro.replyResult = returnvalue::FAILED;
|
||||||
} else {
|
} else {
|
||||||
gyro.ownReply.cfgWasSet = false;
|
gyro.ownReply.cfgWasSet = false;
|
||||||
|
gyro.replyResult = returnvalue::OK;
|
||||||
}
|
}
|
||||||
gyro.replyResult = returnvalue::FAILED;
|
|
||||||
gyro.mode = req->mode;
|
gyro.mode = req->mode;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
@ -162,11 +164,12 @@ ReturnValue_t AcsBoardPolling::sendMessage(CookieIF* cookie, const uint8_t* send
|
|||||||
if (req->mode != mgm.mode) {
|
if (req->mode != mgm.mode) {
|
||||||
if (req->mode == acs::SimpleSensorMode::NORMAL) {
|
if (req->mode == acs::SimpleSensorMode::NORMAL) {
|
||||||
mgm.performStartup = true;
|
mgm.performStartup = true;
|
||||||
|
mgm.replyResult = returnvalue::FAILED;
|
||||||
} else {
|
} else {
|
||||||
mgm.ownReply.dataWasSet = false;
|
mgm.ownReply.dataWasSet = false;
|
||||||
|
mgm.replyResult = returnvalue::OK;
|
||||||
mgm.ownReply.temperatureWasSet = false;
|
mgm.ownReply.temperatureWasSet = false;
|
||||||
}
|
}
|
||||||
mgm.replyResult = returnvalue::FAILED;
|
|
||||||
mgm.mode = req->mode;
|
mgm.mode = req->mode;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
@ -181,10 +184,11 @@ ReturnValue_t AcsBoardPolling::sendMessage(CookieIF* cookie, const uint8_t* send
|
|||||||
if (req->mode != mgm.mode) {
|
if (req->mode != mgm.mode) {
|
||||||
if (req->mode == acs::SimpleSensorMode::NORMAL) {
|
if (req->mode == acs::SimpleSensorMode::NORMAL) {
|
||||||
mgm.performStartup = true;
|
mgm.performStartup = true;
|
||||||
|
mgm.replyResult = returnvalue::FAILED;
|
||||||
} else {
|
} else {
|
||||||
mgm.ownReply.dataWasRead = false;
|
mgm.ownReply.dataWasRead = false;
|
||||||
|
mgm.replyResult = returnvalue::OK;
|
||||||
}
|
}
|
||||||
mgm.replyResult = returnvalue::FAILED;
|
|
||||||
mgm.mode = req->mode;
|
mgm.mode = req->mode;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
|
@ -69,11 +69,13 @@ ReturnValue_t SusPolling::sendMessage(CookieIF* cookie, const uint8_t* sendData,
|
|||||||
if (susDevs[susIdx].mode != susReq->mode) {
|
if (susDevs[susIdx].mode != susReq->mode) {
|
||||||
if (susReq->mode == acs::SimpleSensorMode::NORMAL) {
|
if (susReq->mode == acs::SimpleSensorMode::NORMAL) {
|
||||||
susDevs[susIdx].performStartup = true;
|
susDevs[susIdx].performStartup = true;
|
||||||
|
susDevs[susIdx].replyResult = returnvalue::FAILED;
|
||||||
} else {
|
} else {
|
||||||
susDevs[susIdx].ownReply.cfgWasSet = false;
|
susDevs[susIdx].ownReply.cfgWasSet = false;
|
||||||
susDevs[susIdx].ownReply.dataWasSet = false;
|
susDevs[susIdx].ownReply.dataWasSet = false;
|
||||||
|
// We are off now, but DHB wants a proper reply.
|
||||||
|
susDevs[susIdx].replyResult = returnvalue::OK;
|
||||||
}
|
}
|
||||||
susDevs[susIdx].replyResult = returnvalue::FAILED;
|
|
||||||
susDevs[susIdx].mode = susReq->mode;
|
susDevs[susIdx].mode = susReq->mode;
|
||||||
}
|
}
|
||||||
if (state == InternalState::IDLE) {
|
if (state == InternalState::IDLE) {
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit f8da9cff7c5d6d6bdd483f90ccefb67b2d1e11a4
|
Subproject commit f57342602da3232c0bfecaecb0c10be6d692b384
|
Loading…
Reference in New Issue
Block a user