#pragma once #include #include #include "GomspaceDefinitions.h" class GomspaceDeviceHandler; class PingAction : public TemplateAction { public: PingAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::PING) {} // TODO array Parameter pingData = Parameter::createParameter(this, "Ping Data"); }; class RebootAction : public TemplateAction { public: RebootAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::REBOOT) {} }; class GndwdtResetAction : public TemplateAction { public: GndwdtResetAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::GNDWDT_RESET) {} }; class ParamGetAction : public TemplateAction { public: FSFW_ENUM(ParameterByteSize, uint8_t, ((ONE_BYTE, 1, "One Byte"))((TWO_BYTES, 2, "Two Bytes"))((FOUR_BYTES, 4, "Four Bytes"))) FSFW_ENUM(TableId, uint8_t, ((CONFIG_TABLE_ID, 1, "Config Table"))((HK_TABLE_ID, 4, "Housekeeping Table"))) ParamGetAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::PARAM_GET) {} Parameter tableId = Parameter::createParameter(this, "Table"); Parameter address = Parameter::createParameter(this, "Address"); Parameter parameterSize = Parameter::createParameter(this, "Parameter Size"); }; class ParamSetAction : public TemplateAction { public: FSFW_ENUM(ParameterByteSize, uint8_t, ((ONE_BYTE, 1, "One Byte"))((TWO_BYTES, 2, "Two Bytes"))((FOUR_BYTES, 4, "Four Bytes"))) ParamSetAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::PARAM_SET) {} Parameter address = Parameter::createParameter(this, "Address"); Parameter parameter = Parameter::createParameter(this, "Parameter Value"); Parameter parameterSize = Parameter::createParameter(this, "Parameter Size"); }; class RequestHkTableAction : public TemplateAction { public: RequestHkTableAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::REQUEST_HK_TABLE) {} }; class PrintSwitchVIAction : public TemplateAction { public: PrintSwitchVIAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::PRINT_SWITCH_V_I) {} }; class PrintLatchupsAction : public TemplateAction { public: PrintLatchupsAction(GomspaceDeviceHandler* owner) : TemplateAction(owner, GOMSPACE::PRINT_LATCHUPS) {} };