different max missed reply thresholds for STR FDIR
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good

This commit is contained in:
Robin Müller 2023-07-13 16:52:33 +02:00
parent 0cefef8a35
commit 39022ce2f6
Signed by: muellerr
GPG Key ID: 407F9B00F858F270
7 changed files with 12 additions and 9 deletions

View File

@ -138,7 +138,9 @@ void ObjectFactory::produce(void* args) {
#endif
#if OBSW_ADD_STAR_TRACKER == 1
createStrComponents(pwrSwitcher);
// Missed reply threshold is higher on EM than default value because the ground STR received
// from the Swedes is going weird things.
createStrComponents(pwrSwitcher, 30);
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
createPayloadComponents(gpioComIF, *pwrSwitcher);

View File

@ -102,7 +102,7 @@ void ObjectFactory::produce(void* args) {
#endif
#if OBSW_ADD_STAR_TRACKER == 1
createStrComponents(pwrSwitcher);
createStrComponents(pwrSwitcher, 5);
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
#if OBSW_ADD_CCSDS_IP_CORES == 1

View File

@ -928,7 +928,8 @@ void ObjectFactory::createTestComponents(LinuxLibgpioIF* gpioComIF) {
#endif
}
void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher,
uint32_t missedReplyCountThreshold) {
auto* strAssy = new StrAssembly(objects::STR_ASSY);
strAssy->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
auto* starTrackerCookie =
@ -941,7 +942,7 @@ void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
if (paramJsonFile == nullptr) {
sif::error << "No valid Star Tracker parameter JSON file" << std::endl;
}
auto strFdir = new StrFdir(objects::STAR_TRACKER);
auto strFdir = new StrFdir(objects::STAR_TRACKER, missedReplyCountThreshold);
auto starTracker =
new StarTrackerHandler(objects::STAR_TRACKER, objects::STR_COM_IF, starTrackerCookie,
paramJsonFile, strComIF, power::PDU1_CH2_STAR_TRACKER_5V);

View File

@ -69,7 +69,7 @@ void createHeaterComponents(GpioIF* gpioIF, PowerSwitchIF* pwrSwitcher, HealthTa
HeaterHandler*& heaterHandler);
void createImtqComponents(PowerSwitchIF* pwrSwitcher, bool enableHkSets, const char* i2cDev);
void createBpxBatteryComponent(bool enableHkSets, const char* i2cDev);
void createStrComponents(PowerSwitchIF* pwrSwitcher);
void createStrComponents(PowerSwitchIF* pwrSwitcher, uint32_t missedReplyCountThreshold);
void createSolarArrayDeploymentComponents(PowerSwitchIF& pwrSwitcher, GpioIF& gpioIF);
void createSyrlinksComponents(PowerSwitchIF* pwrSwitcher);
void createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwitchIF& pwrSwitcher);

View File

@ -2001,7 +2001,7 @@ ReturnValue_t StarTrackerHandler::checkProgram() {
startupState = StartupState::BOOT_BOOTLOADER;
}
if (bootState == FwBootState::VERIFY_BOOT) {
bootState = FwBootState::LOGLEVEL;
bootState = FwBootState::SET_TIME;
} else if (internalState == InternalState::BOOTLOADER_CHECK) {
triggerEvent(BOOTING_BOOTLOADER_FAILED_EVENT);
internalState = InternalState::FAILED_BOOTLOADER_BOOT;

View File

@ -2,9 +2,9 @@
#include "mission/acs/defs.h"
StrFdir::StrFdir(object_id_t strObject)
StrFdir::StrFdir(object_id_t strObject, uint32_t missedReplyThreshold)
: DeviceHandlerFailureIsolation(strObject, objects::NO_OBJECT) {
missedReplyCount.setFailureThreshold(30);
missedReplyCount.setFailureThreshold(missedReplyThreshold);
}
ReturnValue_t StrFdir::eventReceived(EventMessage* event) {

View File

@ -5,7 +5,7 @@
class StrFdir : public DeviceHandlerFailureIsolation {
public:
StrFdir(object_id_t strObject);
StrFdir(object_id_t strObject, uint32_t missedReplyThreshold);
ReturnValue_t eventReceived(EventMessage* event) override;
};