Merge branch 'develop' into acs-ctrl-finite-check
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
This commit is contained in:
commit
66b38fa294
@ -20,6 +20,7 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- Added `EXECUTE_SHELL_CMD` action command for `CoreController` to execute arbitrary Linux commands.
|
- Added `EXECUTE_SHELL_CMD` action command for `CoreController` to execute arbitrary Linux commands.
|
||||||
- Add `PcduHandlerDummy` component.
|
- Add `PcduHandlerDummy` component.
|
||||||
|
- Added parameter for timeout until `MEKF_INVALID_MODE_VIOLATION` event is triggered.
|
||||||
- Added NaN and Inf check for the `MEKF`. If these are detected, the `AcsController` will reset
|
- Added NaN and Inf check for the `MEKF`. If these are detected, the `AcsController` will reset
|
||||||
the `MEKF` on its own.
|
the `MEKF` on its own.
|
||||||
|
|
||||||
@ -30,6 +31,7 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
- The Syrlinks task now has a proper name instead of `MAIN_SPI`.
|
- The Syrlinks task now has a proper name instead of `MAIN_SPI`.
|
||||||
- Make whole EIVE system initial transition work for the EM. This was also made possible by
|
- Make whole EIVE system initial transition work for the EM. This was also made possible by
|
||||||
always scheduling most EIVE components instead of tying the scheduling to preprocessor defines.
|
always scheduling most EIVE components instead of tying the scheduling to preprocessor defines.
|
||||||
|
- Store more TCP und UDP packets.
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ static constexpr uint32_t CFDP_STORE_QUEUE_SIZE = 300;
|
|||||||
static constexpr uint32_t MAX_PUS_FUNNEL_QUEUE_DEPTH = 100;
|
static constexpr uint32_t MAX_PUS_FUNNEL_QUEUE_DEPTH = 100;
|
||||||
static constexpr uint32_t MAX_CFDP_FUNNEL_QUEUE_DEPTH = 80;
|
static constexpr uint32_t MAX_CFDP_FUNNEL_QUEUE_DEPTH = 80;
|
||||||
|
|
||||||
static constexpr uint32_t MAX_STORED_CMDS_UDP = 120;
|
static constexpr uint32_t MAX_STORED_CMDS_UDP = 150;
|
||||||
static constexpr uint32_t MAX_STORED_CMDS_TCP = 150;
|
static constexpr uint32_t MAX_STORED_CMDS_TCP = 180;
|
||||||
|
|
||||||
namespace spiSched {
|
namespace spiSched {
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ void AcsController::performPointingCtrl() {
|
|||||||
if (result == MultiplicativeKalmanFilter::MEKF_NOT_FINITE) {
|
if (result == MultiplicativeKalmanFilter::MEKF_NOT_FINITE) {
|
||||||
navigation.resetMekf(&mekfData);
|
navigation.resetMekf(&mekfData);
|
||||||
}
|
}
|
||||||
if (mekfInvalidCounter == 5) {
|
if (mekfInvalidCounter > acsParameters.onBoardParams.mekfViolationTimer) {
|
||||||
// Trigger this so STR FDIR can set the device faulty.
|
// Trigger this so STR FDIR can set the device faulty.
|
||||||
EventManagerIF::triggerEvent(objects::STAR_TRACKER, acs::MEKF_INVALID_MODE_VIOLATION, 0, 0);
|
EventManagerIF::triggerEvent(objects::STAR_TRACKER, acs::MEKF_INVALID_MODE_VIOLATION, 0, 0);
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ class AcsController : public ExtendedControllerBase, public ReceivesParameterMes
|
|||||||
uint8_t detumbleCounter = 0;
|
uint8_t detumbleCounter = 0;
|
||||||
uint8_t multipleRwUnavailableCounter = 0;
|
uint8_t multipleRwUnavailableCounter = 0;
|
||||||
bool mekfInvalidFlag = false;
|
bool mekfInvalidFlag = false;
|
||||||
uint8_t mekfInvalidCounter = 0;
|
uint16_t mekfInvalidCounter = 0;
|
||||||
int32_t cmdSpeedRws[4] = {0, 0, 0, 0};
|
int32_t cmdSpeedRws[4] = {0, 0, 0, 0};
|
||||||
int16_t cmdDipolMtqs[3] = {0, 0, 0};
|
int16_t cmdDipolMtqs[3] = {0, 0, 0};
|
||||||
|
|
||||||
|
@ -23,6 +23,9 @@ ReturnValue_t AcsParameters::getParameter(uint8_t domainId, uint8_t parameterId,
|
|||||||
case 0x0:
|
case 0x0:
|
||||||
parameterWrapper->set(onBoardParams.sampleTime);
|
parameterWrapper->set(onBoardParams.sampleTime);
|
||||||
break;
|
break;
|
||||||
|
case 0x1:
|
||||||
|
parameterWrapper->set(onBoardParams.mekfViolationTimer);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return INVALID_IDENTIFIER_ID;
|
return INVALID_IDENTIFIER_ID;
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ class AcsParameters : public HasParametersIF {
|
|||||||
|
|
||||||
struct OnBoardParams {
|
struct OnBoardParams {
|
||||||
double sampleTime = 0.4; // [s]
|
double sampleTime = 0.4; // [s]
|
||||||
|
uint16_t mekfViolationTimer = 750;
|
||||||
} onBoardParams;
|
} onBoardParams;
|
||||||
|
|
||||||
struct InertiaEIVE {
|
struct InertiaEIVE {
|
||||||
|
Loading…
Reference in New Issue
Block a user