120 lines
4.1 KiB
C++
120 lines
4.1 KiB
C++
/*============================================================================*/
|
||
/* Copyright (C) huaxu (2022).
|
||
*
|
||
* All rights reserved. This software is huaxu property. Duplication
|
||
* or disclosure without huaxu written authorization is prohibited.
|
||
*
|
||
* @file someip_client.hpp
|
||
* @brief head file of someip client
|
||
* @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 SPI_SERVER_HPP
|
||
#define SPI_SERVER_HPP
|
||
|
||
/*=======[I N C L U D E S]====================================================*/
|
||
|
||
#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING
|
||
#include <csignal>
|
||
#endif
|
||
#include <chrono>
|
||
#include <condition_variable>
|
||
#include <iomanip>
|
||
#include <iostream>
|
||
#include <sstream>
|
||
#include <thread>
|
||
|
||
#include <vsomeip/vsomeip.hpp>
|
||
|
||
#include <mutex>
|
||
#include <vector>
|
||
|
||
/*=======[M A C R O S]========================================================*/
|
||
|
||
#define CAN_CHANNEL_COUNT 6
|
||
#ifdef USE_LOG_MODULE
|
||
#include "log_mgt_api.h"
|
||
#ifdef LOG_TAG_SOMEIP
|
||
#undef LOG_TAG_SOMEIP
|
||
#endif
|
||
#define LOG_TAG_SOMEIP "spi_server"
|
||
|
||
#define someip_log_d(...) \
|
||
do \
|
||
{ \
|
||
Log.d(LOG_TAG_SOMEIP, ##__VA_ARGS__); \
|
||
} while (0)
|
||
#define someip_log_i(...) \
|
||
do \
|
||
{ \
|
||
Log.i(LOG_TAG_SOMEIP, ##__VA_ARGS__); \
|
||
} while (0)
|
||
#define someip_log_w(...) \
|
||
do \
|
||
{ \
|
||
Log.w(LOG_TAG_SOMEIP, ##__VA_ARGS__); \
|
||
} while (0)
|
||
#define someip_log_e(...) \
|
||
do \
|
||
{ \
|
||
Log.e(LOG_TAG_SOMEIP, ##__VA_ARGS__); \
|
||
} while (0)
|
||
#else
|
||
#ifdef LOG_TAG_SOMEIP
|
||
#undef LOG_TAG_SOMEIP
|
||
#endif
|
||
#define LOG_TAG_SOMEIP "spi_server"
|
||
#define someip_log_d(format, ...) \
|
||
do \
|
||
{ \
|
||
printf("D %s ", LOG_TAG_SOMEIP); \
|
||
printf(format, ##__VA_ARGS__); \
|
||
printf("\n"); \
|
||
} while (0)
|
||
#define someip_log_i(format, ...) \
|
||
do \
|
||
{ \
|
||
printf("I %s ", LOG_TAG_SOMEIP); \
|
||
printf(format, ##__VA_ARGS__); \
|
||
printf("\n"); \
|
||
} while (0)
|
||
#define someip_log_w(format, ...) \
|
||
do \
|
||
{ \
|
||
printf("W %s ", LOG_TAG_SOMEIP); \
|
||
printf(format, ##__VA_ARGS__); \
|
||
printf("\n"); \
|
||
} while (0)
|
||
#define someip_log_e(format, ...) \
|
||
do \
|
||
{ \
|
||
printf("E %s ", LOG_TAG_SOMEIP); \
|
||
printf(format, ##__VA_ARGS__); \
|
||
printf("\n"); \
|
||
} while (0)
|
||
|
||
#endif
|
||
/*=======[P A R A M T Y P E D E F]==========================================*/
|
||
|
||
/*=======[E X P O R T D A T A]==============================================*/
|
||
|
||
/* CAN 数据缓冲区 — SPI 线程写入,notifier 线程读取 */
|
||
extern std::vector<uint8_t> g_can_data[CAN_CHANNEL_COUNT];
|
||
extern std::mutex g_can_mutex[CAN_CHANNEL_COUNT];
|
||
|
||
/*=======[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]============*/
|
||
extern void my_spi_server_thread_func(void* arg);
|
||
|
||
/*=======[L O C A L D A T A]================================================*/
|
||
|
||
/*=======[C L A S S I M P L E M E N T A T I O N S]==========================*/
|
||
|
||
#endif // SPI_SERVER_HPP
|