Merge remote-tracking branch 'upstream/mohr/dhb2normal' into mohr/dhb2normal
This commit is contained in:
commit
af06969905
@ -345,9 +345,15 @@ if(FSFW_BUILD_TESTS)
|
|||||||
DEPENDENCIES ${FSFW_TEST_TGT})
|
DEPENDENCIES ${FSFW_TEST_TGT})
|
||||||
else()
|
else()
|
||||||
setup_target_for_coverage_lcov(
|
setup_target_for_coverage_lcov(
|
||||||
NAME ${FSFW_TEST_TGT}_coverage EXECUTABLE ${FSFW_TEST_TGT}
|
NAME
|
||||||
DEPENDENCIES ${FSFW_TEST_TGT}
|
${FSFW_TEST_TGT}_coverage
|
||||||
GENHTML_ARGS --html-epilog ${CMAKE_SOURCE_DIR}/unittests/lcov_epilog.html)
|
EXECUTABLE
|
||||||
|
${FSFW_TEST_TGT}
|
||||||
|
DEPENDENCIES
|
||||||
|
${FSFW_TEST_TGT}
|
||||||
|
GENHTML_ARGS
|
||||||
|
--html-epilog
|
||||||
|
${CMAKE_SOURCE_DIR}/unittests/lcov_epilog.html)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -22,8 +22,6 @@ DeviceHandlerBase::DeviceHandlerBase(object_id_t setObjectId, object_id_t device
|
|||||||
CookieIF* comCookie, FailureIsolationBase* fdirInstance,
|
CookieIF* comCookie, FailureIsolationBase* fdirInstance,
|
||||||
size_t cmdQueueSize)
|
size_t cmdQueueSize)
|
||||||
: SystemObject(setObjectId),
|
: SystemObject(setObjectId),
|
||||||
mode(MODE_OFF),
|
|
||||||
submode(SUBMODE_NONE),
|
|
||||||
wiretappingMode(OFF),
|
wiretappingMode(OFF),
|
||||||
storedRawData(StorageManagerIF::INVALID_ADDRESS),
|
storedRawData(StorageManagerIF::INVALID_ADDRESS),
|
||||||
deviceCommunicationId(deviceCommunication),
|
deviceCommunicationId(deviceCommunication),
|
||||||
@ -38,6 +36,8 @@ DeviceHandlerBase::DeviceHandlerBase(object_id_t setObjectId, object_id_t device
|
|||||||
defaultFDIRUsed(fdirInstance == nullptr),
|
defaultFDIRUsed(fdirInstance == nullptr),
|
||||||
switchOffWasReported(false),
|
switchOffWasReported(false),
|
||||||
childTransitionDelay(5000),
|
childTransitionDelay(5000),
|
||||||
|
mode(MODE_OFF),
|
||||||
|
submode(SUBMODE_NONE),
|
||||||
transitionSourceMode(_MODE_POWER_DOWN),
|
transitionSourceMode(_MODE_POWER_DOWN),
|
||||||
transitionSourceSubMode(SUBMODE_NONE) {
|
transitionSourceSubMode(SUBMODE_NONE) {
|
||||||
auto mqArgs = MqArgs(setObjectId, static_cast<void*>(this));
|
auto mqArgs = MqArgs(setObjectId, static_cast<void*>(this));
|
||||||
@ -362,7 +362,6 @@ void DeviceHandlerBase::doStateMachine() {
|
|||||||
currentUptime - timeoutStart >= powerSwitcher->getSwitchDelayMs()) {
|
currentUptime - timeoutStart >= powerSwitcher->getSwitchDelayMs()) {
|
||||||
triggerEvent(MODE_TRANSITION_FAILED, PowerSwitchIF::SWITCH_TIMEOUT, 0);
|
triggerEvent(MODE_TRANSITION_FAILED, PowerSwitchIF::SWITCH_TIMEOUT, 0);
|
||||||
setMode(_MODE_POWER_DOWN);
|
setMode(_MODE_POWER_DOWN);
|
||||||
callChildStatemachine();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ReturnValue_t switchState = getStateOfSwitches();
|
ReturnValue_t switchState = getStateOfSwitches();
|
||||||
@ -576,6 +575,16 @@ void DeviceHandlerBase::setTransition(Mode_t modeTo, Submode_t submodeTo) {
|
|||||||
void DeviceHandlerBase::setMode(Mode_t newMode, uint8_t newSubmode) {
|
void DeviceHandlerBase::setMode(Mode_t newMode, uint8_t newSubmode) {
|
||||||
/* TODO: This will probably be done by the LocalDataPoolManager now */
|
/* TODO: This will probably be done by the LocalDataPoolManager now */
|
||||||
// changeHK(mode, submode, false);
|
// changeHK(mode, submode, false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* handle transition from OFF to NORMAL by continuing towards normal when ON is reached
|
||||||
|
*/
|
||||||
|
if (newMode == MODE_ON and continueToNormal) {
|
||||||
|
continueToNormal = false;
|
||||||
|
mode = _MODE_TO_NORMAL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
submode = newSubmode;
|
submode = newSubmode;
|
||||||
mode = newMode;
|
mode = newMode;
|
||||||
modeChanged();
|
modeChanged();
|
||||||
@ -584,6 +593,8 @@ void DeviceHandlerBase::setMode(Mode_t newMode, uint8_t newSubmode) {
|
|||||||
disableCommandsAndReplies();
|
disableCommandsAndReplies();
|
||||||
}
|
}
|
||||||
if (!isTransitionalMode()) {
|
if (!isTransitionalMode()) {
|
||||||
|
// clear this flag when a non-transitional Mode is reached to be safe
|
||||||
|
continueToNormal = false;
|
||||||
modeHelper.modeChanged(newMode, newSubmode);
|
modeHelper.modeChanged(newMode, newSubmode);
|
||||||
announceMode(false);
|
announceMode(false);
|
||||||
}
|
}
|
||||||
@ -1068,8 +1079,7 @@ Mode_t DeviceHandlerBase::getBaseMode(Mode_t transitionMode) {
|
|||||||
return transitionMode & ~(TRANSITION_MODE_BASE_ACTION_MASK | TRANSITION_MODE_CHILD_ACTION_MASK);
|
return transitionMode & ~(TRANSITION_MODE_BASE_ACTION_MASK | TRANSITION_MODE_CHILD_ACTION_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SHOULDDO: Allow transition from OFF to NORMAL to reduce complexity in assemblies. And, by the
|
// SHOULDDO: throw away DHB and write a new one:
|
||||||
// way, throw away DHB and write a new one:
|
|
||||||
// - Include power and thermal completely, but more modular :-)
|
// - Include power and thermal completely, but more modular :-)
|
||||||
// - Don't use modes for state transitions, reduce FSM (Finte State Machine) complexity.
|
// - Don't use modes for state transitions, reduce FSM (Finte State Machine) complexity.
|
||||||
// - Modularization?
|
// - Modularization?
|
||||||
@ -1081,11 +1091,10 @@ ReturnValue_t DeviceHandlerBase::checkModeCommand(Mode_t commandedMode, Submode_
|
|||||||
if ((mode == MODE_ERROR_ON) && (commandedMode != MODE_OFF)) {
|
if ((mode == MODE_ERROR_ON) && (commandedMode != MODE_OFF)) {
|
||||||
return TRANS_NOT_ALLOWED;
|
return TRANS_NOT_ALLOWED;
|
||||||
}
|
}
|
||||||
if ((commandedMode == MODE_NORMAL) && (mode == MODE_OFF)) {
|
|
||||||
return TRANS_NOT_ALLOWED;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((commandedMode == MODE_ON) && (mode == MODE_OFF) and (thermalSet != nullptr)) {
|
// Do not check thermal state for MODE_RAW
|
||||||
|
if ((mode == MODE_OFF) and ((commandedMode == MODE_ON) or (commandedMode == MODE_NORMAL)) and
|
||||||
|
(thermalSet != nullptr)) {
|
||||||
ReturnValue_t result = thermalSet->read();
|
ReturnValue_t result = thermalSet->read();
|
||||||
if (result == returnvalue::OK) {
|
if (result == returnvalue::OK) {
|
||||||
if ((thermalSet->heaterRequest.value != ThermalComponentIF::STATE_REQUEST_IGNORE) and
|
if ((thermalSet->heaterRequest.value != ThermalComponentIF::STATE_REQUEST_IGNORE) and
|
||||||
@ -1100,6 +1109,7 @@ ReturnValue_t DeviceHandlerBase::checkModeCommand(Mode_t commandedMode, Submode_
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DeviceHandlerBase::startTransition(Mode_t commandedMode, Submode_t commandedSubmode) {
|
void DeviceHandlerBase::startTransition(Mode_t commandedMode, Submode_t commandedSubmode) {
|
||||||
|
continueToNormal = false;
|
||||||
switch (commandedMode) {
|
switch (commandedMode) {
|
||||||
case MODE_ON:
|
case MODE_ON:
|
||||||
handleTransitionToOnMode(commandedMode, commandedSubmode);
|
handleTransitionToOnMode(commandedMode, commandedSubmode);
|
||||||
@ -1129,8 +1139,9 @@ void DeviceHandlerBase::startTransition(Mode_t commandedMode, Submode_t commande
|
|||||||
case MODE_NORMAL:
|
case MODE_NORMAL:
|
||||||
if (mode != MODE_OFF) {
|
if (mode != MODE_OFF) {
|
||||||
setTransition(MODE_NORMAL, commandedSubmode);
|
setTransition(MODE_NORMAL, commandedSubmode);
|
||||||
} else {
|
} else { // mode is off
|
||||||
replyReturnvalueToCommand(HasModesIF::TRANS_NOT_ALLOWED);
|
continueToNormal = true;
|
||||||
|
handleTransitionToOnMode(MODE_NORMAL, commandedSubmode);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -106,6 +106,54 @@ class DeviceHandlerBase : public DeviceHandlerIF,
|
|||||||
void setCustomFdir(FailureIsolationBase *fdir);
|
void setCustomFdir(FailureIsolationBase *fdir);
|
||||||
void setParent(object_id_t parent);
|
void setParent(object_id_t parent);
|
||||||
void setPowerSwitcher(PowerSwitchIF *switcher);
|
void setPowerSwitcher(PowerSwitchIF *switcher);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* extending the modes of DeviceHandler IF for internal state machine
|
||||||
|
*/
|
||||||
|
static constexpr uint8_t TRANSITION_MODE_CHILD_ACTION_MASK = 0x20;
|
||||||
|
static constexpr uint8_t TRANSITION_MODE_BASE_ACTION_MASK = 0x10;
|
||||||
|
//! This is a transitional state which can not be commanded. The device
|
||||||
|
//! handler performs all commands to get the device in a state ready to
|
||||||
|
//! perform commands. When this is completed, the mode changes to @c MODE_ON.
|
||||||
|
static const Mode_t _MODE_START_UP = TRANSITION_MODE_CHILD_ACTION_MASK | 5;
|
||||||
|
//! This is a transitional state which can not be commanded.
|
||||||
|
//! The device handler performs all actions and commands to get the device
|
||||||
|
//! shut down. When the device is off, the mode changes to @c MODE_OFF.
|
||||||
|
//! It is possible to set the mode to _MODE_SHUT_DOWN to use the to off
|
||||||
|
//! transition if available.
|
||||||
|
static const Mode_t _MODE_SHUT_DOWN = TRANSITION_MODE_CHILD_ACTION_MASK | 6;
|
||||||
|
//! It is possible to set the mode to _MODE_TO_ON to use the to on
|
||||||
|
//! transition if available.
|
||||||
|
static const Mode_t _MODE_TO_ON = TRANSITION_MODE_CHILD_ACTION_MASK | HasModesIF::MODE_ON;
|
||||||
|
//! It is possible to set the mode to _MODE_TO_RAW to use the to raw
|
||||||
|
//! transition if available.
|
||||||
|
static const Mode_t _MODE_TO_RAW = TRANSITION_MODE_CHILD_ACTION_MASK | MODE_RAW;
|
||||||
|
//! It is possible to set the mode to _MODE_TO_NORMAL to use the to normal
|
||||||
|
//! transition if available.
|
||||||
|
static const Mode_t _MODE_TO_NORMAL = TRANSITION_MODE_CHILD_ACTION_MASK | MODE_NORMAL;
|
||||||
|
//! This is a transitional state which can not be commanded.
|
||||||
|
//! The device is shut down and ready to be switched off.
|
||||||
|
//! After the command to set the switch off has been sent,
|
||||||
|
//! the mode changes to @c _MODE_WAIT_OFF
|
||||||
|
static const Mode_t _MODE_POWER_DOWN = TRANSITION_MODE_BASE_ACTION_MASK | 1;
|
||||||
|
//! This is a transitional state which can not be commanded. The device
|
||||||
|
//! will be switched on in this state. After the command to set the switch
|
||||||
|
//! on has been sent, the mode changes to @c _MODE_WAIT_ON.
|
||||||
|
static const Mode_t _MODE_POWER_ON = TRANSITION_MODE_BASE_ACTION_MASK | 2;
|
||||||
|
//! This is a transitional state which can not be commanded. The switch has
|
||||||
|
//! been commanded off and the handler waits for it to be off.
|
||||||
|
//! When the switch is off, the mode changes to @c MODE_OFF.
|
||||||
|
static const Mode_t _MODE_WAIT_OFF = TRANSITION_MODE_BASE_ACTION_MASK | 3;
|
||||||
|
//! This is a transitional state which can not be commanded. The switch
|
||||||
|
//! has been commanded on and the handler waits for it to be on.
|
||||||
|
//! When the switch is on, the mode changes to @c _MODE_TO_ON.
|
||||||
|
static const Mode_t _MODE_WAIT_ON = TRANSITION_MODE_BASE_ACTION_MASK | 4;
|
||||||
|
//! This is a transitional state which can not be commanded. The switch has
|
||||||
|
//! been commanded off and is off now. This state is only to do an RMAP
|
||||||
|
//! cycle once more where the doSendRead() function will set the mode to
|
||||||
|
//! MODE_OFF. The reason to do this is to get rid of stuck packets in the IO Board.
|
||||||
|
static const Mode_t _MODE_SWITCH_IS_OFF = TRANSITION_MODE_BASE_ACTION_MASK | 5;
|
||||||
|
|
||||||
void setHkDestination(object_id_t hkDestination);
|
void setHkDestination(object_id_t hkDestination);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -696,15 +744,18 @@ class DeviceHandlerBase : public DeviceHandlerIF,
|
|||||||
size_t rawPacketLen = 0;
|
size_t rawPacketLen = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The mode the device handler is currently in.
|
* Get the current mode
|
||||||
* This should never be changed directly but only with setMode()
|
*
|
||||||
|
* set via setMode()
|
||||||
*/
|
*/
|
||||||
Mode_t mode;
|
Mode_t getMode();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The submode the device handler is currently in.
|
* Get the current Submode
|
||||||
* This should never be changed directly but only with setMode()
|
*
|
||||||
|
* set via setMode()
|
||||||
*/
|
*/
|
||||||
Submode_t submode;
|
Submode_t getSubmode;
|
||||||
|
|
||||||
/** This is the counter value from performOperation(). */
|
/** This is the counter value from performOperation(). */
|
||||||
uint8_t pstStep = 0;
|
uint8_t pstStep = 0;
|
||||||
@ -893,8 +944,8 @@ class DeviceHandlerBase : public DeviceHandlerIF,
|
|||||||
* Do the transition to the main modes (MODE_ON, MODE_NORMAL and MODE_RAW).
|
* Do the transition to the main modes (MODE_ON, MODE_NORMAL and MODE_RAW).
|
||||||
*
|
*
|
||||||
* If the transition is complete, the mode should be set to the target mode,
|
* If the transition is complete, the mode should be set to the target mode,
|
||||||
* which can be deduced from the current mode which is
|
* which can be deduced from the current mode (which is
|
||||||
* [_MODE_TO_ON, _MODE_TO_NORMAL, _MODE_TO_RAW]
|
* [_MODE_TO_ON, _MODE_TO_NORMAL, _MODE_TO_RAW]) using getBaseMode()
|
||||||
*
|
*
|
||||||
* The intended target submode is already set.
|
* The intended target submode is already set.
|
||||||
* The origin submode can be read in subModeFrom.
|
* The origin submode can be read in subModeFrom.
|
||||||
@ -1206,6 +1257,18 @@ class DeviceHandlerBase : public DeviceHandlerIF,
|
|||||||
*/
|
*/
|
||||||
uint32_t childTransitionDelay;
|
uint32_t childTransitionDelay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mode the device handler is currently in.
|
||||||
|
* This should not be changed directly but only with setMode()
|
||||||
|
*/
|
||||||
|
Mode_t mode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The submode the device handler is currently in.
|
||||||
|
* This should not be changed directly but only with setMode()
|
||||||
|
*/
|
||||||
|
Submode_t submode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The mode the current transition originated from
|
* @brief The mode the current transition originated from
|
||||||
*
|
*
|
||||||
@ -1223,6 +1286,15 @@ class DeviceHandlerBase : public DeviceHandlerIF,
|
|||||||
*/
|
*/
|
||||||
Submode_t transitionSourceSubMode;
|
Submode_t transitionSourceSubMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* used to make the state machine continue from ON to NOMAL when
|
||||||
|
* a Device is commanded to NORMAL in OFF mode
|
||||||
|
*
|
||||||
|
* set in startTransition()
|
||||||
|
* evaluated in setMode() to continue to NORMAL when ON is reached
|
||||||
|
*/
|
||||||
|
bool continueToNormal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* read the command queue
|
* read the command queue
|
||||||
*/
|
*/
|
||||||
|
@ -24,9 +24,6 @@ class DeviceHandlerIF {
|
|||||||
static const DeviceCommandId_t RAW_COMMAND_ID = -1;
|
static const DeviceCommandId_t RAW_COMMAND_ID = -1;
|
||||||
static const DeviceCommandId_t NO_COMMAND_ID = -2;
|
static const DeviceCommandId_t NO_COMMAND_ID = -2;
|
||||||
|
|
||||||
static constexpr uint8_t TRANSITION_MODE_CHILD_ACTION_MASK = 0x20;
|
|
||||||
static constexpr uint8_t TRANSITION_MODE_BASE_ACTION_MASK = 0x10;
|
|
||||||
|
|
||||||
using dh_heater_request_t = uint8_t;
|
using dh_heater_request_t = uint8_t;
|
||||||
using dh_thermal_state_t = int8_t;
|
using dh_thermal_state_t = int8_t;
|
||||||
|
|
||||||
@ -54,47 +51,6 @@ class DeviceHandlerIF {
|
|||||||
//! device still is powered. In this mode, only a mode change to @c MODE_OFF
|
//! device still is powered. In this mode, only a mode change to @c MODE_OFF
|
||||||
//! can be commanded, which tries to switch off the device again.
|
//! can be commanded, which tries to switch off the device again.
|
||||||
static const Mode_t MODE_ERROR_ON = 4;
|
static const Mode_t MODE_ERROR_ON = 4;
|
||||||
//! This is a transitional state which can not be commanded. The device
|
|
||||||
//! handler performs all commands to get the device in a state ready to
|
|
||||||
//! perform commands. When this is completed, the mode changes to @c MODE_ON.
|
|
||||||
static const Mode_t _MODE_START_UP = TRANSITION_MODE_CHILD_ACTION_MASK | 5;
|
|
||||||
//! This is a transitional state which can not be commanded.
|
|
||||||
//! The device handler performs all actions and commands to get the device
|
|
||||||
//! shut down. When the device is off, the mode changes to @c MODE_OFF.
|
|
||||||
//! It is possible to set the mode to _MODE_SHUT_DOWN to use the to off
|
|
||||||
//! transition if available.
|
|
||||||
static const Mode_t _MODE_SHUT_DOWN = TRANSITION_MODE_CHILD_ACTION_MASK | 6;
|
|
||||||
//! It is possible to set the mode to _MODE_TO_ON to use the to on
|
|
||||||
//! transition if available.
|
|
||||||
static const Mode_t _MODE_TO_ON = TRANSITION_MODE_CHILD_ACTION_MASK | HasModesIF::MODE_ON;
|
|
||||||
//! It is possible to set the mode to _MODE_TO_RAW to use the to raw
|
|
||||||
//! transition if available.
|
|
||||||
static const Mode_t _MODE_TO_RAW = TRANSITION_MODE_CHILD_ACTION_MASK | MODE_RAW;
|
|
||||||
//! It is possible to set the mode to _MODE_TO_NORMAL to use the to normal
|
|
||||||
//! transition if available.
|
|
||||||
static const Mode_t _MODE_TO_NORMAL = TRANSITION_MODE_CHILD_ACTION_MASK | MODE_NORMAL;
|
|
||||||
//! This is a transitional state which can not be commanded.
|
|
||||||
//! The device is shut down and ready to be switched off.
|
|
||||||
//! After the command to set the switch off has been sent,
|
|
||||||
//! the mode changes to @c MODE_WAIT_OFF
|
|
||||||
static const Mode_t _MODE_POWER_DOWN = TRANSITION_MODE_BASE_ACTION_MASK | 1;
|
|
||||||
//! This is a transitional state which can not be commanded. The device
|
|
||||||
//! will be switched on in this state. After the command to set the switch
|
|
||||||
//! on has been sent, the mode changes to @c MODE_WAIT_ON.
|
|
||||||
static const Mode_t _MODE_POWER_ON = TRANSITION_MODE_BASE_ACTION_MASK | 2;
|
|
||||||
//! This is a transitional state which can not be commanded. The switch has
|
|
||||||
//! been commanded off and the handler waits for it to be off.
|
|
||||||
//! When the switch is off, the mode changes to @c MODE_OFF.
|
|
||||||
static const Mode_t _MODE_WAIT_OFF = TRANSITION_MODE_BASE_ACTION_MASK | 3;
|
|
||||||
//! This is a transitional state which can not be commanded. The switch
|
|
||||||
//! has been commanded on and the handler waits for it to be on.
|
|
||||||
//! When the switch is on, the mode changes to @c MODE_TO_ON.
|
|
||||||
static const Mode_t _MODE_WAIT_ON = TRANSITION_MODE_BASE_ACTION_MASK | 4;
|
|
||||||
//! This is a transitional state which can not be commanded. The switch has
|
|
||||||
//! been commanded off and is off now. This state is only to do an RMAP
|
|
||||||
//! cycle once more where the doSendRead() function will set the mode to
|
|
||||||
//! MODE_OFF. The reason to do this is to get rid of stuck packets in the IO Board.
|
|
||||||
static const Mode_t _MODE_SWITCH_IS_OFF = TRANSITION_MODE_BASE_ACTION_MASK | 5;
|
|
||||||
|
|
||||||
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::CDH;
|
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::CDH;
|
||||||
static const Event DEVICE_BUILDING_COMMAND_FAILED = MAKE_EVENT(0, severity::LOW);
|
static const Event DEVICE_BUILDING_COMMAND_FAILED = MAKE_EVENT(0, severity::LOW);
|
||||||
|
@ -195,7 +195,7 @@ ReturnValue_t MgmLIS3MDLHandler::scanForReply(const uint8_t *start, size_t len,
|
|||||||
#endif
|
#endif
|
||||||
return DeviceHandlerIF::INVALID_DATA;
|
return DeviceHandlerIF::INVALID_DATA;
|
||||||
}
|
}
|
||||||
if (mode == _MODE_START_UP) {
|
if (getMode() == _MODE_START_UP) {
|
||||||
commandExecuted = true;
|
commandExecuted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +224,7 @@ ReturnValue_t MgmLIS3MDLHandler::scanForReply(const uint8_t *start, size_t len,
|
|||||||
return DeviceHandlerIF::INVALID_DATA;
|
return DeviceHandlerIF::INVALID_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode == _MODE_START_UP) {
|
if (getMode() == _MODE_START_UP) {
|
||||||
commandExecuted = true;
|
commandExecuted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,7 @@ ReturnValue_t MgmRM3100Handler::interpretDeviceReply(DeviceCommandId_t id, const
|
|||||||
case (RM3100::CONFIGURE_CYCLE_COUNT):
|
case (RM3100::CONFIGURE_CYCLE_COUNT):
|
||||||
case (RM3100::CONFIGURE_TMRC): {
|
case (RM3100::CONFIGURE_TMRC): {
|
||||||
// We can only check whether write was successful with read operation
|
// We can only check whether write was successful with read operation
|
||||||
if (mode == _MODE_START_UP) {
|
if (getMode() == _MODE_START_UP) {
|
||||||
commandExecuted = true;
|
commandExecuted = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -192,7 +192,7 @@ ReturnValue_t MgmRM3100Handler::interpretDeviceReply(DeviceCommandId_t id, const
|
|||||||
if (packet[1] == tmrcRegValue) {
|
if (packet[1] == tmrcRegValue) {
|
||||||
commandExecuted = true;
|
commandExecuted = true;
|
||||||
// Reading TMRC was commanded. Trigger event to inform ground
|
// Reading TMRC was commanded. Trigger event to inform ground
|
||||||
if (mode != _MODE_START_UP) {
|
if (getMode() != _MODE_START_UP) {
|
||||||
triggerEvent(tmrcSet, tmrcRegValue, 0);
|
triggerEvent(tmrcSet, tmrcRegValue, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -211,7 +211,7 @@ ReturnValue_t MgmRM3100Handler::interpretDeviceReply(DeviceCommandId_t id, const
|
|||||||
return DeviceHandlerIF::DEVICE_REPLY_INVALID;
|
return DeviceHandlerIF::DEVICE_REPLY_INVALID;
|
||||||
}
|
}
|
||||||
// Reading TMRC was commanded. Trigger event to inform ground
|
// Reading TMRC was commanded. Trigger event to inform ground
|
||||||
if (mode != _MODE_START_UP) {
|
if (getMode() != _MODE_START_UP) {
|
||||||
uint32_t eventParam1 = (cycleCountX << 16) | cycleCountY;
|
uint32_t eventParam1 = (cycleCountX << 16) | cycleCountY;
|
||||||
triggerEvent(cycleCountersSet, eventParam1, cycleCountZ);
|
triggerEvent(cycleCountersSet, eventParam1, cycleCountZ);
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ ReturnValue_t TestDevice::buildNormalDeviceCommand(DeviceCommandId_t* id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t TestDevice::buildTransitionDeviceCommand(DeviceCommandId_t* id) {
|
ReturnValue_t TestDevice::buildTransitionDeviceCommand(DeviceCommandId_t* id) {
|
||||||
if (mode == _MODE_TO_ON) {
|
if (getMode() == _MODE_TO_ON) {
|
||||||
if (fullInfoPrintout) {
|
if (fullInfoPrintout) {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::info << "TestDevice" << deviceIdx
|
sif::info << "TestDevice" << deviceIdx
|
||||||
@ -80,7 +80,7 @@ ReturnValue_t TestDevice::buildTransitionDeviceCommand(DeviceCommandId_t* id) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mode == _MODE_TO_NORMAL) {
|
if (getMode() == _MODE_TO_NORMAL) {
|
||||||
if (fullInfoPrintout) {
|
if (fullInfoPrintout) {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::info << "TestDevice" << deviceIdx
|
sif::info << "TestDevice" << deviceIdx
|
||||||
@ -97,7 +97,7 @@ ReturnValue_t TestDevice::buildTransitionDeviceCommand(DeviceCommandId_t* id) {
|
|||||||
|
|
||||||
setMode(MODE_NORMAL);
|
setMode(MODE_NORMAL);
|
||||||
}
|
}
|
||||||
if (mode == _MODE_SHUT_DOWN) {
|
if (getMode() == _MODE_SHUT_DOWN) {
|
||||||
if (fullInfoPrintout) {
|
if (fullInfoPrintout) {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::info << "TestDevice" << deviceIdx
|
sif::info << "TestDevice" << deviceIdx
|
||||||
@ -118,7 +118,7 @@ ReturnValue_t TestDevice::buildTransitionDeviceCommand(DeviceCommandId_t* id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TestDevice::doTransition(Mode_t modeFrom, Submode_t submodeFrom) {
|
void TestDevice::doTransition(Mode_t modeFrom, Submode_t submodeFrom) {
|
||||||
if (mode == _MODE_TO_NORMAL) {
|
if (getMode() == _MODE_TO_NORMAL) {
|
||||||
if (fullInfoPrintout) {
|
if (fullInfoPrintout) {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::info << "TestDevice" << deviceIdx
|
sif::info << "TestDevice" << deviceIdx
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
DeviceHandlerMock::DeviceHandlerMock(object_id_t objectId, object_id_t deviceCommunication,
|
DeviceHandlerMock::DeviceHandlerMock(object_id_t objectId, object_id_t deviceCommunication,
|
||||||
CookieIF *comCookie, FailureIsolationBase *fdirInstance)
|
CookieIF *comCookie, FailureIsolationBase *fdirInstance)
|
||||||
: DeviceHandlerBase(objectId, deviceCommunication, comCookie, fdirInstance) {
|
: DeviceHandlerBase(objectId, deviceCommunication, comCookie, fdirInstance) {
|
||||||
mode = MODE_ON;
|
setMode(MODE_ON);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeviceHandlerMock::~DeviceHandlerMock() = default;
|
DeviceHandlerMock::~DeviceHandlerMock() = default;
|
||||||
|
Loading…
Reference in New Issue
Block a user