commCPU_SUPV/code/user/inc/protect_inter.h
2025-04-30 16:24:29 +08:00

125 lines
4.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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=靠近CPU0x1X=远离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