feat(soa_server):initial version of soa_server
This commit is contained in:
174
source/soa_server/someip_server_cfg.hpp
Normal file
174
source/soa_server/someip_server_cfg.hpp
Normal file
@@ -0,0 +1,174 @@
|
||||
/*============================================================================*/
|
||||
/* 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]====================================*/
|
||||
/* <VERSION> <DATE> <AUTHOR> <REVISION LOG>
|
||||
* 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<byte_t> rr_method_example1(void);
|
||||
extern std::vector<byte_t> rr_method_example2(void);
|
||||
extern std::vector<byte_t> ff_method_example1(void);
|
||||
extern std::vector<byte_t> ff_method_example2(void);
|
||||
extern std::vector<byte_t> getter_example1(void);
|
||||
extern std::vector<byte_t> getter_example2(void);
|
||||
extern std::vector<byte_t> setter_example1(void);
|
||||
extern std::vector<byte_t> setter_example2(void);
|
||||
extern std::vector<byte_t> event_example1(void);
|
||||
extern std::vector<byte_t> event_example2(void);
|
||||
#endif
|
||||
extern std::vector<byte_t> notifier_can0(void);
|
||||
extern std::vector<byte_t> notifier_can1(void);
|
||||
extern std::vector<byte_t> notifier_can2(void);
|
||||
extern std::vector<byte_t> notifier_can3(void);
|
||||
extern std::vector<byte_t> notifier_can4(void);
|
||||
extern std::vector<byte_t> notifier_can5(void);
|
||||
extern std::vector<byte_t> notifier_example2(void);
|
||||
extern bool epsilon_func(std::shared_ptr<vsomeip::payload> _old, std::shared_ptr<vsomeip::payload> _new);
|
||||
|
||||
// my_servers
|
||||
inline std::vector<offer_service_t> 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_method_t> 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_method_t> 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_method_t> 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_method_t> 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_event_t> 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_event_t> 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
|
||||
Reference in New Issue
Block a user