switching mission object ids to FSFW_CLASSLESS_ENUM

This commit is contained in:
Ulrich Mohr 2022-08-25 15:13:15 +02:00
parent 4a147a442c
commit 3c762e7437
3 changed files with 127 additions and 117 deletions

View File

@ -161,8 +161,17 @@ void initmission::initMission() {
sif::info << "Looping.." << std::endl;
for (auto iter : *objectList) {
//SystemObjects objectId(iter.first);
printf("Object \"%s\" (0x%08x)\n", "TODO", iter.first);
const char * name = "UNKNOWN";
objects::commonObjects commonObjectId(iter.first);
if (commonObjectId.isValid()){
name = commonObjectId.getDescription();
}
objects::systemObjects systemObject(iter.first);
if( systemObject.isValid()){
name = systemObject.getDescription();
}
printf("Object \"%s\" (0x%08x)\n", name, iter.first);
HasActionsIF* actionIf = dynamic_cast<HasActionsIF*>(iter.second);
if (actionIf != nullptr) {

View File

@ -3,83 +3,85 @@
#include <cstdint>
#include <fsfw/introspection/ClasslessEnum.h>
namespace objects {
enum commonObjects : uint32_t {
FSFW_CLASSLESS_ENUM(commonObjects, uint32_t,
/* First Byte 0x50-0x52 reserved for PUS Services **/
CCSDS_PACKET_DISTRIBUTOR = 0x50000100,
PUS_PACKET_DISTRIBUTOR = 0x50000200,
TMTC_BRIDGE = 0x50000300,
TMTC_POLLING_TASK = 0x50000400,
FILE_SYSTEM_HANDLER = 0x50000500,
SDC_MANAGER = 0x50000550,
PTME = 0x50000600,
PDEC_HANDLER = 0x50000700,
CCSDS_HANDLER = 0x50000800,
((CCSDS_PACKET_DISTRIBUTOR, 0x50000100, "CCSDS_PACKET_DISTRIBUTOR"))
((PUS_PACKET_DISTRIBUTOR, 0x50000200, "PUS_PACKET_DISTRIBUTOR"))
((TMTC_BRIDGE, 0x50000300, "TMTC_BRIDGE"))
((TMTC_POLLING_TASK, 0x50000400, "TMTC_POLLING_TASK"))
((FILE_SYSTEM_HANDLER, 0x50000500, "FILE_SYSTEM_HANDLER"))
((SDC_MANAGER, 0x50000550, "SDC_MANAGER"))
((PTME, 0x50000600, "PTME"))
((PDEC_HANDLER, 0x50000700, "PDEC_HANDLER"))
((CCSDS_HANDLER, 0x50000800, "CCSDS_HANDLER"))
/* 0x43 ('C') for Controllers */
THERMAL_CONTROLLER = 0x43400001,
ACS_CONTROLLER = 0x43000002,
CORE_CONTROLLER = 0x43000003,
((THERMAL_CONTROLLER, 0x43400001, "THERMAL_CONTROLLER"))
((ACS_CONTROLLER, 0x43000002, "ACS_CONTROLLER"))
((CORE_CONTROLLER, 0x43000003, "CORE_CONTROLLER"))
/* 0x44 ('D') for device handlers */
MGM_0_LIS3_HANDLER = 0x44120006,
MGM_1_RM3100_HANDLER = 0x44120107,
MGM_2_LIS3_HANDLER = 0x44120208,
MGM_3_RM3100_HANDLER = 0x44120309,
GYRO_0_ADIS_HANDLER = 0x44120010,
GYRO_1_L3G_HANDLER = 0x44120111,
GYRO_2_ADIS_HANDLER = 0x44120212,
GYRO_3_L3G_HANDLER = 0x44120313,
RW1 = 0x44120047,
RW2 = 0x44120148,
RW3 = 0x44120249,
RW4 = 0x44120350,
STAR_TRACKER = 0x44130001,
GPS_CONTROLLER = 0x44130045,
((MGM_0_LIS3_HANDLER, 0x44120006, "MGM_0_LIS3_HANDLER"))
((MGM_1_RM3100_HANDLER, 0x44120107, "MGM_1_RM3100_HANDLER"))
((MGM_2_LIS3_HANDLER, 0x44120208, "MGM_2_LIS3_HANDLER"))
((MGM_3_RM3100_HANDLER, 0x44120309, "MGM_3_RM3100_HANDLER"))
((GYRO_0_ADIS_HANDLER, 0x44120010, "GYRO_0_ADIS_HANDLER"))
((GYRO_1_L3G_HANDLER, 0x44120111, "GYRO_1_L3G_HANDLER"))
((GYRO_2_ADIS_HANDLER, 0x44120212, "GYRO_2_ADIS_HANDLER"))
((GYRO_3_L3G_HANDLER, 0x44120313, "GYRO_3_L3G_HANDLER"))
((RW1, 0x44120047, "RW1"))
((RW2, 0x44120148, "RW2"))
((RW3, 0x44120249, "RW3"))
((RW4, 0x44120350, "RW4"))
((STAR_TRACKER, 0x44130001, "STAR_TRACKER"))
((GPS_CONTROLLER, 0x44130045, "GPS_CONTROLLER"))
IMTQ_HANDLER = 0x44140014,
TMP1075_HANDLER_1 = 0x44420004,
TMP1075_HANDLER_2 = 0x44420005,
PCDU_HANDLER = 0x442000A1,
P60DOCK_HANDLER = 0x44250000,
PDU1_HANDLER = 0x44250001,
PDU2_HANDLER = 0x44250002,
ACU_HANDLER = 0x44250003,
BPX_BATT_HANDLER = 0x44260000,
PLPCDU_HANDLER = 0x44300000,
RAD_SENSOR = 0x443200A5,
PLOC_UPDATER = 0x44330000,
PLOC_MEMORY_DUMPER = 0x44330001,
STR_HELPER = 0x44330002,
PLOC_MPSOC_HELPER = 0x44330003,
AXI_PTME_CONFIG = 0x44330004,
PTME_CONFIG = 0x44330005,
PLOC_MPSOC_HANDLER = 0x44330015,
PLOC_SUPERVISOR_HANDLER = 0x44330016,
PLOC_SUPERVISOR_HELPER = 0x44330017,
SOLAR_ARRAY_DEPL_HANDLER = 0x444100A2,
HEATER_HANDLER = 0x444100A4,
((IMTQ_HANDLER, 0x44140014, "IMTQ_HANDLER"))
((TMP1075_HANDLER_1, 0x44420004, "TMP1075_HANDLER_1"))
((TMP1075_HANDLER_2, 0x44420005, "TMP1075_HANDLER_2"))
((PCDU_HANDLER, 0x442000A1, "PCDU_HANDLER"))
((P60DOCK_HANDLER, 0x44250000, "P60DOCK_HANDLER"))
((PDU1_HANDLER, 0x44250001, "PDU1_HANDLER"))
((PDU2_HANDLER, 0x44250002, "PDU2_HANDLER"))
((ACU_HANDLER, 0x44250003, "ACU_HANDLER"))
((BPX_BATT_HANDLER, 0x44260000, "BPX_BATT_HANDLER"))
((PLPCDU_HANDLER, 0x44300000, "PLPCDU_HANDLER"))
((RAD_SENSOR, 0x443200A5, "RAD_SENSOR"))
((PLOC_UPDATER, 0x44330000, "PLOC_UPDATER"))
((PLOC_MEMORY_DUMPER, 0x44330001, "PLOC_MEMORY_DUMPER"))
((STR_HELPER, 0x44330002, "STR_HELPER"))
((PLOC_MPSOC_HELPER, 0x44330003, "PLOC_MPSOC_HELPER"))
((AXI_PTME_CONFIG, 0x44330004, "AXI_PTME_CONFIG"))
((PTME_CONFIG, 0x44330005, "PTME_CONFIG"))
((PLOC_MPSOC_HANDLER, 0x44330015, "PLOC_MPSOC_HANDLER"))
((PLOC_SUPERVISOR_HANDLER, 0x44330016, "PLOC_SUPERVISOR_HANDLER"))
((PLOC_SUPERVISOR_HELPER, 0x44330017, "PLOC_SUPERVISOR_HELPER"))
((SOLAR_ARRAY_DEPL_HANDLER, 0x444100A2, "SOLAR_ARRAY_DEPL_HANDLER"))
((HEATER_HANDLER, 0x444100A4, "HEATER_HANDLER"))
/**
* Not yet specified which pt1000 will measure which device/location in the satellite.
* Therefore object ids are named according to the IC naming of the RTDs in the schematic.
*/
RTD_0_IC3_PLOC_HEATSPREADER = 0x44420016,
RTD_1_IC4_PLOC_MISSIONBOARD = 0x44420017,
RTD_2_IC5_4K_CAMERA = 0x44420018,
RTD_3_IC6_DAC_HEATSPREADER = 0x44420019,
RTD_4_IC7_STARTRACKER = 0x44420020,
RTD_5_IC8_RW1_MX_MY = 0x44420021,
RTD_6_IC9_DRO = 0x44420022,
RTD_7_IC10_SCEX = 0x44420023,
RTD_8_IC11_X8 = 0x44420024,
RTD_9_IC12_HPA = 0x44420025,
RTD_10_IC13_PL_TX = 0x44420026,
RTD_11_IC14_MPA = 0x44420027,
RTD_12_IC15_ACU = 0x44420028,
RTD_13_IC16_PLPCDU_HEATSPREADER = 0x44420029,
RTD_14_IC17_TCS_BOARD = 0x44420030,
RTD_15_IC18_IMTQ = 0x44420031,
((RTD_0_IC3_PLOC_HEATSPREADER, 0x44420016, "RTD_0_IC3_PLOC_HEATSPREADER"))
((RTD_1_IC4_PLOC_MISSIONBOARD, 0x44420017, "RTD_1_IC4_PLOC_MISSIONBOARD"))
((RTD_2_IC5_4K_CAMERA, 0x44420018, "RTD_2_IC5_4K_CAMERA"))
((RTD_3_IC6_DAC_HEATSPREADER, 0x44420019, "RTD_3_IC6_DAC_HEATSPREADER"))
((RTD_4_IC7_STARTRACKER, 0x44420020, "RTD_4_IC7_STARTRACKER"))
((RTD_5_IC8_RW1_MX_MY, 0x44420021, "RTD_5_IC8_RW1_MX_MY"))
((RTD_6_IC9_DRO, 0x44420022, "RTD_6_IC9_DRO"))
((RTD_7_IC10_SCEX, 0x44420023, "RTD_7_IC10_SCEX"))
((RTD_8_IC11_X8, 0x44420024, "RTD_8_IC11_X8"))
((RTD_9_IC12_HPA, 0x44420025, "RTD_9_IC12_HPA"))
((RTD_10_IC13_PL_TX, 0x44420026, "RTD_10_IC13_PL_TX"))
((RTD_11_IC14_MPA, 0x44420027, "RTD_11_IC14_MPA"))
((RTD_12_IC15_ACU, 0x44420028, "RTD_12_IC15_ACU"))
((RTD_13_IC16_PLPCDU_HEATSPREADER, 0x44420029, "RTD_13_IC16_PLPCDU_HEATSPREADER"))
((RTD_14_IC17_TCS_BOARD, 0x44420030, "RTD_14_IC17_TCS_BOARD"))
((RTD_15_IC18_IMTQ, 0x44420031, "RTD_15_IC18_IMTQ"))
// Name convention for SUS devices
// SUS_<IDX>_<N/R>_LOC_X<F/M/B>Y<F/M/B>Z<F/M/B>_PT_<DIR><F/B>
@ -87,42 +89,42 @@ enum commonObjects : uint32_t {
// PT: Pointing
// N/R: Nominal/Redundant
// F/M/B: Forward/Middle/Backwards
SUS_0_N_LOC_XFYFZM_PT_XF = 0x44120032,
SUS_6_R_LOC_XFYBZM_PT_XF = 0x44120038,
((SUS_0_N_LOC_XFYFZM_PT_XF, 0x44120032, "SUS_0_N_LOC_XFYFZM_PT_XF"))
((SUS_6_R_LOC_XFYBZM_PT_XF, 0x44120038, "SUS_6_R_LOC_XFYBZM_PT_XF"))
SUS_1_N_LOC_XBYFZM_PT_XB = 0x44120033,
SUS_7_R_LOC_XBYBZM_PT_XB = 0x44120039,
((SUS_1_N_LOC_XBYFZM_PT_XB, 0x44120033, "SUS_1_N_LOC_XBYFZM_PT_XB"))
((SUS_7_R_LOC_XBYBZM_PT_XB, 0x44120039, "SUS_7_R_LOC_XBYBZM_PT_XB"))
SUS_2_N_LOC_XFYBZB_PT_YB = 0x44120034,
SUS_8_R_LOC_XBYBZB_PT_YB = 0x44120040,
((SUS_2_N_LOC_XFYBZB_PT_YB, 0x44120034, "SUS_2_N_LOC_XFYBZB_PT_YB"))
((SUS_8_R_LOC_XBYBZB_PT_YB, 0x44120040, "SUS_8_R_LOC_XBYBZB_PT_YB"))
SUS_3_N_LOC_XFYBZF_PT_YF = 0x44120035,
SUS_9_R_LOC_XBYBZB_PT_YF = 0x44120041,
((SUS_3_N_LOC_XFYBZF_PT_YF, 0x44120035, "SUS_3_N_LOC_XFYBZF_PT_YF"))
((SUS_9_R_LOC_XBYBZB_PT_YF, 0x44120041, "SUS_9_R_LOC_XBYBZB_PT_YF"))
SUS_4_N_LOC_XMYFZF_PT_ZF = 0x44120036,
SUS_10_N_LOC_XMYBZF_PT_ZF = 0x44120042,
((SUS_4_N_LOC_XMYFZF_PT_ZF, 0x44120036, "SUS_4_N_LOC_XMYFZF_PT_ZF"))
((SUS_10_N_LOC_XMYBZF_PT_ZF, 0x44120042, "SUS_10_N_LOC_XMYBZF_PT_ZF"))
SUS_5_N_LOC_XFYMZB_PT_ZB = 0x44120037,
SUS_11_R_LOC_XBYMZB_PT_ZB = 0x44120043,
((SUS_5_N_LOC_XFYMZB_PT_ZB, 0x44120037, "SUS_5_N_LOC_XFYMZB_PT_ZB"))
((SUS_11_R_LOC_XBYMZB_PT_ZB, 0x44120043, "SUS_11_R_LOC_XBYMZB_PT_ZB"))
SYRLINKS_HK_HANDLER = 0x445300A3,
((SYRLINKS_HK_HANDLER, 0x445300A3, "SYRLINKS_HK_HANDLER"))
// 0x60 for other stuff
HEATER_0_PLOC_PROC_BRD = 0x60000000,
HEATER_1_PCDU_BRD = 0x60000001,
HEATER_2_ACS_BRD = 0x60000002,
HEATER_3_OBC_BRD = 0x60000003,
HEATER_4_CAMERA = 0x60000004,
HEATER_5_STR = 0x60000005,
HEATER_6_DRO = 0x60000006,
HEATER_7_HPA = 0x60000007,
((HEATER_0_PLOC_PROC_BRD, 0x60000000, "HEATER_0_PLOC_PROC_BRD"))
((HEATER_1_PCDU_BRD, 0x60000001, "HEATER_1_PCDU_BRD"))
((HEATER_2_ACS_BRD, 0x60000002, "HEATER_2_ACS_BRD"))
((HEATER_3_OBC_BRD, 0x60000003, "HEATER_3_OBC_BRD"))
((HEATER_4_CAMERA, 0x60000004, "HEATER_4_CAMERA"))
((HEATER_5_STR, 0x60000005, "HEATER_5_STR"))
((HEATER_6_DRO, 0x60000006, "HEATER_6_DRO"))
((HEATER_7_HPA, 0x60000007, "HEATER_7_HPA"))
// 0x73 ('s') for assemblies and system/subsystem components
ACS_BOARD_ASS = 0x73000001,
SUS_BOARD_ASS = 0x73000002,
TCS_BOARD_ASS = 0x73000003,
RW_ASS = 0x73000004
};
((ACS_BOARD_ASS, 0x73000001, "ACS_BOARD_ASS"))
((SUS_BOARD_ASS, 0x73000002, "SUS_BOARD_ASS"))
((TCS_BOARD_ASS, 0x73000003, "TCS_BOARD_ASS"))
((RW_ASS, 0x73000004, "RW_ASS"))
)
}
#endif /* COMMON_CONFIG_COMMONOBJECTS_H_ */

View File

@ -2,6 +2,7 @@
#define LINUX_FSFWCONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
#include <fsfw/objectmanager/frameworkObjects.h>
#include <fsfw/introspection/ClasslessEnum.h>
#include <cstdint>
@ -33,36 +34,34 @@ Fourth byte is a unique counter.
*/
namespace objects {
enum sourceObjects : uint32_t {
FSFW_CLASSLESS_ENUM(systemObjects, uint32_t,
/* 0x53 reserved for FSFW */
FW_ADDRESS_START = PUS_SERVICE_1_VERIFICATION,
FW_ADDRESS_END = TIME_STAMPER,
PUS_SERVICE_6 = 0x51000500,
((PUS_SERVICE_6, 0x51000500, "PUS_SERVICE_6"))
CCSDS_IP_CORE_BRIDGE = 0x73500000,
TM_FUNNEL = 0x73000100,
((CCSDS_IP_CORE_BRIDGE, 0x73500000, "CCSDS_IP_CORE_BRIDGE"))
((TM_FUNNEL, 0x73000100, "TM_FUNNEL"))
/* 0x49 ('I') for Communication Interfaces **/
ARDUINO_COM_IF = 0x49000000,
CSP_COM_IF = 0x49050001,
I2C_COM_IF = 0x49040002,
UART_COM_IF = 0x49030003,
SPI_MAIN_COM_IF = 0x49020004,
GPIO_IF = 0x49010005,
SPI_RW_COM_IF = 0x49020005,
SPI_RTD_COM_IF = 0x49020006,
((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,
LIBGPIOD_TEST = 0x54123456,
SPI_TEST = 0x54000010,
UART_TEST = 0x54000020,
I2C_TEST = 0x54000030,
DUMMY_INTERFACE = 0x5400CAFE,
DUMMY_HANDLER = 0x5400AFFE,
P60DOCK_TEST_TASK = 0x00005060,
DUMMY_COM_IF = 0x54000040
};
((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_ */