#ifndef PROTECT_INTER_123_INCLUDED #define PROTECT_INTER_123_INCLUDED #include "glbtypes.h" #include "general_defines.h" #ifdef __cplusplus extern "C" { #endif /************************************************************************/ typedef struct{ unsigned char APDUHead; //APDU帧头 2007年7月9日增加 unsigned char Len; //ADSU长度 unsigned char FrameType; //帧类型 unsigned char SourceAdd; //数据源地址 unsigned char TotalFrame_L; //总帧数低字节 unsigned char TotalFrame_H; //总帧数高字节 unsigned char CurrentFrame_L; //当前帧低字节 unsigned char CurrentFrame_H; //当前帧高字节 } PROTOCOL_ASDU_FRAME; /*data types in internal protocol*/ typedef enum { PROTOCOL_DATA_TYPE_GI=0x01, //遥信全召 PROTOCOL_DATA_TYPE_READUSERSETTING, //读用户整定值 PROTOCOL_DATA_TYPE_READSYSSETTING, //读系统定值 PROTOCOL_DATA_TYPE_READSETTINGNUM, //读当前定值区号 PROTOCOL_DATA_TYPE_WRITEUSERSETTING, //写用户整定值 PROTOCOL_DATA_TYPE_WRITESYSSETTING, //写系统定值 PROTOCOL_DATA_TYPE_WRITEDATA, //写仿真数据 PROTOCOL_DATA_TYPE_WRITESETTINGNUM, //切换定值区号 PROTOCOL_DATA_TYPE_CONTROL, //遥控命令 PROTOCOL_DATA_TYPE_TIMER, //修改时钟 PROTOCOL_DATA_TYPE_LOADWAVE, //招负荷录波 PROTOCOL_DATA_TYPE_IEDINFO, //查询装置信息 PROTOCOL_DATA_TYPE_SCALE, //刻度校正(工具软件专用) PROTOCOL_DATA_TYPE_DRIVE, //传动试验(工具软件专用) PROTOCOL_DATA_TYPE_RX_CLZ, //接收测量值 PROTOCOL_DATA_TYPE_READYAOXINSETTING, //读遥信配置,090829新增 PROTOCOL_DATA_TYPE_WRITEYAOXINSETTING, //写遥信配置,090829新增 PROTOCOL_DATA_TYPE_RENEWSYSIMAGE, //更新系统镜像,100122新增 PROTOCOL_DATA_TYPE_RENEWLCDIMAGE, //更新液晶镜像,100310新增 PROTOCOL_DATA_TYPE_CJTEST, //测距试验 110310 新增 PROTOCOL_DATA_TYPE_CJRECALL, //测距故障重召 110310 新增 PROTOCOL_DATA_TYPE_RENEWINFCFG, //更新配置文件 111020 新增 PROTOCOL_DATA_TYPE_RENEWAPPMODULE, //更新应用模块(wck901用) PROTOCOL_DATA_TYPE_SYSTIME, //获取系统时间 PROTOCOL_DATA_TYPE_ATGC, //at故障测距相关命令或数据 PROTOCOL_DATA_TYPE_FPGA_TX, //通信板FPGA相关命令和数据, 用读/写命令的高4bit(第5bit),表示发往哪个通信板,0x0X=靠近CPU,0x1X=远离CPU的通信板 PROTOCOL_DATA_TYPE_FPGA_CPU, //CPU板FPGA相关命令和数据 } PROTOCOL_DATA_TYPE; typedef struct { ST_INT isInit; //是否初始化 ST_UCHAR isGIdone; //是否完成 接口向保护的总召唤(上电启动时接口会向保护下发总召唤,保护返回所有遥信之后才算是总召唤完成) ST_DOUBLE initTime; ST_UCHAR devType; //装置地址 ST_CHAR devName[10]; ST_UCHAR dspCrc[2]; ST_UCHAR dspVersion[2]; //cbt modified 2021.3.29 保护上送的装置信息中的遥信数量改为2字节 //ST_UCHAR yxNum; ST_UINT16 yxNum; ST_UCHAR dzyxcfgNum; ST_UCHAR dzUsrNum; ST_UCHAR dzSysNum; ST_UCHAR ddNum; ST_UCHAR devFunc; //装置功能码,何用?工具查装置信息、更新程序时返回使用 ST_UCHAR dlqNo[4]; ST_UCHAR frequence; ST_UCHAR ycNum; //add 2012-6-14 //cbt add 2021.8.10 添加“时限”这个定值的系数变换处理,同时做浮点和整数的类型变换 ST_UINT32 dzUserCoeffi[256];//定值不超过256个 } PROTECT_DEV_INFO; #define PROTECT_REJECT_SAVE_MAX 32 typedef struct { ST_INT timeSpace; //闭锁时间,0不闭锁 ST_INT maxCount; //最大存储和上送次数 ST_INT saveIndex; //保存的指针 struct { ST_INT saveNum; ST_INT saveCode; ST_DOUBLE saveTime; } codeSave[PROTECT_REJECT_SAVE_MAX]; } PROTECT_REJECT; ST_RET protect_inter_init( ST_VOID ); ST_RET protect_inter_handle( ST_VOID ); ST_RET protect_inter_send_cmd_short( PROTOCOL_DATA_TYPE type, ST_UCHAR data, ST_INT linkIndex ); ST_RET protect_inter_send_cmd_genral( ST_INT linkIndex, PROTOCOL_DATA_TYPE type, ST_UCHAR *data, ST_UCHAR dataLen ); ST_RET protect_inter_send_cmd_dz_setData( ST_INT linkIndex, UNION_FLOAT *dzData, ST_INT dzNum, ST_UCHAR group ); ST_RET protect_inter_send_cmd_yk_driv( ST_INT linkIndex, ST_UCHAR inf, ST_UCHAR dpi ); ST_RET protect_inter_get_devInfo( PROTECT_DEV_INFO *devInfo ); ST_UCHAR protect_inter_get_devIsGIdone(void); ST_RET protect_inter_send_cmd_fpga_readconf( ST_INT linkIndex, ST_UCHAR fType, ST_UCHAR isSecond ); ST_RET protect_inter_send_cmd_fpga_setconf( ST_INT linkIndex, ST_UCHAR fType, ST_UCHAR *data, ST_INT dataLen, ST_UCHAR isSecond ); /************************************************************************/ #ifdef __cplusplus } #endif #endif