Only reset PTME on rate change #716

Merged
muellerr merged 10 commits from only-reset-ptme-on-rate-change into main 2023-06-29 14:56:37 +02:00
22 changed files with 52 additions and 176 deletions
Showing only changes of commit eb27ab4bb0 - Show all commits

View File

@ -246,7 +246,12 @@ ReturnValue_t CcsdsIpCoreHandler::checkModeCommand(Mode_t mode, Submode_t submod
void CcsdsIpCoreHandler::startTransition(Mode_t mode, Submode_t submode) { void CcsdsIpCoreHandler::startTransition(Mode_t mode, Submode_t submode) {
triggerEvent(CHANGING_MODE, mode, submode); triggerEvent(CHANGING_MODE, mode, submode);
if (mode == HasModesIF::MODE_ON) { if (mode == HasModesIF::MODE_ON) {
if (this->submode != submode) { // Check whether the rate actually changes.
if ((this->submode != submode) and
((submode == static_cast<Submode_t>(com::CcsdsSubmode::DATARATE_LOW) and
ptmeConfig.getRate() != RATE_100KBPS)) or
((submode == static_cast<Submode_t>(com::CcsdsSubmode::DATARATE_HIGH) and
ptmeConfig.getRate() != RATE_500KBPS))) {
initPtmeUpdateAfterXCycles(); initPtmeUpdateAfterXCycles();
updateContext.enableTransmitAfterPtmeUpdate = true; updateContext.enableTransmitAfterPtmeUpdate = true;
updateContext.updateClockRate = true; updateContext.updateClockRate = true;
@ -255,7 +260,6 @@ void CcsdsIpCoreHandler::startTransition(Mode_t mode, Submode_t submode) {
updateContext.setModeAfterUpdate = true; updateContext.setModeAfterUpdate = true;
return; return;
} }
if(ptmeConfig.setRate(bitRate))
// No rate change, so enable transmitter right away. // No rate change, so enable transmitter right away.
enableTransmit(); enableTransmit();
} else if (mode == HasModesIF::MODE_OFF) { } else if (mode == HasModesIF::MODE_OFF) {