125 lines
4.4 KiB
C
125 lines
4.4 KiB
C
|
||
#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
|
||
|