fsfw/src/fsfw/returnvalues/FwClassIds.h
Robin Mueller 5907f8ee9d
Added CFDP packet stack
This PR adds the packet stack for the CCSDS File Delivery Protocol.
It also refactors the existing TMTC infastructure to allow sending
of CFDP packets to the CCSDS handlers.

This includes the whole PDU (Protocol Data Unit) stack:

- File Data PDUs

and all file directive PDUs

- ACK PDU
- NAK PDU
- Metadata PDU
- Finished PDU
- Prompt PDU
- Keep Alive PDU
- EOF PDU

The PR includes a full set of unittests for the packet stack
with a coverage of 90+ %.

The refactoring of the existing TMTC infastructure includes non-ideal
solutions like diamond inheritance.
Avoiding this solution would require refactoring the packet stack.
This would be a good idea anyway because the existing stack is tightly
coupled to the FSFW, making reuse more difficult if only the stack is
planned to be used without the store functionalities etc.

The PDU implementation provided here is only weakly coupled to the FSFW,
only using components like returnvalues or the Serialization modules.
There are dedicated serializers and deserializers, which also helps in
creating small focused modules which are easy to test.

Some of the modules here were provied by Matthias Tompert.
2021-12-03 15:37:49 +01:00

91 lines
2.4 KiB
C++

#ifndef FSFW_RETURNVALUES_FWCLASSIDS_H_
#define FSFW_RETURNVALUES_FWCLASSIDS_H_
#include <cstdint>
// The comment block at the end is used by the returnvalue exporter.
// It is recommended to add it as well for mission returnvalues
namespace CLASS_ID {
enum: uint8_t {
FW_CLASS_ID_START = 0, // [EXPORT] : [START]
OPERATING_SYSTEM_ABSTRACTION, //OS
OBJECT_MANAGER_IF, //OM
DEVICE_HANDLER_BASE, //DHB
RMAP_CHANNEL, //RMP
POWER_SWITCH_IF, //PS
HAS_MEMORY_IF, //PP
DEVICE_STATE_MACHINE_BASE, //DSMB
DATA_SET_CLASS, //DPS
POOL_RAW_ACCESS_CLASS, //DPR
CONTROLLER_BASE, //CTR
SUBSYSTEM_BASE, //SB
MODE_STORE_IF, //MS
SUBSYSTEM, //SS
HAS_MODES_IF, //HM
COMMAND_MESSAGE, //CM
CCSDS_TIME_HELPER_CLASS, //TIM
ARRAY_LIST, //AL
ASSEMBLY_BASE, //AB
MEMORY_HELPER, //MH
SERIALIZE_IF, //SE
FIXED_MAP, //FM
FIXED_MULTIMAP, //FMM
HAS_HEALTH_IF, //HHI
FIFO_CLASS, //FF
MESSAGE_PROXY, //MQP
TRIPLE_REDUNDACY_CHECK, //TRC
TC_PACKET_CHECK, //TCC
PACKET_DISTRIBUTION, //TCD
ACCEPTS_TELECOMMANDS_IF, //PUS
DEVICE_SERVICE_BASE, //DSB
COMMAND_SERVICE_BASE, //CSB
TM_STORE_BACKEND_IF, //TMB
TM_STORE_FRONTEND_IF, //TMF
STORAGE_AND_RETRIEVAL_SERVICE, //SR
MATCH_TREE_CLASS, //MT
EVENT_MANAGER_IF, //EV
HANDLES_FAILURES_IF, //FDI
DEVICE_HANDLER_IF, //DHI
STORAGE_MANAGER_IF, //SM
THERMAL_COMPONENT_IF, //TC
INTERNAL_ERROR_CODES, //IEC
TRAP, //TRP
CCSDS_HANDLER_IF, //CCS
PARAMETER_WRAPPER, //PAW
HAS_PARAMETERS_IF, //HPA
ASCII_CONVERTER, //ASC
POWER_SWITCHER, //POS
LIMITS_IF, //LIM
COMMANDS_ACTIONS_IF, //CF
HAS_ACTIONS_IF, //HF
DEVICE_COMMUNICATION_IF, //DC
BSP, //BSP
CFDP, //CFDP
TIME_STAMPER_IF, //TSI
SGP4PROPAGATOR_CLASS, //SGP4
MUTEX_IF, //MUX
MESSAGE_QUEUE_IF,//MQI
SEMAPHORE_IF, //SPH
LOCAL_POOL_OWNER_IF, //LPIF
POOL_VARIABLE_IF, //PVA
HOUSEKEEPING_MANAGER, //HKM
DLE_ENCODER, //DLEE
PUS_SERVICE_3, //PUS3
PUS_SERVICE_9, //PUS9
FILE_SYSTEM, //FILS
LINUX_OSAL, //UXOS
HAL_SPI, //HSPI
HAL_UART, //HURT
HAL_I2C, //HI2C
HAL_GPIO, //HGIO
FIXED_SLOT_TASK_IF, //FTIF
MGM_LIS3MDL, //MGMLIS3
MGM_RM3100, //MGMRM3100
SPACE_PACKET_PARSER, //SPPA
FW_CLASS_ID_COUNT // [EXPORT] : [END]
};
}
#endif /* FSFW_RETURNVALUES_FWCLASSIDS_H_ */