#ifndef COMMON_CONFIG_COMMONOBJECTS_H_
#define COMMON_CONFIG_COMMONOBJECTS_H_

#include <cstdint>

namespace objects {
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,
    PTME = 0x50000600,
    PDEC_HANDLER = 0x50000700,
    CCSDS_HANDLER = 0x50000800,

    /* 0x43 ('C') for Controllers */
    THERMAL_CONTROLLER = 0x43400001,
    ACS_CONTROLLER = 0x43100002,
    CORE_CONTROLLER = 0x43000003,

    /* 0x44 ('D') for device handlers */
    P60DOCK_HANDLER = 0x44250000,
    PDU1_HANDLER = 0x44250001,
    PDU2_HANDLER = 0x44250002,
    ACU_HANDLER = 0x44250003,
    BPX_BATT_HANDLER = 0x44260000,
    TMP1075_HANDLER_1 = 0x44420004,
    TMP1075_HANDLER_2 = 0x44420005,
    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,

    IMTQ_HANDLER = 0x44140014,
    PLOC_MPSOC_HANDLER = 0x44330015,
    PLOC_SUPERVISOR_HANDLER = 0x44330016,

    /**
     * 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_IC_3 = 0x44420016,
    RTD_IC_4 = 0x44420017,
    RTD_IC_5 = 0x44420018,
    RTD_IC_6 = 0x44420019,
    RTD_IC_7 = 0x44420020,
    RTD_IC_8 = 0x44420021,
    RTD_IC_9 = 0x44420022,
    RTD_IC_10 = 0x44420023,
    RTD_IC_11 = 0x44420024,
    RTD_IC_12 = 0x44420025,
    RTD_IC_13 = 0x44420026,
    RTD_IC_14 = 0x44420027,
    RTD_IC_15 = 0x44420028,
    RTD_IC_16 = 0x44420029,
    RTD_IC_17 = 0x44420030,
    RTD_IC_18 = 0x44420031,

    SUS_1 = 0x44120032,
    SUS_2 = 0x44120033,
    SUS_3 = 0x44120034,
    SUS_4 = 0x44120035,
    SUS_5 = 0x44120036,
    SUS_6 = 0x44120037,
    SUS_7 = 0x44120038,
    SUS_8 = 0x44120039,
    SUS_9 = 0x44120040,
    SUS_10 = 0x44120041,
    SUS_11 = 0x44120042,
    SUS_12 = 0x44120043,
    SUS_13 = 0x44120044,

    GPS_CONTROLLER = 0x44130045,

    RW1 = 0x44120047,
    RW2 = 0x44120148,
    RW3 = 0x44120249,
    RW4 = 0x44120350,

    STAR_TRACKER = 0x44130001,

    PLOC_UPDATER = 0x44330000,
    PLOC_MEMORY_DUMPER = 0x44330001,
    STR_HELPER = 0x44330002,
    AXI_PTME_CONFIG = 44330003,
    PTME_CONFIG = 44330004,
};
}


#endif /* COMMON_CONFIG_COMMONOBJECTS_H_ */