RTD Fix #345
@ -22,6 +22,7 @@ list yields a list of all related PRs for each release.
|
||||
- The ACS Controller Gyro Sets (raw and processed) and the MEKF dataset are diagnostics now.
|
||||
- Bumped FSFW for Service 11 improvement which includes size and CRC check for contained TC
|
||||
- Syrlinks module now always included for both EM and FM
|
||||
- RTD: Config is now written before each temperature request.
|
||||
|
||||
## Fixed
|
||||
|
||||
|
@ -143,7 +143,7 @@ ReturnValue_t Max31865RtdReader::periodicReadHandling() {
|
||||
auto result = returnvalue::OK;
|
||||
MutexGuard mg(readerMutex);
|
||||
if (mg.getLockResult() != returnvalue::OK) {
|
||||
sif::warning << "Max31865RtdReader::periodicReadReqHandling: Mutex lock failed" << std::endl;
|
||||
sif::warning << "Max31865RtdReader::periodicReadHandling: Mutex lock failed" << std::endl;
|
||||
return returnvalue::FAILED;
|
||||
}
|
||||
// Now read the RTD values
|
||||
@ -154,6 +154,10 @@ ReturnValue_t Max31865RtdReader::periodicReadHandling() {
|
||||
if (rtdIsActive(rtd->idx)) {
|
||||
uint16_t rtdVal = 0;
|
||||
bool faultBitSet = false;
|
||||
result = writeCfgReg(rtd->spiCookie, BASE_CFG);
|
||||
if (result != returnvalue::OK) {
|
||||
handleSpiError(rtd, result, "writeCfgReg");
|
||||
}
|
||||
result = readRtdVal(rtd->spiCookie, rtdVal, faultBitSet);
|
||||
if (result != returnvalue::OK) {
|
||||
handleSpiError(rtd, result, "readRtdVal");
|
||||
@ -282,7 +286,13 @@ ReturnValue_t Max31865RtdReader::sendMessage(CookieIF* cookie, const uint8_t* se
|
||||
}
|
||||
break;
|
||||
}
|
||||
case (EiveMax31855::RtdCommands::CFG):
|
||||
case (EiveMax31855::RtdCommands::CFG): {
|
||||
ReturnValue_t result = writeCfgReg(rtdCookie->spiCookie, BASE_CFG);
|
||||
if (result != returnvalue::OK) {
|
||||
handleSpiError(rtdCookie, result, "writeCfgReg");
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// TODO: Only implement if needed
|
||||
break;
|
||||
|
@ -9,8 +9,12 @@ PdecConfig::~PdecConfig() {}
|
||||
void PdecConfig::initialize() {
|
||||
uint32_t word = 0;
|
||||
word |= (VERSION_ID << 30);
|
||||
|
||||
// Setting the bypass flag and the control command flag should not have any
|
||||
// implication on the operation of the PDEC IP Core
|
||||
word |= (BYPASS_FLAG << 29);
|
||||
word |= (CONTROL_COMMAND_FLAG << 28);
|
||||
|
||||
word |= (RESERVED_FIELD_A << 26);
|
||||
word |= (SPACECRAFT_ID << 16);
|
||||
word |= (VIRTUAL_CHANNEL << 10);
|
||||
|
@ -69,7 +69,8 @@ ReturnValue_t Max31865EiveHandler::buildCommandFromCommand(DeviceCommandId_t dev
|
||||
switch (cmdTyped) {
|
||||
case (EiveMax31855::RtdCommands::ON):
|
||||
case (EiveMax31855::RtdCommands::ACTIVE):
|
||||
case (EiveMax31855::RtdCommands::OFF): {
|
||||
case (EiveMax31855::RtdCommands::OFF):
|
||||
case (EiveMax31855::RtdCommands::CFG): {
|
||||
simpleCommand(cmdTyped);
|
||||
break;
|
||||
}
|
||||
@ -77,9 +78,6 @@ ReturnValue_t Max31865EiveHandler::buildCommandFromCommand(DeviceCommandId_t dev
|
||||
case (EiveMax31855::RtdCommands::HIGH_TRESHOLD): {
|
||||
break;
|
||||
}
|
||||
case (EiveMax31855::RtdCommands::CFG): {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return NOTHING_TO_SEND;
|
||||
}
|
||||
@ -100,6 +98,7 @@ void Max31865EiveHandler::simpleCommand(EiveMax31855::RtdCommands cmd) {
|
||||
rawPacket = cmdBuf.data();
|
||||
rawPacketLen = 1;
|
||||
}
|
||||
|
||||
void Max31865EiveHandler::doTransition(Mode_t modeFrom, Submode_t subModeFrom) {
|
||||
if (getMode() == _MODE_TO_NORMAL) {
|
||||
if (state != InternalState::ACTIVE) {
|
||||
@ -117,6 +116,7 @@ void Max31865EiveHandler::fillCommandAndReplyMap() {
|
||||
insertInCommandMap(EiveMax31855::RtdCommands::ON);
|
||||
insertInCommandMap(EiveMax31855::RtdCommands::ACTIVE);
|
||||
insertInCommandMap(EiveMax31855::RtdCommands::OFF);
|
||||
insertInCommandMap(EiveMax31855::RtdCommands::CFG);
|
||||
insertInReplyMap(EiveMax31855::RtdCommands::EXCHANGE_SET_ID, 200, &sensorDataset, 0, true);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user