/*============================================================================*/ /* Copyright (C) huaxu (2026). * * All rights reserved. This software is huaxu property. Duplication * or disclosure without huaxu written authorization is prohibited. * * @file someip_server_cfg.hpp * @brief head file of someip ids * @author LiuZhimin * @date 2026-02-24 15:20:00 */ /*============================================================================*/ /*=======[R E V I S I O N H I S T O R Y]====================================*/ /* * V0.0.1 20260606 Liuzhimin Initial Version */ /*============================================================================*/ #ifndef SOMEIP_SERVER_CFG_HPP #define SOMEIP_SERVER_CFG_HPP /*=======[I N C L U D E S]====================================================*/ #include "someip_server.hpp" /*=======[M A C R O S]========================================================*/ /*--- TOOLS GENERATE BEGIN ---*/ #define VSOMEIP_CONFIGURATION "/etc/vsomeip/tbox_service.json" #define APP_NAME "my_app" #define USE_TCP (1u) #define USE_UDP (2u) #define USE_PROTOCAL USE_TCP #define USE_STATIC_ROUTING false #define OFFER_F_F_METHOD false #define OFFER_R_R_METHOD true #define OFFER_SETTER true #define OFFER_GETTER true #define OFFER_EVENT true /* These IDs is just an example, please refer to SomeIp Matrix */ /* ServiceID */ #define S_SYSTEM_SERVER_ID 0x0001 #define S_SYSTEM_INSTANCE_ID 0x0001 #define S_AC_SERVER_ID 0x0002 #define S_AC_INSTANCE_ID 0x0001 #define S_CAN_SERVER_ID 0x0005 #define S_CAN_INSTANCE_ID 0x0001 #define R_SYSTEM_SERVER_ID 0x8001 #define R_SYSTEM_INSTANCE_ID 0x0001 #define R_AC_SERVER_ID 0x8002 #define R_AC_INSTANCE_ID 0x0001 /* MethodID */ #define RR_METHOD_EXAMPLE1 0x0001 #define RR_METHOD_EXAMPLE2 0x0002 #define FF_METHOD_EXAMPLE1 0x1001 #define FF_METHOD_EXAMPLE2 0x1002 #define GETTER_EXAMPLE1 0x2001 #define GETTER_EXAMPLE2 0x2002 #define SETTER_EXAMPLE1 0x3001 #define SETTER_EXAMPLE2 0x3002 #define EVENT_EXAMPLE1 0x4001 #define EVENT_EXAMPLE2 0x4002 #define EVENTGROUP_EXAMPLE1 0x0001 #define NOTIFIER_EXAMPLE1 0x5001 #define NOTIFIER_EXAMPLE2 0x5002 #define EVENTGROUP_EXAMPLE2 0x0002 #define NOTIFIER_CAN0 0x0000 #define NOTIFIER_CAN1 0x0001 #define NOTIFIER_CAN2 0x0002 #define NOTIFIER_CAN3 0x0003 #define NOTIFIER_CAN4 0x0004 #define NOTIFIER_CAN5 0x0005 #define EVENTGROUP_CAN 0x0005 /*=======[P A R A M T Y P E D E F]==========================================*/ /*=======[E X P O R T D A T A]==============================================*/ /*=======[E X P O R T F U N C T I O N D E C L A R A T I O N S]============*/ #if 0 extern std::vector rr_method_example1(void); extern std::vector rr_method_example2(void); extern std::vector ff_method_example1(void); extern std::vector ff_method_example2(void); extern std::vector getter_example1(void); extern std::vector getter_example2(void); extern std::vector setter_example1(void); extern std::vector setter_example2(void); extern std::vector event_example1(void); extern std::vector event_example2(void); #endif extern std::vector notifier_can0(void); extern std::vector notifier_can1(void); extern std::vector notifier_can2(void); extern std::vector notifier_can3(void); extern std::vector notifier_can4(void); extern std::vector notifier_can5(void); extern std::vector notifier_example2(void); extern bool epsilon_func(std::shared_ptr _old, std::shared_ptr _new); // my_servers inline std::vector my_servers = { {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, DEFAULT_MAJOR, DEFAULT_MINOR} //,{S_AC_SERVER_ID, S_AC_INSTANCE_ID, DEFAULT_MAJOR, DEFAULT_MINOR} }; #if 0 // R/R Methods /* usage eg: receive action */ inline std::vector offer_rr_methods = { {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, RR_METHOD_EXAMPLE1, message_type_e::MT_REQUEST, &rr_method_example1}, {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, RR_METHOD_EXAMPLE2, message_type_e::MT_REQUEST, &rr_method_example2} }; // F/F Methods /* usage eg: receive action without respons */ inline std::vector offer_ff_methods = { {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, FF_METHOD_EXAMPLE1, message_type_e::MT_REQUEST_NO_RETURN, &ff_method_example1}, {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, FF_METHOD_EXAMPLE2, message_type_e::MT_REQUEST_NO_RETURN, &ff_method_example2} }; // Getter /* usage eg: for client get infomation */ inline std::vector offer_getters = { {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, GETTER_EXAMPLE1, message_type_e::MT_REQUEST, &getter_example1}, {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, GETTER_EXAMPLE2, message_type_e::MT_REQUEST, &getter_example2} }; // Setter /* usage eg: for client set infomation */ inline std::vector offer_setters = { {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, SETTER_EXAMPLE1, message_type_e::MT_REQUEST, &setter_example1}, {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, SETTER_EXAMPLE2, message_type_e::MT_REQUEST, &setter_example2} }; // Event /* usage eg: offer event massage */ inline std::vector offer_events = { {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, EVENTGROUP_EXAMPLE1, EVENT_EXAMPLE1, event_type_e::ET_EVENT, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_UNRELIABLE, &event_example1}, {S_SYSTEM_SERVER_ID, S_SYSTEM_INSTANCE_ID, EVENTGROUP_EXAMPLE1, EVENT_EXAMPLE2, event_type_e::ET_EVENT, 1000U, false, true, /* cycle */ &epsilon_func, reliability_type_e::RT_UNRELIABLE, &event_example2} }; #endif // Notifier /* usage eg: offer event massage (with initial state))*/ inline std::vector offer_notifiers = { {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, EVENTGROUP_CAN, NOTIFIER_CAN0, event_type_e::ET_FIELD, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_UNRELIABLE, ¬ifier_can0}, {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, EVENTGROUP_CAN, NOTIFIER_CAN1, event_type_e::ET_FIELD, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_RELIABLE, ¬ifier_can1}, {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, EVENTGROUP_CAN, NOTIFIER_CAN2, event_type_e::ET_FIELD, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_RELIABLE, ¬ifier_can2}, {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, EVENTGROUP_CAN, NOTIFIER_CAN3, event_type_e::ET_FIELD, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_RELIABLE, ¬ifier_can3}, {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, EVENTGROUP_CAN, NOTIFIER_CAN4, event_type_e::ET_FIELD, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_RELIABLE, ¬ifier_can4}, {S_CAN_SERVER_ID, S_CAN_INSTANCE_ID, EVENTGROUP_CAN, NOTIFIER_CAN5, event_type_e::ET_FIELD, 0U, false, true, /* active on change */ &epsilon_func, reliability_type_e::RT_RELIABLE, ¬ifier_can5} }; /*--- TOOLS GENERATE END ---*/ #endif // SOMEIP_SERVER_CFG_HPP