175 lines
7.9 KiB
C++
175 lines
7.9 KiB
C++
/*============================================================================*/
|
|
/* 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
|