Merge remote-tracking branch 'origin/develop' into improve_duallane_fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

This commit is contained in:
Robin Müller 2023-03-27 17:05:24 +02:00
commit c83afa4e10
11 changed files with 16 additions and 40 deletions

View File

@ -16,6 +16,12 @@ will consitute of a breaking change warranting a new major release:
# [unreleased] # [unreleased]
## Fixed
- Proper Faulty/External Control handling for the dual lane assemblies.
- ACS board devices: Go to ON mode instead of going to NORMAL mode directly.
- SUS device handlers: Go to ON mode on startup instead of NORMAL mode.
## Changed ## Changed
- Enabled periodic hosuekeeping generation for release images. - Enabled periodic hosuekeeping generation for release images.

View File

@ -28,11 +28,7 @@ void GyrAdis1650XHandler::doStartUp() {
} }
if (breakCountdown.hasTimedOut()) { if (breakCountdown.hasTimedOut()) {
updatePeriodicReply(true, adis1650x::REPLY); updatePeriodicReply(true, adis1650x::REPLY);
if (goToNormalMode) { setMode(MODE_ON);
setMode(MODE_NORMAL);
} else {
setMode(MODE_ON);
}
internalState = InternalState::NONE; internalState = InternalState::NONE;
} }
} }
@ -208,8 +204,6 @@ adis1650x::BurstModes GyrAdis1650XHandler::getBurstMode() {
return adis1650x::burstModeFromMscCtrl(currentCtrlReg); return adis1650x::burstModeFromMscCtrl(currentCtrlReg);
} }
void GyrAdis1650XHandler::setToGoToNormalModeImmediately() { goToNormalMode = true; }
void GyrAdis1650XHandler::enablePeriodicPrintouts(bool enable, uint8_t divider) { void GyrAdis1650XHandler::enablePeriodicPrintouts(bool enable, uint8_t divider) {
periodicPrintout = enable; periodicPrintout = enable;
debugDivider.setDivider(divider); debugDivider.setDivider(divider);

View File

@ -21,7 +21,6 @@ class GyrAdis1650XHandler : public DeviceHandlerBase {
adis1650x::Type type); adis1650x::Type type);
void enablePeriodicPrintouts(bool enable, uint8_t divider); void enablePeriodicPrintouts(bool enable, uint8_t divider);
void setToGoToNormalModeImmediately();
// DeviceHandlerBase abstract function implementation // DeviceHandlerBase abstract function implementation
void doStartUp() override; void doStartUp() override;
@ -47,7 +46,6 @@ class GyrAdis1650XHandler : public DeviceHandlerBase {
AdisGyroConfigDataset configDataset; AdisGyroConfigDataset configDataset;
double sensitivity = adis1650x::SENSITIVITY_UNSET; double sensitivity = adis1650x::SENSITIVITY_UNSET;
bool goToNormalMode = false;
bool warningSwitch = true; bool warningSwitch = true;
enum class InternalState { NONE, STARTUP, SHUTDOWN }; enum class InternalState { NONE, STARTUP, SHUTDOWN };

View File

@ -23,11 +23,7 @@ void GyrL3gCustomHandler::doStartUp() {
if (internalState == InternalState::STARTUP) { if (internalState == InternalState::STARTUP) {
if (commandExecuted) { if (commandExecuted) {
if (goNormalModeImmediately) { setMode(MODE_ON);
setMode(MODE_NORMAL);
} else {
setMode(_MODE_TO_ON);
}
internalState = InternalState::NONE; internalState = InternalState::NONE;
commandExecuted = false; commandExecuted = false;
} }
@ -145,8 +141,6 @@ uint32_t GyrL3gCustomHandler::getTransitionDelayMs(Mode_t from, Mode_t to) {
return this->transitionDelayMs; return this->transitionDelayMs;
} }
void GyrL3gCustomHandler::setToGoToNormalMode(bool enable) { this->goNormalModeImmediately = true; }
ReturnValue_t GyrL3gCustomHandler::initializeLocalDataPool(localpool::DataPool &localDataPoolMap, ReturnValue_t GyrL3gCustomHandler::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) { LocalDataPoolManager &poolManager) {
localDataPoolMap.emplace(l3gd20h::ANG_VELOC_X, new PoolEntry<float>({0.0})); localDataPoolMap.emplace(l3gd20h::ANG_VELOC_X, new PoolEntry<float>({0.0}));

View File

@ -32,11 +32,6 @@ class GyrL3gCustomHandler : public DeviceHandlerBase {
*/ */
void setAbsoluteLimits(float limitX, float limitY, float limitZ); void setAbsoluteLimits(float limitX, float limitY, float limitZ);
/**
* @brief Configure device handler to go to normal mode immediately
*/
void setToGoToNormalMode(bool enable);
protected: protected:
/* DeviceHandlerBase overrides */ /* DeviceHandlerBase overrides */
ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override; ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override;
@ -69,7 +64,6 @@ class GyrL3gCustomHandler : public DeviceHandlerBase {
bool commandExecuted = false; bool commandExecuted = false;
uint8_t statusReg = 0; uint8_t statusReg = 0;
bool goNormalModeImmediately = false;
uint8_t ctrlReg1Value = l3gd20h::CTRL_REG_1_VAL; uint8_t ctrlReg1Value = l3gd20h::CTRL_REG_1_VAL;
uint8_t ctrlReg2Value = l3gd20h::CTRL_REG_2_VAL; uint8_t ctrlReg2Value = l3gd20h::CTRL_REG_2_VAL;

View File

@ -20,7 +20,7 @@ void MgmLis3CustomHandler::doStartUp() {
} }
if (internalState == InternalState::STARTUP) { if (internalState == InternalState::STARTUP) {
if (commandExecuted) { if (commandExecuted) {
setMode(MODE_NORMAL); setMode(MODE_ON);
internalState = InternalState::NONE; internalState = InternalState::NONE;
commandExecuted = false; commandExecuted = false;
} }

View File

@ -25,7 +25,7 @@ void MgmRm3100CustomHandler::doStartUp() {
if (commandExecuted) { if (commandExecuted) {
commandExecuted = false; commandExecuted = false;
internalState = InternalState::NONE; internalState = InternalState::NONE;
setMode(MODE_NORMAL); setMode(MODE_ON);
} }
} }
} }

View File

@ -20,7 +20,7 @@ void SusHandler::doStartUp() {
} }
if (internalState == InternalState::STARTUP) { if (internalState == InternalState::STARTUP) {
if (commandExecuted) { if (commandExecuted) {
setMode(MODE_NORMAL); setMode(MODE_ON);
internalState = InternalState::NONE; internalState = InternalState::NONE;
commandExecuted = false; commandExecuted = false;
} }

View File

@ -33,12 +33,8 @@ ReturnValue_t PersistentLogTmStoreTask::performOperation(uint8_t opCode) {
stateHandlingForStore(handleOneStore(stores.miscStore, miscStoreContext)); stateHandlingForStore(handleOneStore(stores.miscStore, miscStoreContext));
if (not someonesBusy) { if (not someonesBusy) {
TaskFactory::delayTask(100); TaskFactory::delayTask(100);
} else /* and graceDelayDuringDumping.hasTimedOut()*/ { } else if (someFileWasSwapped) {
if (someFileWasSwapped) { TaskFactory::delayTask(10);
TaskFactory::delayTask(20);
}
// TaskFactory::delayTask(2);
// graceDelayDuringDumping.resetTimer();
} }
} }
} }

View File

@ -18,14 +18,8 @@ ReturnValue_t PersistentSingleTmStoreTask::performOperation(uint8_t opCode) {
bool busy = handleOneStore(storeWithQueue, dumpContext); bool busy = handleOneStore(storeWithQueue, dumpContext);
if (not busy) { if (not busy) {
TaskFactory::delayTask(100); TaskFactory::delayTask(100);
} else { } else if (fileHasSwapped) {
if (fileHasSwapped) { TaskFactory::delayTask(10);
TaskFactory::delayTask(20);
}
// if (fileHasSwapped and graceDelayDuringDumping.hasTimedOut()) {
// TaskFactory::delayTask(2);
// graceDelayDuringDumping.resetTimer();
// }
} }
} }
} }

2
tmtc

@ -1 +1 @@
Subproject commit 333faaa5f70646bfde1101f8e0538505574d1d7e Subproject commit 3f3523465a141bc2a2c36cbc9cbbf6ab7b3a9d70