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
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) {
triggerEvent(CHANGING_MODE, mode, submode);
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();
updateContext.enableTransmitAfterPtmeUpdate = true;
updateContext.updateClockRate = true;
@ -255,7 +260,6 @@ void CcsdsIpCoreHandler::startTransition(Mode_t mode, Submode_t submode) {
updateContext.setModeAfterUpdate = true;
return;
}
if(ptmeConfig.setRate(bitRate))
// No rate change, so enable transmitter right away.
enableTransmit();
} else if (mode == HasModesIF::MODE_OFF) {