eive-obsw/linux/fsfwconfig/objects/systemObjectList.h

68 lines
1.8 KiB
C++

#ifndef LINUX_FSFWCONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
#define LINUX_FSFWCONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
#include <fsfw/objectmanager/frameworkObjects.h>
#include <fsfw/introspection/ClasslessEnum.h>
#include <cstdint>
#include "commonObjects.h"
// The objects will be instantiated in the ID order
// For naming scheme see flight manual
/*
https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/EIVE_Project_IDs
Second byte first four bits is the subsystem:
OBDH 0x0
ACS 0x1
EPS 0x2
PL 0x3
TCS 0x4
COM 0x5
Second byte last four bits is the bus:
None 0x0
GPIO 0x1
SPI 0x2
UART 0x3
I2C 0x4
CAN 0x5
Third byte is an assembly counter if there are multiple redundant devices.
Fourth byte is a unique counter.
*/
namespace objects {
FSFW_CLASSLESS_ENUM(systemObjects, uint32_t,
/* 0x53 reserved for FSFW */
((PUS_SERVICE_6, 0x51000500, "PUS_SERVICE_6"))
((CCSDS_IP_CORE_BRIDGE, 0x73500000, "CCSDS_IP_CORE_BRIDGE"))
((TM_FUNNEL, 0x73000100, "TM_FUNNEL"))
/* 0x49 ('I') for Communication Interfaces **/
((ARDUINO_COM_IF, 0x49000000, "ARDUINO_COM_IF"))
((CSP_COM_IF, 0x49050001, "CSP_COM_IF"))
((I2C_COM_IF, 0x49040002, "I2C_COM_IF"))
((UART_COM_IF, 0x49030003, "UART_COM_IF"))
((SPI_MAIN_COM_IF, 0x49020004, "SPI_MAIN_COM_IF"))
((GPIO_IF, 0x49010005, "GPIO_IF"))
((SPI_RW_COM_IF, 0x49020005, "SPI_RW_COM_IF"))
((SPI_RTD_COM_IF, 0x49020006, "SPI_RTD_COM_IF"))
/* 0x54 ('T') for test handlers */
((TEST_TASK, 0x54694269, "TEST_TASK"))
((LIBGPIOD_TEST, 0x54123456, "LIBGPIOD_TEST"))
((SPI_TEST, 0x54000010, "SPI_TEST"))
((UART_TEST, 0x54000020, "UART_TEST"))
((I2C_TEST, 0x54000030, "I2C_TEST"))
((DUMMY_INTERFACE, 0x5400CAFE, "DUMMY_INTERFACE"))
((DUMMY_HANDLER, 0x5400AFFE, "DUMMY_HANDLER"))
((P60DOCK_TEST_TASK, 0x00005060, "P60DOCK_TEST_TASK"))
((DUMMY_COM_IF, 0x54000040, "DUMMY_COM_IF"))
)
}
#endif /* LINUX_FSFWCONFIG_OBJECTS_SYSTEMOBJECTLIST_H_ */