148 lines
4.2 KiB
C
Raw Normal View History

2025-04-30 16:24:29 +08:00
#ifndef SHMBUFF_123_INCLUDED
#define SHMBUFF_123_INCLUDED
///#include "code.h"
#include "basetype.h"
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
//CAN<41><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>Ϊ32<33><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>256<35><36><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>)
#define CAN_BUFF_NUM 16
#define CANADI_BUFF_NUM 63
//
#define PRINT_BUFF_NUM 31
#define IO_BOARD_NUM_MAX (CLZType_IO_NUM)//4 //cbt modified 2021.3.23 Ӳ<><D3B2>4.0<EFBFBD><EFBFBD>IO<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>->5<>飬ͳһ<CDB3><D2BB><EFBFBD><EFBFBD>basetype.h<>еĺ궨<C4BA><EAB6A8>
#define IO_INPUT_NUM_MAX 32
#ifndef WIN32
struct can_frame {
unsigned int can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
unsigned char can_dlc; /* data length code: 0 .. 8 */
unsigned char data[8] __attribute__((aligned(8)));
};
#else
struct can_frame {
unsigned int can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
unsigned char can_dlc; /* data length code: 0 .. 8 */
unsigned char data[8];
};
#endif
typedef struct{
unsigned char WriteIP; //дBufferָ<72><D6B8>
unsigned char ReadIP; //<2F><>Bufferָ<72><D6B8>
struct can_frame Buffer[CAN_BUFF_NUM]; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><E6BBBA><EFBFBD><EFBFBD>
DateType timeW[CAN_BUFF_NUM]; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
} CanBufferType;
typedef struct{
unsigned char WriteIP; //дBufferָ<72><D6B8>
unsigned char ReadIP; //<2F><>Bufferָ<72><D6B8>
struct can_frame Buffer[CANADI_BUFF_NUM];
} CanADIBufferType;
typedef struct{
unsigned char WriteIP; //дBufferָ<72><D6B8>
unsigned char ReadIP; //<2F><>Bufferָ<72><D6B8>
char Buffer[PRINT_BUFF_NUM][256]; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><E6BBBA><EFBFBD><EFBFBD>
} PrintfBufferType;
//IO<49><4F><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ
typedef struct{
unsigned short updateFlag; //<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>, 0x5555:<3A><>ʼ<EFBFBD><CABC>ֵ<EFBFBD><D6B5>0xAAAA:<3A><>ȡ<EFBFBD><C8A1>IOֵ<4F><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
unsigned char updateIndex; //<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
unsigned char unUse; //Ԥ<><D4A4><EFBFBD>ֽ<EFBFBD>
unsigned int trembleT[IO_INPUT_NUM_MAX]; //IO<49><4F><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD>CAN<41><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} IOTrembleTimeType;
/*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****/
void inf_get_equTime(DateType *equtime);
/** <20><>ֵ<EFBFBD><D6B5>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> **/
int inf_shm_get_addr_dz_prot_recv(DZ_VAL_TYPE **ppucDz);
int inf_shm_get_addr_dz_prot_send(DZ_VAL_TYPE **ppucDz);
int inf_shm_get_addr_sjbg(SoeBufferType **ppstSoe );
int inf_shm_get_addr_zjbg(CheckReportType **ppstCRT);
int inf_shm_get_addr_yxbur(YaoXinStrucType **ppstYx);
int inf_shm_get_addr_operbg(OperReportType **ppstCzsj );
int inf_shm_get_addr_fhlb( WaveType **ppstWT );
int inf_shm_get_addr_gzbg(FaultReportType **ppstFRT);
int inf_shm_get_addr_groupSoe(GroupSoeReportType **ppstGSoe);
int inf_shm_get_addr_clz(CLZBuffType **ppucClz);
int inf_shm_get_addr_gsmv(char **ppucGsmv);
int inf_shm_buffer_check( void );
int inf_shm_buffer_init( void );
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9>can_frame<6D><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>߽<EFBFBD><DFBD><EFBFBD>can<61><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* <20><><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>ж<EFBFBD>CAN<41><4E><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
int inf_shm_can_prot_read( void *data, void *timeW );
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ݣ<EFBFBD><DDA3>ɽӿڷ<D3BF><DAB7><EFBFBD> */
int inf_shm_can_prot_write( const void *data );
int inf_shm_can_driver_read( void *data );
int inf_shm_can_driver_write( const void *data );
/*** <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>print<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD> ****/
int inf_shm_printf_write( const char *forms, ... );
/** <20>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD> ****/
int inf_shm_printf_read( void *data );
//cbt modified 2019.5.22 <20><><EFBFBD><EFBFBD>Ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
/**<2A><>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> **/
//int inf_shm_get_addr_ztblock( char **ppucZtblock );
int inf_shm_get_addr_block( char **ppucBlock );
int inf_shm_get_addr_zt( char **ppucZt );
int inf_shm_get_addr_kxzt( char **ppucKxZt );
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>CORE0<45><30>CAN<41><4E><EFBFBD><EFBFBD> **/
int inf_shm_canadi_driver_read( void *data );
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **/
int inf_shm_canadi_driver_write( const void *data );
int inf_shm_canadi_inf_read( void *data );
int inf_shm_canadi_inf_write( const void *data );
/** <20><>ȡг<C8A1><D0B3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD> **/
int inf_shm_get_addr_harmon(HarmonBuffType **ppucHarmon);
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>բ<EFBFBD>Ƶ<EFBFBD>״̬ **/
int inf_shm_get_addr_tzled(TZLedBuffType **ppucTzled);
/** <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źű<C5BA><C5B1><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ **/
int inf_shm_get_addr_gdb_ll(GdbLLBuffType **ppucGdbLL);
/** <20><>ȡIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨ioIndex<65><78>0<EFBFBD><30>ʼ),<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>ܷ<EFBFBD><DCB7>ط<EFBFBD>0 **/
int inf_shm_io_tremble_time_get( int ioIndex, IOTrembleTimeType *trembleT );
/** <20>ӿڵ<D3BF><DAB5>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> **/
int inf_shm_io_tremble_time_set( int ioIndex, const IOTrembleTimeType *trembleT );
/************************************************************************/
#ifdef __cplusplus
}
#endif
#endif