#ifndef HOSTED_CONFIG_OBJECTS_SYSTEMOBJECTLIST_H_
#define HOSTED_CONFIG_OBJECTS_SYSTEMOBJECTLIST_H_

#include <cstdint>

// The objects will be instantiated in the ID order
namespace objects {
	enum sourceObjects: uint32_t {
		/* First Byte 0x50-0x52 reserved for PUS Services **/
		CCSDS_PACKET_DISTRIBUTOR = 0x50000100,
		PUS_PACKET_DISTRIBUTOR = 0x50000200,
		UDP_BRIDGE = 0x50000300,
		UDP_POLLING_TASK = 0x50000400,

		PUS_SERVICE_3 = 0x51000300,
		PUS_SERVICE_5 = 0x51000400,
		PUS_SERVICE_6 = 0x51000500,
		PUS_SERVICE_8 = 0x51000800,
		PUS_SERVICE_23 = 0x51002300,
		PUS_SERVICE_201 = 0x51020100,

		TM_FUNNEL = 0x52000002,

		/* Test Task */

		TEST_TASK = 0x42694269,
		DUMMY_INTERFACE = 0xCAFECAFE,
		DUMMY_HANDLER = 0x4400AFFE,
		P60DOCK_TEST_TASK = 0x00005060,

		/* 0x49 ('I') for Communication Interfaces **/
		ARDUINO_COM_IF = 0x49000001,
		CSP_COM_IF = 0x49000002,

		/* 0x44 ('D') for device handlers */
		P60DOCK_HANDLER = 0x44000001,
		PDU1_HANDLER = 0x44000002,
		PDU2_HANDLER = 0x44000003,
		ACU_HANDLER = 0x44000004
	};
}

#endif /* BSP_CONFIG_OBJECTS_SYSTEMOBJECTLIST_H_ */