/****************************************************************************** 版权所有 (C), 2013-2023, 科大智能电气有限公司 ****************************************************************************** 文 件 名 : gb104.h 版 本 号 : V1.0 生成日期 : 2022年03月23日 最近修改 : 功能描述 : gb104.c的头文件 函数列表 : 修改历史 : 1.日 期 : 2022年03月23日 修改内容 : 创建文件 ******************************************************************************/ #ifndef __GB104_H #define __GB104_H /**************************************文件包含*******************************/ #include #include #include "lib60870_common.h" #include "lib60870_public.h" #include "lib60870_process.h" #include "Asdu.h" #ifdef __cplusplus extern "C" { #endif /**************************************宏定义*********************************/ #define START_CODE 0x68 #define FRM_I 0 #define FRM_S 1 #define FRM_U 3 #define MAX_FRAME_COUNTER 0x7fff #define COUNTER_LIMIT 0x8000 #define STARTDT_ACT 0x07 #define STARTDT_CON 0x0B #define STOPDT_ACT 0x13 #define STOPDT_CON 0x23 #define TESTFR_ACT 0x43 #define TESTFR_CON 0x83 #define T0_TimeHandle 0 #define T1_TimeHandle 1 #define T2_TimeHandle 2 #define T3_TimeHandle 3 /************************************数据结构定义*****************************/ /** * @brief */ /**************************************数据声明******************************/ /**************************************内部函数声明***************************/ char GB104_DecodeProcess(CS10xHandle_t pstSelf, unsigned char *pucBuf, unsigned short usLen); void GB104_Preprocessor(CS10xHandle_t pstSelf); void DoSFrame(CS10xHandle_t pstSelf); void DoUFrame(CS10xHandle_t pstSelf); char GB104_EncodeFrame(CS10xHandle_t pstSelf); char GB104_EncodeOther(CS10xHandle_t pstSelf); unsigned short GB104_EncodeApci(CS10xHandle_t pstSelf, unsigned char ucFrameType, VIec104Frame * pstFrame); void GB104_EncodeApduLen(CS10xHandle_t pstSelf, VIec104Frame * pstApdu); void GB104_FrameTimerHdl(CS10xHandle_t pstSelf, VIec104Frame * pstApdu); void GB104_SendAck(CS10xHandle_t pstSelf); void SendUFrame(CS10xHandle_t pstSelf, unsigned char ucType); void StopTimer(CS10xHandle_t pstSelf, unsigned short usTimerId); void StartTimer(CS10xHandle_t pstSelf, unsigned short usTimerId); void GB104_TimerOut(CS10xHandle_t pstSelf, unsigned short usGap); bool Check_IEC_104(unsigned char* pstBuf, unsigned short uslen); /************************************外部接口函数声明*************************/ extern void CS10x_104Init(CS10xHandle_t pstSelf, CS10x_SendCb cb, void *arg, CS10x_Type enType); #ifdef __cplusplus } #endif #endif