#pragma once #include #include #include class CoreController; namespace core { FSFW_ENUM(ActionId, ActionId_t, ((LIST_DIRECTORY_INTO_FILE, 0, "List Directory into file"))( (SWITCH_REBOOT_FILE_HANDLING, 5, "Switch Reboot File Handling"))((RESET_REBOOT_COUNTERS, 6, "Reset Boot Counters"))( (SWITCH_IMG_LOCK, 7, "Switch Image Lock"))((SET_MAX_REBOOT_CNT, 8, "Set maximum reboot Count"))( (XSC_REBOOT_OBC, 32, "Reboot using the xsc_boot_copy command"))( (MOUNT_OTHER_COPY, 33, "Mount Other Copy"))((REBOOT_OBC, 34, "Reboot using the reboot command"))) FSFW_ENUM(Boolenum, uint8_t, ((NO, 0, "NO"))((YES, 1, "Yes"))) class ListDirectoryIntoFileAction : public TemplateAction { public: ListDirectoryIntoFileAction(CoreController *owner) : TemplateAction(owner, ActionId::LIST_DIRECTORY_INTO_FILE){}; }; class SwitchRebootFileHandlingAction : public TemplateAction { public: SwitchRebootFileHandlingAction(CoreController *owner) : TemplateAction(owner, ActionId::SWITCH_REBOOT_FILE_HANDLING){}; Parameter enableRebootFile = Parameter::createParameter(this, "Enable Reboot File"); }; class ResetRebootCountersAction : public TemplateAction { public: FSFW_ENUM(Selection, uint8_t, ((ZERO, "0"))((ONE, "1"))((ALL, "All"))) ResetRebootCountersAction(CoreController *owner) : TemplateAction(owner, ActionId::RESET_REBOOT_COUNTERS){}; Parameter chip = Parameter::createParameter(this, "Chip"); Parameter copy = Parameter::createParameter(this, "Copy"); }; class SwitchImageLockAction : public TemplateAction { public: FSFW_ENUM(Selection, uint8_t, ((ZERO, "0"))((ONE, "1"))) SwitchImageLockAction(CoreController *owner) : TemplateAction(owner, ActionId::SWITCH_IMG_LOCK){}; Parameter lock = Parameter::createParameter(this, "Lock Image"); Parameter chip = Parameter::createParameter(this, "Chip"); Parameter copy = Parameter::createParameter(this, "Copy"); }; class SetMaxRebootCntAction : public TemplateAction { public: SetMaxRebootCntAction(CoreController *owner) : TemplateAction(owner, ActionId::SET_MAX_REBOOT_CNT){}; Parameter maxCount = Parameter::createParameter(this, "Count"); }; class XscRebootObcAction : public TemplateAction { public: FSFW_ENUM(Selection, uint8_t, ((ZERO, "0"))((ONE, "1"))((SAME, "Same"))) XscRebootObcAction(CoreController *owner) : TemplateAction(owner, ActionId::XSC_REBOOT_OBC){}; Parameter chip = Parameter::createParameter(this, "Chip"); Parameter copy = Parameter::createParameter(this, "Copy"); }; class MountOtherCopyAction : public TemplateAction { public: MountOtherCopyAction(CoreController *owner) : TemplateAction(owner, ActionId::MOUNT_OTHER_COPY){}; }; class RebootObcAction : public TemplateAction { public: RebootObcAction(CoreController *owner) : TemplateAction(owner, ActionId::REBOOT_OBC){}; }; } // namespace core