2430 lines
73 KiB
C
2430 lines
73 KiB
C
/******************************************************************************
|
||
|
||
版权所有 (C), 2013-2023, 科大智能电气有限公司
|
||
|
||
******************************************************************************
|
||
文 件 名 : lib60870_common.h
|
||
版 本 号 : V1.0
|
||
生成日期 : 2022年04月07日
|
||
最近修改 :
|
||
功能描述 : 101及104规约实现中的公共数据及外部服务接口模块
|
||
函数列表 :
|
||
修改历史 :
|
||
1.日 期 : 2022年04月07日
|
||
修改内容 : 创建文件
|
||
*******************************************************************************/
|
||
#ifndef SRC_INC_IEC60870_COMMON_H_
|
||
#define SRC_INC_IEC60870_COMMON_H_
|
||
|
||
#include "lib60870_inc.h"
|
||
#include "md5.h"
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#define COMTRADE "COMTRADE"
|
||
#define SOEPATH "HISTORY/SOE"
|
||
#define COPATH "HISTORY/CO"
|
||
#define EXVPATH "HISTORY/EXV"
|
||
#define FIXPTPATH "HISTORY/FIXPT"
|
||
#define FRZPATH "HISTORY/FRZ"
|
||
#define FLOWREVPATH "HISTORY/FLOWREV"
|
||
#define ULOGPATH "HISTORY/ULOG"
|
||
#define FAULTPATH "HISTORY/FAULT"
|
||
|
||
#define YC_TYPE_ME_NA 0 /*正常测量值*/
|
||
#define YC_TYPE_ME_NB 1 /*标度化值*/
|
||
#define YC_TYPE_ME_NC 2 /*浮点遥测*/
|
||
|
||
#define YX_TYPE_M_SP 0 /*单点遥信*/
|
||
#define YX_TYPE_M_DP 1 /*双点遥信*/
|
||
|
||
#define YK_TYPE_C_SC 0 /*单点遥控*/
|
||
#define YK_TYPE_C_DC 1 /*双点遥控*/
|
||
|
||
#define DD_TYPE_IT_NB 0 /*不带时标*/
|
||
#define DD_TYPE_IT_TC 1 /*不带时标*/
|
||
|
||
#define CONST_NUM_MSG 100
|
||
#define WAVE_MAX_TIME 360000 //6min堵塞时间
|
||
/**
|
||
* \brief 协议类型,初始化时幅值
|
||
*/
|
||
typedef enum
|
||
{
|
||
CS101_TYPE_S = 0, /*CS101 从*/
|
||
CS101_TYPE_M, /*CS101 主*/
|
||
CS104_TYPE_S, /*CS104 从*/
|
||
CS104_TYPE_M, /*CS104 主*/
|
||
} CS10x_Type;
|
||
|
||
/**
|
||
* \brief 协议类型,初始化时幅值
|
||
*/
|
||
typedef enum
|
||
{
|
||
TSKID_ReSend = 0, /*重发标识*/
|
||
TSKID_Anomaly, /*异常帧任务标识*/
|
||
TSKID_RequestLink, /*101规约请求链路状态*/
|
||
TSKID_ResetLink, /*101规约复位链路*/
|
||
TSKID_MResponse, /*101规约链路状态响应*/
|
||
TSKID_StartLink, /*104规约启动链路*/
|
||
TSKID_StopLink, /*104规约断开链路*/
|
||
TSKID_UTest, /*104规约测试U帧*/
|
||
TSKID_Ack, /*101/104共用确认*/
|
||
|
||
TSKID_InitFinish, /*初始化完成*/
|
||
TSKID_YkProcess,
|
||
TSKID_SendCOS, /*COS信息*/
|
||
TSKID_SendSOE, /*SOE*/
|
||
TSKID_SummonYx, /*总招遥信响应*/
|
||
TSKID_SummonYc, /*总招遥测响应*/
|
||
TSKID_SummonResponse, /*总招响应及总招下发共用*/
|
||
TSKID_DdSummon, /*总招电能量及响应*/
|
||
TSKID_DdData, /*电能量数据传输*/
|
||
TSKID_DdTimeData, /*电能量时标数据传输*/
|
||
TSKID_FaultSoe, /*故障事件*/
|
||
TSKID_TimeSyn, /*时钟同步*/
|
||
TSKID_YcDisturb, /*扰动数据*/
|
||
TSKID_ResetProcess, /*复位进程*/
|
||
TSKID_HeartBeat, /*心跳*/
|
||
TSKID_DataTest, /*长帧测试*/
|
||
TSKID_ChgConst, /*修改定值区*/
|
||
TSKID_ReadConst, /*读取定值区*/
|
||
TSKID_ParamPreread, /*参数读取*/
|
||
TSKID_ParamPrewrite,
|
||
/*
|
||
* TypeID=120-126方式 目前大部分地区不使用
|
||
*/
|
||
TSKID_DirReqByNode, /*目录读取*/
|
||
TSKID_FileReady, /*文件就绪*/
|
||
TSKID_NodReady, /*节点就绪*/
|
||
TSKID_NodeData, /*节点数据响应*/
|
||
TSKID_NodeEnd, /*节点结束*/
|
||
TSKID_FileEnd, /*文件结束*/
|
||
/*
|
||
* 细则中按照 210进行文件操作
|
||
*/
|
||
TSKID_FilePro,
|
||
TSKID_UpdateStart, /*启动升级*/
|
||
TSKID_UpdateExe, /*执行升级*/
|
||
TSKID_DirReqByFile, /*读目录任务*/
|
||
/*
|
||
* 南网规约
|
||
*/
|
||
TSKID_ObtainDelay, /*延时获得命令-南网规约*/
|
||
TSKID_ParamRead_NanWang, /*读参数命令-南网规约*/
|
||
TSKID_ParamReadResponse_NanWang,/*读参数回复命令-南网规约*/
|
||
TSKID_ParamPreset_NanWang, /*参数预置命令-南网规约*/
|
||
TSKID_ParamSolidify_NanWang, /*参数固化命令-南网规约*/
|
||
TSKID_ParamWrite_NanWang, /*参数预置/固化命令-南网规约(类型标识 55)*/
|
||
} CS10x_TSKID;
|
||
|
||
typedef enum
|
||
{
|
||
FILE_ST_IDLE = 0, /*空闲*/
|
||
FILE_ST_RD_DIR, /*读取目录*/
|
||
FILE_ST_RD_DIR_RESPONE, /*响应目录读取*/
|
||
FILE_ST_RD_FILE_ACT, /*读文件激活*/
|
||
FILE_ST_RD_FILE_ACT_RESPONE, /*读文件激活确认*/
|
||
FILE_ST_RD_FILE_DATA, /*读文件数据响应*/
|
||
FILE_ST_RD_FILE_DATA_RESPONE, /*读文件数据传输确认*/
|
||
FILE_ST_WR_FILE_ACT, /*写文件激活*/
|
||
FILE_ST_WR_FILE_ACT_RESPONE, /*写文件激活确认*/
|
||
FILE_ST_WR_FILE_DATA, /*写文件*/
|
||
FILE_ST_WR_FILE_DATA_RESPONE, /*写文件响应*/
|
||
FILE_ST_WR_FILE_DATA_Wait, /*文件写等待*/
|
||
} IEC_FILE_ST;
|
||
|
||
/**
|
||
* \brief Message type IDs
|
||
*/
|
||
#define M_DP_NA 3 //不带时标的双点信息
|
||
#define M_SP_NA 1 //不带时标的单点信息
|
||
#define M_ST_NA 5 //步位置信息
|
||
#define M_BO_NA 7 //子站远动终端状态
|
||
#define M_ME_NA 9 //测量值
|
||
#define M_ME_NB 11 //标度化测量值
|
||
#define M_ME_NC 13 //测量值-短浮点数
|
||
#define M_IT_NA 15 //电能脉冲记数量
|
||
#define M_PS_NA 20 //具有状态变位检出的成组单点信息
|
||
#define M_ME_ND 21 //不带品质描述的测量值
|
||
#define M_SP_TB 30 //带长时标的单点信息
|
||
#define M_ST_TB 32 //带长时标的步位置信息
|
||
#define M_DP_TB 31 //带长时标的双点信息
|
||
#define M_BO_TB 33 //带长时标的32位位串
|
||
#define M_ME_TD 34 //带长时标的测量值
|
||
#define M_FT_NA 42 //故障事件信息
|
||
#define C_SC_NA 45 //单点遥控命令
|
||
#define C_DC_NA 46 //双点遥控命令
|
||
#define C_RC_NA 47 //升降命令
|
||
#define C_SE_NA 48 //设定命令
|
||
#define C_SP_NA 55 //参数预置-南网(类型标识55)
|
||
#define M_EI_NA 70 //初始化结束
|
||
#define C_IC_NA 100 //召唤命令
|
||
#define C_CI_NA 101 //电能脉冲召唤命令
|
||
#define C_RD_NA 102 //读数据命令
|
||
#define C_CS_NA 103 //时钟同步命令
|
||
#define C_TS_NA 104 //测试命令
|
||
#define C_RP_NA 105 //复位进程命令
|
||
#define C_CD_NA 106 //延时获得命令-南网
|
||
#define C_RS_NA_NANWANG 108 //读参数命令-南网
|
||
#define P_ME_NC 112 //参数预置-南网
|
||
#define P_AC_NA 113 //参数固化-南网
|
||
#define C_TS_TA 107 //带时标的测试命令
|
||
#define M_FA_NA 142 //FA故障信息
|
||
#define C_FA_SIM 143 //FA 模拟
|
||
#define C_SR_NA 200 //切换定值区
|
||
#define C_RS_NA 202 //读参数和定值
|
||
#define C_RR_NA 201 //读定值区号
|
||
#define C_WS_NA 203 //写参数和定值
|
||
#define M_IT_NB 206 //不带时标的累计量-短浮点
|
||
#define M_IT_TC 207 //带时标的累计量-短浮点
|
||
#define F_FR_NA 210 //文件升级
|
||
#define F_SR_NA 211 //软件升级
|
||
#define ANOMALY 255 //扩展为异常帧ID
|
||
|
||
/**
|
||
* \brief Cause Of Transmission
|
||
*/
|
||
|
||
#define COT_PN 0x40 /*PN位 0-肯定确认 1-否认确认*/
|
||
|
||
#define COT_PERCYC 1 //周期/循环
|
||
#define COT_BACK 2 //背景扫描
|
||
#define COT_SPONT 3 //突发
|
||
#define COT_INIT 4 //初始化
|
||
#define COT_REQ 5 //请求或被请求
|
||
#define COT_ACT 6 //激活
|
||
#define COT_ACTCON 7 //激活确认
|
||
#define COT_DEACT 8 //停止激活
|
||
#define COT_DEACTCON 9 //停止激活确认
|
||
#define COT_ACTTERM 10 //激活结束
|
||
#define COT_RETREM 11 //远程命令引起的返送信息
|
||
#define COT_RETLOC 12 //当地命令引起的返送信息
|
||
#define COT_FILE 13 //文件传送
|
||
#define COT_INTROGEN 20 //响应总召唤
|
||
#define COT_INRO1 21 //响应第1组召唤
|
||
#define COT_INRO2 22 //响应第2组召唤
|
||
#define COT_INRO3 23 //响应第3组召唤
|
||
#define COT_INRO4 24 //响应第4组召唤
|
||
#define COT_INRO5 25 //响应第5组召唤
|
||
#define COT_INRO6 26 //响应第6组召唤
|
||
#define COT_INRO7 27 //响应第7组召唤
|
||
#define COT_INRO8 28 //响应第8组召唤
|
||
#define COT_INRO9 29 //响应第9组召唤
|
||
#define COT_INRO10 30 //响应第10组召唤
|
||
#define COT_INRO11 31 //响应第11组召唤
|
||
#define COT_INRO12 32 //响应第12组召唤
|
||
#define COT_INRO13 33 //响应第13组召唤
|
||
#define COT_INRO14 34 //响应第14组召唤
|
||
#define COT_INRO15 35 //响应第15组召唤
|
||
#define COT_INRO16 36 //响应第16组召唤
|
||
#define COT_REQCO1 38 //响应第1组计数量召唤
|
||
#define COT_REQCOGCN 37 //响应计数量总召唤
|
||
#define COT_REQCO2 39 //响应第2组计数量召唤
|
||
#define COT_REQCO3 40 //响应第3组计数量召唤
|
||
#define COT_REQCO4 41 //响应第4组计数量召唤
|
||
#define COT_E_SBSTA 48 //遥控执行软压板状态错误
|
||
#define COT_E_TIME 49 //遥控执行时间戳错误
|
||
#define COT_E_SIGN 50 //遥控执行数字签名认证错误
|
||
#define COT_E_TYPE 44 /**<未知的类型标识*/
|
||
#define COT_E_REASON 45 /**<未知的传送原因*/
|
||
#define COT_E_CADDR 46 /**<未知的ASDU公共地址*/
|
||
#define COT_E_IADDR 47 /**<未知的信息对象地址*/
|
||
|
||
#define QOI 20 //总召唤 召唤限定词
|
||
#define QCC 5 //总的请求电能量
|
||
#define QRP 1 //进程总复位 复位进程命令限定词
|
||
#define COI_0 0 //初始化原因 当地电源合上
|
||
#define COI_1 1 //初始化原因 当地手动复位
|
||
#define COI_2 2 //初始化原因 远方复位
|
||
#define FBP 0xAA55 //测试命令限定词
|
||
|
||
#define YKSELECT_1 0x81 //选择合 双点加1
|
||
#define YKSELECT_0 0x80 //选择分 双点加1
|
||
#define YKEXCUTE_1 0x01 //执行合 双点加1
|
||
#define YKEXCUTE_0 0x00 //执行分 双点加1
|
||
#define YKCANCEL_1 0x01 //撤销合 双点加1
|
||
#define YKCANCEL_0 0x00 //撤销分 双点加1
|
||
#define YKSTOP_1 0x01 //终止合 双点加1
|
||
#define YKSTOP_0 0x00 //终止分 双点加1
|
||
|
||
//#define YK_CLOSE 2 //遥控合
|
||
//#define YK_OPEN 1 //遥控分
|
||
|
||
#define FILE_TRANS 2 //文件传输附加数据包类型 2表示文件传输
|
||
|
||
#define PARAM_CONT_1 0x01 //参数固化后续状态位1
|
||
#define PARAM_CONT_0 0x00 //参数固化后续状态位0
|
||
#define PARAM_CR_1 0x40 //取消预置
|
||
#define PARAM_SE_1 0x80 //参数预置
|
||
#define PARAM_SE_0 0x00 //参数固化
|
||
|
||
#define PARAM_ST_NONE 0x00 //无任务
|
||
#define PARAM_ST_START 0x01 //任务开始
|
||
#define PARAM_ST_END 0x02 //任务开始
|
||
#define PARAM_ST_OK 0x03 //任务开始
|
||
#define PARAM_ST_TIMEOUT 0x10 //超时
|
||
|
||
#define TSK_PARM_NONE 0 //无任务标识
|
||
#define TSK_PARM_USACT 1 //U&S帧激活 101/104共用
|
||
#define TSK_PARM_USTCON 2 //U&S帧激活确认
|
||
|
||
#define CONTINUE 1 //信息体地址连续
|
||
#define DISCONTINUE 0 //信息体地址不连续
|
||
|
||
#define SHORT_TYPE 2 //待发送数据为短帧
|
||
#define LONG_TYPE 1 //待发送数据为长帧
|
||
#define RESEND_TYPE 3 //待发送数据为重发帧
|
||
#define WAVE_TYPE 4 //启动录波任务
|
||
|
||
#define SETUP_SET_SUMMON 0 //设置初始化总召任务
|
||
#define SETUP_WAIT_SUMMON 1 //等待初始化总召
|
||
#define SETUP_OK_SUMMON 2 //总召任务结束
|
||
#define SETUP_SET_SYN 3 //设置初始化对时
|
||
#define SETUP_WAIT_SYN 4 //等待初始化对时
|
||
#define SETUP_OK_SYN 5 //对时完成
|
||
|
||
#define WRITE_FILE_ERR_NONE 0
|
||
#define WRITE_FILE_ERR_OTHER 1
|
||
#define WRITE_FILE_ERR_CHECK 2
|
||
#define WRITE_FILE_ERR_LEN 3
|
||
#define WRITE_FILE_ERR_ID 4
|
||
|
||
#define WRITE_PARAM_YZ 1
|
||
#define WRITE_PARAM_YZCON 2
|
||
#define WRITE_PARAM_GH 3
|
||
#define WRITE_PARAM_GHCON 4
|
||
#define WRITE_PARAM_CA 5
|
||
#define WRITE_PARAM_CACON 6
|
||
#define WRITE_PARAM_NONE 0
|
||
// #define WRITE_FILE_ERR_LEN 3
|
||
// #define WRITE_FILE_ERR_ID 4
|
||
|
||
#define PARAM_READ 1
|
||
#define PARAM_WRITE 2
|
||
#define PARAM_IDLE 0
|
||
|
||
#define MASTER_TYPE 1
|
||
#define DEV_TYPE 0
|
||
//标志操作相关定义
|
||
#define MAX_FLAGNO 128 //每个模块最多的标志位数
|
||
|
||
#define MAX_FRAME_LEN 255
|
||
#define APCI_LEN 6
|
||
|
||
#define DATATYPE_YC 1 //遥测
|
||
#define DATATYPE_YX 2 //遥信
|
||
#define DATATYPE_Yk 3 //遥控
|
||
#define DATATYPE_YXT 4 //带时标遥信
|
||
|
||
#define CURPARAMAREA 0 /*当前定值区*/
|
||
#define MINPARAMAREA 1 /*最小定值区*/
|
||
#define MAXPARAMAREA 2 /*最大定值区*/
|
||
|
||
#define IECPARAMRD 0 /*读参数定值区*/
|
||
#define IECPARAMWT 1 /*写参数定值区*/
|
||
|
||
/**
|
||
* \brief 任务标识
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned char ucFlag[ MAX_FLAGNO / 8 ]; /*任务数列*/
|
||
// unsigned int ucFlag[MAX_FLAGNO];
|
||
} VFLAGS;
|
||
|
||
typedef struct
|
||
{
|
||
unsigned char byStartCode;
|
||
unsigned char byAPDULen;
|
||
unsigned char byControl1;
|
||
unsigned char byControl2;
|
||
unsigned char byControl3;
|
||
unsigned char byControl4;
|
||
unsigned char byASDU[MAX_FRAME_LEN - APCI_LEN];
|
||
} VIec104Frame;
|
||
|
||
/**
|
||
* @brief 101规约短帧格式 单字节地址
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned char ucStart;
|
||
unsigned char ucControl;
|
||
unsigned char ucAddr;
|
||
unsigned char ucCS;
|
||
unsigned char ucTail;
|
||
} VFrame10_S;
|
||
|
||
/**
|
||
* @brief 101规约短帧格式 双字节地址
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned char ucStart;
|
||
unsigned char ucControl;
|
||
unsigned char ucAddr_L;
|
||
unsigned char ucAddr_H;
|
||
unsigned char ucCS;
|
||
unsigned char ucTail;
|
||
} VFrame10;
|
||
|
||
/**
|
||
* @brief 101规约长帧格式
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned char ucStart1;
|
||
unsigned char ucLength1;
|
||
unsigned char ucLength2;
|
||
unsigned char ucStart2;
|
||
unsigned char ucControl;
|
||
unsigned char ucaData[MAX_FRAME_LEN - 5];
|
||
} VFrame68;
|
||
|
||
/**
|
||
* @brief 101规约帧格式
|
||
*/
|
||
typedef union
|
||
{
|
||
VFrame10 stFrame10;
|
||
VFrame10_S stFrame10_S;
|
||
VFrame68 stFrame68;
|
||
} VIec101Frame;
|
||
|
||
/**
|
||
* \brief 参数
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned char byTskId; //任务序号
|
||
unsigned char byTskSt; //任务状态
|
||
unsigned char byTskRe; //任务预留
|
||
unsigned int uiTskCot;
|
||
unsigned short usTskTcn;
|
||
} ParamTsk_st;
|
||
|
||
/**
|
||
* \brief Parameters for the CS101/CS104 application layer
|
||
*/
|
||
typedef struct CS10x_AppLayerParameters *pCS10x_AppLayerParameters;
|
||
|
||
struct CS10x_AppLayerParameters
|
||
{
|
||
int iSzOfLinkAddr; /*链路地址长度 CS101*/
|
||
int iSzOfTypeId; /* 类型长度 size of the type id (default = 1 - don't change) */
|
||
int iSzOfVSQ; /* VSQ长度 don't change */
|
||
int iSzOfCOT; /* 传输原因长度 size of COT (1/2 - default = 2 -> COT includes OA) */
|
||
int iSzOfCA; /* 公共地址长度 size of common address (CA) of ASDU (1/2 - default = 2) */
|
||
int iSzOfIOA; /* 信息体地址长度 size of information object address (IOA) (1/2/3 - default = 3) */
|
||
int iLinkAddr; /*链路地址*/
|
||
int iPublicAddr; /*公共地址*/
|
||
int iMaxSzOfAsduLen; /* maximum size of the ASDU that is generated - the maximum maximum value is 249 for IEC 104 and 254 for IEC 101 */
|
||
};
|
||
|
||
/**
|
||
* \brief Parameters for CS104 connections - APCI (application protocol control information)
|
||
*/
|
||
typedef struct CS104_APCIParameters *pCS104_APCIParameters;
|
||
|
||
struct CS104_APCIParameters
|
||
{
|
||
int iK;
|
||
int iW;
|
||
int iT0;
|
||
int iT1;
|
||
int iT2;
|
||
int iT3;
|
||
};
|
||
|
||
/**
|
||
* \brief 任务标识
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned short usTypeID; /*类型标识符*/
|
||
unsigned short usSQ; /*连续、离散标识*/
|
||
unsigned short usNum; /*信息对象个数*/
|
||
unsigned short usCot; /*传送原因*/
|
||
unsigned int uiAddr; /*公共地址*/
|
||
unsigned char *pucPayload; /*信息对象起始位置*/
|
||
unsigned short usPayloadSize; /*信息对象大小*/
|
||
unsigned short usCotH; /*传送原因高字节值*/
|
||
} ASDU_Element;
|
||
|
||
/**
|
||
* \brief 数据缓冲
|
||
*/
|
||
struct VCommBuf
|
||
{
|
||
unsigned short usBufSize; /*缓冲区大小*/
|
||
unsigned short usReadPtr; /*读指针*/
|
||
unsigned short usWritePtr; /*写指针*/
|
||
int iFlag; /*控制码(主要用于发送)*/
|
||
unsigned char *pBuf; /*缓冲区*/
|
||
};
|
||
|
||
/**
|
||
* \brief 104时间计数
|
||
*/
|
||
typedef struct
|
||
{
|
||
bool bRun;
|
||
unsigned short usInitVal;
|
||
unsigned int uiCounter;
|
||
} VIec104Timer;
|
||
|
||
/**
|
||
* \brief CP56Time
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned char ucLMs; /*毫秒低位*/
|
||
unsigned char ucHMs; /*毫秒低位*/
|
||
unsigned char ucMin; /*分钟*/
|
||
unsigned char ucHour; /*小时*/
|
||
unsigned char ucWeek; /**< week: 0-不用,n-星期n */
|
||
unsigned char ucMonth; /*月*/
|
||
unsigned char ucYear; /*年*/
|
||
} __CP56Time2a;
|
||
|
||
/**
|
||
* \brief Yx信息
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
unsigned char ucStatus; /*状态信息*/
|
||
unsigned char ucStateType; // 单点双点
|
||
} Yx_Info;
|
||
|
||
/**
|
||
* \brief Yc信息
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
float fVal; /*遥测值*/
|
||
unsigned char ucQds;
|
||
} Yc_Info;
|
||
|
||
/**
|
||
* \brief Yk信息
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
unsigned char ucStatus; /*状态信息*/
|
||
unsigned char ucStateType; // 单点遥控/双点遥控
|
||
unsigned char ucYkType; // 执行/选择
|
||
} Yk_Info;
|
||
|
||
/**
|
||
* \brief Dd信息
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
float fVal; /*遥测值*/
|
||
} Dd_Info;
|
||
|
||
/**
|
||
* \brief SOE 记录信息
|
||
*/
|
||
typedef struct
|
||
{
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
unsigned char ucStatus; /*状态位*/
|
||
unsigned char ucStateType; // 单点双点
|
||
__CP56Time2a stCTime; /*时间*/
|
||
} SOE_Info;
|
||
|
||
typedef struct
|
||
{
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
float fVal; /*遥测值*/
|
||
__CP56Time2a stCTime; /*时间*/
|
||
} TimeDd_Info;
|
||
|
||
/**
|
||
* \brief SOE队列信息
|
||
*/
|
||
#define MAX_SOE_QUEUE_SIZE 256 /*SOE缓冲记录最大个数*/
|
||
typedef struct
|
||
{
|
||
unsigned short usReadPrt; /*确认SOE位置*/
|
||
unsigned short usWritePrt; /*未确认SOE位置*/
|
||
unsigned short usCosPrt; /*COS发送位置*/
|
||
unsigned short usSoePrt; /*SOE发送位置*/
|
||
unsigned short usaSeq[MAX_SOE_QUEUE_SIZE]; /*104I帧序列号 用于主站确认*/
|
||
SOE_Info staInfo[MAX_SOE_QUEUE_SIZE]; /*SOE事件信息*/
|
||
} SOE_Queue;
|
||
|
||
/**
|
||
* \brief 故障事件信息
|
||
*/
|
||
#define MAX_FAULT_EVENT_SOE_SIZE 16
|
||
#define MAX_FAULT_EVENT_YC_SIZE 16
|
||
typedef struct
|
||
{
|
||
unsigned short usSoeNum; // YX数量
|
||
SOE_Info staSoe[MAX_FAULT_EVENT_SOE_SIZE]; /*SOE信息内容*/
|
||
unsigned short usYcNum; // YC数量
|
||
Yc_Info staYc[MAX_FAULT_EVENT_YC_SIZE]; /*YC信息内容*/
|
||
} FAULT_EVENT_Info;
|
||
|
||
/**
|
||
* \brief 故障事件队列信息
|
||
*/
|
||
#define MAX_FAULT_EVENT_QUEUE_SIZE 20 /*故障事件队列大小*/
|
||
typedef struct
|
||
{
|
||
unsigned short usReadPrt; /*确认故障事件位置*/
|
||
unsigned short usWritePrt; /*未确认故障事件位置*/
|
||
unsigned short usSendPrt; /*未确认故障事件位置*/
|
||
FAULT_EVENT_Info staFault[MAX_FAULT_EVENT_QUEUE_SIZE]; /*故障事件信息*/
|
||
} FAULT_EVENT_Queue;
|
||
|
||
/**
|
||
* \brief 故障事件队列信息
|
||
*/
|
||
#define MAX_YC_DISTURB_QUEUE_SIZE 200 /*扰动遥测队列大小*/
|
||
typedef struct
|
||
{
|
||
unsigned short usReadPrt; /*确认故障事件位置*/
|
||
unsigned short usWritePrt; /*未确认故障事件位置*/
|
||
unsigned short usSendPrt; /*未确认故障事件位置*/
|
||
Yc_Info staYc[MAX_YC_DISTURB_QUEUE_SIZE]; /*扰动遥测*/
|
||
} YC_DISTURB_Queue;
|
||
|
||
/**
|
||
* \brief 文件目录信息
|
||
*/
|
||
|
||
#define TRANS_NULL -1 //无文件需要传输
|
||
#define TRANS_DIR 1 //传输目录
|
||
#define TRANS_FILE 2 //传输文件
|
||
|
||
//文件传输对象
|
||
typedef struct
|
||
{
|
||
unsigned char ucCallFlag; //召唤标志
|
||
unsigned char ucFileNameLen; //目录/文件名字长度
|
||
unsigned char ucFileName[64]; //目录/文件名
|
||
__CP56Time2a stStartTime; //查询起始时间
|
||
__CP56Time2a stEndTime; //查询终止时间
|
||
} FileObj_T;
|
||
|
||
|
||
//召唤目录结构特点
|
||
typedef struct
|
||
{
|
||
unsigned char ucFileType; //0:目录, 1:文件
|
||
FileObj_T stFileObj;
|
||
} TRANSFILE_OBJ_T;
|
||
|
||
typedef struct
|
||
{
|
||
bool bAll; /*读文件时间条件使能*/
|
||
__CP56Time2a stStartTime; /*读取文件起始位置*/
|
||
__CP56Time2a stEndTime; /*文件大小*/
|
||
} tIEC_FILE_TIME;
|
||
|
||
#define TRANS_TIMEOUT_MAX 60*1000 /*最大超时时间 ms*/
|
||
#define TRANS_SCH_GAP 10 /*任务调度执行频率 ms*/
|
||
#define FILE_NAME_SIZE 64
|
||
#define DIRFILE_SET_NUM 32
|
||
|
||
//文件传输服务操作码
|
||
enum
|
||
{
|
||
OR_NULL = 0,
|
||
OR_DIR_CALL = 1, //召唤目录
|
||
OR_DIR_ACK = 2, //召唤目录确认
|
||
OR_FILE_ACT = 3, //读文件激活
|
||
OR_FILE_ACK = 4, //读文件激活确认
|
||
OR_FILE_TRANSUP = 5, //读文件数据传输
|
||
OR_FILE_TRANSUP_ACK = 6, //读文件数据响应
|
||
OW_FILE_ACT = 7, //写文件激活
|
||
OW_FILE_ACK = 8, //写文件激活确认
|
||
OW_FILE_TRANS = 9, //写文件数据传输
|
||
OW_FILE_TRANS_ACK = 10 //读文件数据响应
|
||
};
|
||
|
||
#define PROT_FILE_OBJ 0 //文件服务, 文件对象
|
||
#define PROT_DIR_OBJ 1 //文件服务, 目录对象
|
||
|
||
typedef struct
|
||
{
|
||
unsigned char ucFileLen;
|
||
char caFileName[FILE_NAME_SIZE];
|
||
} tFILE_NAME;
|
||
|
||
typedef struct
|
||
{
|
||
tFILE_NAME stFileName; //文件名与文件名长度
|
||
unsigned char ucAttri; //属性 保留
|
||
unsigned int uiId; //文件ID, 兼容底层接口添加
|
||
unsigned int uiFileSize; //文件大小
|
||
__CP56Time2a stTimeStamp;//文件时间
|
||
} tDIR_FILE_INFO;
|
||
|
||
//读取目录/文件服务
|
||
typedef struct
|
||
{
|
||
unsigned char ucDirLen; //根据底层读写接口, 将目录和文件分开
|
||
char caDirName[FILE_NAME_SIZE];
|
||
unsigned char ucFileLen;
|
||
char caFileName[FILE_NAME_SIZE];
|
||
unsigned char ucCallFlag; //召唤标志 0: 目录下所有文件, 1:目录下满足搜索时间段的文件
|
||
__CP56Time2a stStartTime; //查询起始时间
|
||
__CP56Time2a stEndTime; //查询起始时间
|
||
unsigned short usFrmNum; //目录召唤-->本帧文件数量
|
||
unsigned short usCurNum; //目录召唤-->当前传输数量, 管理多次发送
|
||
unsigned int uiTotalSize; //文件读取-->文件大小
|
||
unsigned int uiOffSetSize; //文件读取-->读文件偏移量
|
||
//文件 & 目录共性
|
||
unsigned int uiId; //目录/文件ID
|
||
unsigned char ucFollow; //后续标志, 0: 无后续, 1: 有后续
|
||
unsigned char ucResult; //结果描述 0:成功, 1:失败
|
||
} tFILEDIR_RD_SET;
|
||
|
||
//写文件
|
||
typedef struct
|
||
{
|
||
unsigned char ucFileLen;
|
||
char ucFileName[FILE_NAME_SIZE];
|
||
unsigned int uiFileId; //文件ID
|
||
unsigned int uiOffSetSize; //数据段号
|
||
unsigned int uiFileSize; //文件大小
|
||
unsigned char ucFollow; //后续标志, 0: 无后续, 1: 有后续
|
||
unsigned char ucResult; //0:成功 1:未知错误 2.校验和错误 3.文件长度不对应 4.文件ID 与激活 ID 不一致
|
||
} tFILE_WD_SET;
|
||
|
||
/********************************************/
|
||
|
||
typedef struct
|
||
{
|
||
unsigned char ucType; /*类型*/
|
||
unsigned char ucLen; /*长度*/
|
||
union
|
||
{
|
||
unsigned char ucVal; //无符号型
|
||
char cVal; //有符号型
|
||
unsigned short usVal; //无符号型
|
||
short sVal; //有符号型
|
||
unsigned int ulVal; //无符号型
|
||
int lVal; //有符号型
|
||
float fVal; //浮点数
|
||
unsigned long long ullVal; //无符号型
|
||
long long llVal; //有符号型
|
||
double dVal; //双精度类型
|
||
char caBuf[64]; //
|
||
} unVal;
|
||
|
||
unsigned int uiInfoAddr; /*信息体地址*/
|
||
} IECPARAM_T;
|
||
|
||
struct CS10x_t;
|
||
typedef struct CS10x_t *CS10xHandle_t;
|
||
|
||
/**
|
||
* \brief GetLayerSt 获取链路层状态,检测是否满足发送条件
|
||
* \param
|
||
* \return
|
||
*
|
||
*/
|
||
typedef int (*CS10x_SendCb)(unsigned char *buf, unsigned short usLen, void *arg);
|
||
|
||
/**
|
||
* \brief SearchOneFrame 查找规约指定帧
|
||
* \param
|
||
* \param pBuf 数据缓冲区
|
||
* \param usLen 数据长度
|
||
*
|
||
* \return
|
||
*/
|
||
typedef char (*CS10x_SearchOneFrame)(CS10xHandle_t pstSelf, unsigned char *pucBuf, unsigned short usLen);
|
||
|
||
/**
|
||
* \brief Preprocessor 规约预处理 根据指定的规约进行数据解析,提取ASDU数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Preprocessor)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief GetLayerSt 获取链路层状态,检测是否满足发送条件
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Send_Cb)(unsigned char *buf, unsigned short len, void *arg);
|
||
|
||
/**
|
||
* \brief GetLayerSt 获取链路层状态,检测是否满足发送条件
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetLayerSt)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief EncodeASDU 打包ASDU数据域
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef char (*CS10x_EncodeASDU)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief EncodeASDU 打包ASDU数据域
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef char (*CS10x_EncodeOther)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief LinkClose 关闭链路接口
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_LinkClose)(void *arg);
|
||
|
||
/**
|
||
* \brief SetValue 规约更新应用数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetTime)(__CP56Time2a *pTime);
|
||
|
||
/**
|
||
* \brief SetValue 规约更新应用数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_SetTime)(__CP56Time2a *pTime);
|
||
|
||
/**
|
||
* \brief SetValue 规约更新应用数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_SetValue)(Yc_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief SetStatus 规约更新应用状态
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_SetStatus)(Yx_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief SetDdValue 规约更新应用数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_SetDdValue)(TimeDd_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief AddSOE 规约添加SOE信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_AddSOE)(SOE_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief AddDiturbYc 规约添加遥测扰动信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_AddDiturbYc)(Yc_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief GET_DiturbYc_SendNum信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GET_DiturbYc_SendNum)(void *pParam);
|
||
|
||
/**
|
||
* \brief Get遥测扰动信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetDiturbYc)(Yc_Info *pstInfo, void *pParam, unsigned int usStPos);
|
||
|
||
/**
|
||
* \brief 扰动遥测数据主动发送查询窗口
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_SendDiturbYc)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief 向下行设备发送确认帧
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_AckFrameNotification)(void);
|
||
|
||
|
||
/**
|
||
* \brief 扰动遥测信息更新
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Updata_DiturbYc_Pout)(void *pParam, unsigned int Pos);
|
||
|
||
|
||
/**
|
||
* \brief AddFaultEvent 规约添加故障事件信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_AddFauleEvent)(FAULT_EVENT_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief AddTimeDdu 规约添加电度信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_AddTimeDdu)(TimeDd_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief GetSoe获取SOE信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetSOE)(SOE_Info *pstInfo, void *pParam, unsigned int usStPos);
|
||
|
||
/**
|
||
* \brief GetSoe获取SOE信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetTimeDdu)(TimeDd_Info *pstInfo, void *pParam, unsigned int usStPos);
|
||
|
||
/**
|
||
* \brief GetSoeSendNum信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GET_SOE_SendNum)(void *pParam);
|
||
|
||
|
||
/**
|
||
* \brief GetEventSendNum信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GET_Event_SendNum)(void *pParam);
|
||
|
||
/**
|
||
* \brief GetTimeDduSendNum信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetTimeDdu_SendNum)(void *pParam);
|
||
|
||
/**
|
||
* \brief GetSoe获取SOE信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Updata_SOE_Pout)(void *pParam, unsigned int Pos);
|
||
|
||
/**
|
||
* \brief GetTimeDdu获取Dd信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Updata_TimeDdu_Pout)(void *pParam, unsigned int Pos);
|
||
|
||
/**
|
||
* \brief GetFaultEvent 获取故障事件信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetFaultEvent)(FAULT_EVENT_Info *pstInfo, void *pParam, unsigned int usStPos);
|
||
|
||
/**
|
||
* \brief GetFaultEvent_Pout 获取故障事件信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetFaultEvent_Pout)(void *pParam);
|
||
|
||
/**
|
||
* \brief GetFaultEvent_PStart 获取故障事件信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetFaultEvent_Pin)(void *pParam);
|
||
|
||
/**
|
||
* \brief Updata_FaultEvent_Pout 获取故障事件信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Updata_FaultEvent_Pout)(void *pParam, unsigned int Pos);
|
||
|
||
/**
|
||
* \brief CS10x_SendSoeEnent Soe及Event主动发送查询窗口
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_SendSoeEnent)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief GetYcCountByGroup 规约获取组遥测数据个数
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetYcCountByGroup)(unsigned short ucGroupID, void *pParam, unsigned int *StartInf, unsigned int *EndInf);
|
||
|
||
/**
|
||
* \brief GetYcValueByGroup 规约获取组遥测数据
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetYcValueByGroup)(unsigned short ucGroupID, unsigned short usIdx, Yc_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief GetYxCountByGroup 规约获取组遥信数据个数
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetYxCountByGroup)(unsigned short ucGroupID, void *pParam, unsigned int *StartInf, unsigned int *EndInf);
|
||
|
||
/**
|
||
* \brief GetYxStatusByGroup 规约获取组遥信数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetYxStatusByGroup)(unsigned short ucGroupID, unsigned short usIdx, Yx_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief CS10x_GetYxPotPro Soe及Event主动发送查询窗口
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetYxPotPro)(void *pParam, unsigned short usIdx);
|
||
|
||
/**
|
||
* \brief GetDdCountByGroup 规约获取组遥测数据个数
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
* \param ucTimeEn带时标
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetDdCountByGroup)(unsigned short ucGroupID, void *pParam, unsigned int *StartInf, unsigned int *EndInf, unsigned char ucTimeEn);
|
||
|
||
/**
|
||
* \brief GetDdValueByGroup 规约获取组遥测数据
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
* \param ucTimeEn带时标
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetDdValueByGroup)(unsigned short ucGroupID, unsigned short usIdx, TimeDd_Info *pstInfo, void *pParam, unsigned char ucTimeEn);
|
||
|
||
typedef unsigned short (*CS10x_GetParamArea)(unsigned char ucType, void *pParam);
|
||
|
||
typedef unsigned short (*CS10x_SetParamArea)(unsigned short usArea, void *pParam);
|
||
|
||
/**
|
||
* \brief CS10x_AddIECParam 规约添加定值参数数据
|
||
* \param ucAll
|
||
* \param ucForce
|
||
* \param ucType
|
||
* \return
|
||
*/
|
||
typedef unsigned char (*CS10x_AddIECParam)(unsigned char ucAll, unsigned char ucForce, unsigned char ucType, IECPARAM_T *pstVal, void *pParam);
|
||
|
||
typedef unsigned char (*CS10x_RunReadIECParam)(void *pParam);
|
||
|
||
typedef unsigned char (*CS10x_RunWriteIECParam)(void *pParam);
|
||
|
||
/**
|
||
* \brief GetParamCount 规约获取组遥测数据个数
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef unsigned short (*CS10x_GetParamCount)(void *pParam);
|
||
|
||
/**
|
||
* \brief CS10x_GetParamInfoByIndx 规约获取组遥测数据
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef unsigned char (*CS10x_GetParamInfoByIndx)(unsigned char ucType, unsigned short usIdx, IECPARAM_T *pstVal, void *pParam);
|
||
|
||
/**
|
||
* \brief CS10x_GetParamInfoByInfo 规约获取组遥测数据
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
//typedef int (*CS10x_GetParamInfoByInfo) (unsigned char byType,unsigned short usIfo, CONSTPARAM_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief CS10x_UpdateParamPosRwst 规约获取组参数点号状态数据
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
//typedef void(*CS10x_UpdateParamPosRwst) (unsigned char byType,CONSTPARAM_Info *pstInfo, void *pParam);
|
||
/**
|
||
* \brief GetNumDirFile 获取目录下文件数量
|
||
* \param caDirName 文件名
|
||
* \param pstIecFile 条件信息
|
||
* \return 目录文件个数
|
||
*/
|
||
typedef int (*CS10x_GetNumDirFile)(tFILEDIR_RD_SET *pstRdSet);
|
||
|
||
/**
|
||
* \brief ReadFile 获取目录下文件属性
|
||
* \param pstIecFile 读取文件条件
|
||
* \param pFileSet 文件缓冲区
|
||
* \param ucType 获取属性类型 1-通过序号获取,0-名称获取
|
||
* \param usItem 文件序号
|
||
* \param caDirName 文件夹名称
|
||
* \param caFileName 文件名称
|
||
* \return true/false
|
||
*/
|
||
typedef bool (*CS10x_GetProDirFile)(tFILEDIR_RD_SET *pstRdSet, tDIR_FILE_INFO *pstDirFileInfo, unsigned char ucType, unsigned short usItem, void *pvInfo);
|
||
|
||
/**
|
||
* \brief ReadFile 读取文件数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_ReadFile)(unsigned int uiOffset, unsigned char *pBuf, unsigned short usLen, void *pvParam);
|
||
|
||
/**
|
||
* \brief WriteFile 读取文件数据
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_WriteFile)(tFILEDIR_RD_SET *pstRdSet, unsigned char *pBuf, unsigned short usLen, void *pUsrData);
|
||
|
||
/**
|
||
* \brief SearchFileName 比对文件名
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef bool (*CS10x_SearchFileName)(char *caDirName, char *caFileName, void *pUsrData);
|
||
|
||
/**
|
||
* \brief CS10x_WriteFileCheck 查询待写入文件
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef unsigned char (*CS10x_WriteFileCheck)(tFILE_WD_SET *pstWdSet, void *pvFileWrteParam, void *pUsrData);
|
||
|
||
/**
|
||
* \brief Write 写入文件
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Write)(unsigned int uiOffset, unsigned char *pBuf, unsigned short usLen, void *pvFile, void *pUsrData);
|
||
|
||
/**
|
||
* \brief WriteFinish 写入文件完成
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_WriteFinish)(unsigned char *pucMd5, void *pvFile, void *pUsrData);
|
||
|
||
/**
|
||
* \brief WriteFinish 写入文件完成
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_UpdateProc)(unsigned short usCos, unsigned char ucSe, void *pUsrData);
|
||
|
||
/**
|
||
* \brief ParamTaskDataProcess 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_ParamTaskDataProcess)(unsigned char byTskId, unsigned int uiParam, void *pUsrData);
|
||
|
||
/**
|
||
* \brief SetParamTask 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_SetParamTaskst)(void *pUsrData, ParamTsk_st *pTaskst);
|
||
|
||
/**
|
||
* \brief SetParamTask 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef bool (*CS10x_GetandClearUlogTskst)(void *pParam);
|
||
|
||
/**
|
||
* \brief SetParamTask 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_GetParamTaskst)(void *pUsrData, ParamTsk_st *pTaskst);
|
||
|
||
/**
|
||
* \brief SetParamTask 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_CheckParamRWSt)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief SetParamTask 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_CheckUlogReadSt)(CS10xHandle_t pstSelf);
|
||
|
||
/**
|
||
* \brief SetParamTask 设置读写参数任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_ParamConstUpdate)(void);
|
||
|
||
|
||
|
||
/**
|
||
* \brief 检查文件传输状态
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_CheckFileTransferSt)(CS10xHandle_t pstSelf);
|
||
|
||
|
||
/**
|
||
* \brief 检查文件传输任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_PollFileTransTask)(CS10xHandle_t pstSelf);
|
||
|
||
|
||
/**
|
||
* \brief 注册文件传输任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_RegFileTransObj)(void *pUsrData, FileObj_T *FileObj, unsigned char ucFileType);
|
||
|
||
|
||
/**
|
||
* \brief 获取文件传输任务
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_CheckTransFileObj)(tFILEDIR_RD_SET *pstRdSet, void *pUsrData);
|
||
|
||
/**
|
||
* \brief 检测文件传输任务超时
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_CheckTransTimeOut)(void *pUsrData);
|
||
|
||
/**
|
||
* \brief 目录接收完成回调处理函数
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_DirRecvFinish)(tDIR_FILE_INFO *pstDirFileSet, unsigned char ucFrmNum, unsigned char ucFollow);
|
||
|
||
|
||
/**
|
||
* \brief GetYcValueByGroup 规约获取组遥测数据
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_Encrypt)(char *pBuf, unsigned short usLen);
|
||
|
||
/**
|
||
* \brief GetYcValueByGroup 规约获取组遥测数据
|
||
* \param ucGroupID 组序号
|
||
* \param ucIdx 组内下标
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_Md5Result)(unsigned char *pBuf);
|
||
|
||
/**
|
||
* \brief 104Time Out t0~t3时间管理
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_TimeManager)(CS10xHandle_t pstSelf, unsigned short usGap);
|
||
|
||
/**
|
||
* \brief 写入复位原因
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef void (*CS10x_Write_ResetCOI)(unsigned char Coi);
|
||
|
||
/**
|
||
* \brief 读出复位原因标志
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef unsigned char (*CS10x_Read_ResetCOI)(void);
|
||
|
||
/**
|
||
* \brief 根据地址及属性获取具体信息
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_GetDdValue)(int infoaddr, TimeDd_Info *DdInfo, unsigned short wType);
|
||
|
||
/**
|
||
* \brief 遥控校验
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef unsigned char (*CS10x_YkVerify)(void *pParam);
|
||
|
||
/**
|
||
* \brief 规约更新遥控应用状态
|
||
* \param
|
||
*
|
||
* \return
|
||
*/
|
||
typedef int (*CS10x_SetYkInfor)(Yk_Info *pstInfo, void *pParam);
|
||
|
||
/**
|
||
* \brief CS10x
|
||
*/
|
||
typedef struct CS10x_t
|
||
{
|
||
/**********************************************************
|
||
*用户自定义数据
|
||
***********************************************************/
|
||
void *pUsrData;/*用户自定义数据*/
|
||
/**********************************************************
|
||
*公共配置参数
|
||
***********************************************************/
|
||
CS10x_Type eCS10x_Type;/*规约类型 CS101Master CS101Slave CS104Master CS104Slave*/
|
||
/*通用参数类*/
|
||
struct CS10x_AppLayerParameters stAppParameters; /*规约参数*/
|
||
bool bFbpType; /* 长帧测试限定词类型 0表示发什么回什么 1表示回复固定*/
|
||
unsigned char ucSenSoeEa; /* 发送SOE 带时标遥信使能*/ //参数关联
|
||
unsigned char ucSenCosEa; /* 发送COS 不带时标遥信使能*/ //参数关联
|
||
unsigned char ucYKEndFrame; /* 遥控结束帧投退*/ //参数关联
|
||
unsigned char ucReadFileVSQ; /* 读文件数据传输VSQ值,部分主站无法识别0,需要投1*/
|
||
unsigned char ucPreSetContType; /* 参数预置忽略无后续帧 0=标准规约 1=不校验后续帧,使用超时和固化进行取消*/
|
||
unsigned short usAsduPublicAddr; /* ASDU公共地址*/
|
||
unsigned short usYcType; /* 遥测类型*/
|
||
unsigned short usYxType; /* 遥信类型*/
|
||
unsigned short usYkType; /* 遥控类型*/
|
||
unsigned short usDdType; /* 电度类型*/
|
||
unsigned short usWaveInfoAddr; /* 录波完成点号*/
|
||
unsigned short usFaultEnable; /* 故障事件使能*/
|
||
unsigned int uiSummon_Gap; /* 总召间隔*/ //参数关联
|
||
unsigned int uiESummon_Gap; /* 电能总召间隔*/ //参数关联
|
||
unsigned int uiSyn_Gap; /* 同步间隔*/ //参数关联
|
||
unsigned int uiHeart_Gap; /* 心跳间隔*/ //参数关联
|
||
unsigned int uiSend_Gap; /* 数据发送间隔参数*/
|
||
|
||
/*运行状态类*/
|
||
unsigned char ucSE; /* 遥控选择执行标识 0=执行 1=选择*/
|
||
unsigned char ucQu; /* 遥控状态 0=分 1=合*/
|
||
unsigned int ulYkAddr; /* 遥控点号*/
|
||
unsigned int uiYxConstInfo; /* 遥信起始地址*/ //参数关联
|
||
unsigned int uiYcConstInfo; /* 遥测起始地址*/ //参数关联
|
||
unsigned int uiDdConstInfo; /* 电度起始地址*/ //参数关联
|
||
|
||
/**********************************************************
|
||
*101规约配置参数
|
||
***********************************************************/
|
||
bool bDir; /* 方向位*/
|
||
bool bSimpleInit; /* 简单初始化*/
|
||
unsigned char ucFileAckType; /* 文件传输无应答使能 0-有应答 1-无应答*/
|
||
unsigned char ucReSend_Num; /* 重发次数参数*/
|
||
unsigned short usReSend_Gap; /* 超时重发间隔参数*/
|
||
unsigned short usResetDelay; /* 复位进程延时*/
|
||
/**********************************************************
|
||
*104规约配置参数
|
||
***********************************************************/
|
||
unsigned char ucMultiFrameEn; /* 多帧使能*/
|
||
struct CS104_APCIParameters stAPCIParameters; /*104规约参数*/
|
||
|
||
/**********************************************************
|
||
*函数指针
|
||
***********************************************************/
|
||
/*规约区分实现函数*/
|
||
CS10x_Send_Cb pfnSendCb; /*数据发送接口*/
|
||
CS10x_Encrypt pfnEncrypt; /*数据是否加密*/
|
||
CS10x_Md5Result pfnMd5ResultCb; /*更新文件md5接口*/
|
||
CS10x_GetLayerSt pfnGetLayerSt; /*链路层状态,是否连接正常,是否可以正常发送数据*/
|
||
CS10x_LinkClose pfnLinkClose; /**关闭链路接口*/
|
||
CS10x_SearchOneFrame pfnDecodeProcess; /*查找响应规约数据帧函数*/
|
||
CS10x_TimeManager pfnTimerManager; /*定时任务接口*/
|
||
CS10x_EncodeASDU pfnEncodeFrame; /*ASDU数据打包*/
|
||
CS10x_EncodeOther pfnEncodeOther; /*其他短帧数据打包*/
|
||
CS10x_GetTime pfnGetTime; /*获取事件*/
|
||
CS10x_SetTime pfnSetTime; /*设置事件*/
|
||
CS10x_AckFrameNotification pfnAckFrameNotification; /*向下行设备发送确认帧*/
|
||
/*对外提供数据*/
|
||
CS10x_SetValue pfnSetValue; /*规约更新应用数据*/
|
||
CS10x_SetStatus pfnSetStatus; /*规约更新应用状态*/
|
||
CS10x_SetDdValue pfnSetDdValue; /*规约更新应用数据*/
|
||
CS10x_AddSOE pfnAddSOE; /*添加SOE信息*/
|
||
CS10x_AddFauleEvent pfnAddEvent; /*添加故障事件*/
|
||
CS10x_AddDiturbYc pfnAddDiYcVal; /*添加扰动遥测信息*/
|
||
CS10x_Write_ResetCOI pfnWrite_ResetCOI; /*规约写复位标志*/
|
||
CS10x_AddTimeDdu pfnAddTimeDdu; /*添加故障事件*/
|
||
CS10x_GetDdValue pfnGetDdValue;
|
||
CS10x_YkVerify pfnFcYkVerify; /*遥控校验*/
|
||
CS10x_SetYkInfor pfnSetYkInfor; /*规约更新遥控应用数据*/
|
||
/*向外获取数据*/
|
||
CS10x_GetYcCountByGroup pfnGetYcCountByGroup; /*规约获取组遥测数量*/
|
||
CS10x_GetYcValueByGroup pfnGetYcValueByGroup; /*规约获取组遥测数据*/
|
||
CS10x_GetYxCountByGroup pfnGetYxCountByGroup; /*规约获取组遥信数量*/
|
||
CS10x_GetYxStatusByGroup pfnGetYxStatusByGroup; /*规约获取组遥信数据*/
|
||
CS10x_GetDdCountByGroup pfnGetDdCountByGroup;
|
||
CS10x_GetDdValueByGroup pfnGetDdValueByGroup;
|
||
CS10x_GetParamArea pfnGetParamArea; /*获取参数定值区*/
|
||
CS10x_SetParamArea pfnSetParamArea; /*更新参数定值区*/
|
||
CS10x_AddIECParam pfnAddIECParam;
|
||
CS10x_RunReadIECParam pfnRunReadIECParam;
|
||
CS10x_GetParamCount pfnGetParamCount;
|
||
CS10x_GetParamInfoByIndx pfnGetParamInfoByIndx;
|
||
CS10x_RunWriteIECParam pfnRunWriteIECParam;
|
||
|
||
CS10x_GetDiturbYc pfnGetDiturbYc ; /*规约获取扰动遥测数据*/
|
||
CS10x_GET_DiturbYc_SendNum pfnGetDiturbYc_SendNum; /*获取待发送的扰动遥测数据数量*/
|
||
CS10x_Updata_DiturbYc_Pout pfnUpdata_DiturbYc_Pout; /*扰动数据更新*/
|
||
|
||
CS10x_GetSOE pfnGetSOE; /*规约获取soe数据*/
|
||
CS10x_Updata_SOE_Pout pfnUpdata_SOE_Pout;
|
||
CS10x_GET_SOE_SendNum pfnGetSOE_SendNum;
|
||
CS10x_GetFaultEvent pfnGetFaultEvent;
|
||
CS10x_Updata_FaultEvent_Pout pfnUpdata_FaultEvent_Pout;
|
||
CS10x_GET_Event_SendNum pfnGetEvent_SendNum;
|
||
CS10x_GetTimeDdu pfnGetTimeDdu;
|
||
CS10x_Updata_TimeDdu_Pout pfnUpdata_TimeDdu_Pout;
|
||
CS10x_GetTimeDdu_SendNum pfnGetTimeDdu_SendNum; /*获取电度扰动数量*/
|
||
CS10x_GetYxPotPro pfnGetYxPotPro;
|
||
CS10x_GetProDirFile pfnGetProDirFile; /*按条件搜索目录*/
|
||
CS10x_GetNumDirFile pfnGetNumDirFile; /*按条件搜索目录*/
|
||
CS10x_ReadFile pfnReadFile; /*读取文件内容*/
|
||
void *pvFileReadParam; /*读文件指针数据*/
|
||
|
||
CS10x_WriteFile pfnWriteFile; /*读取文件内容*/
|
||
CS10x_SearchFileName pfnSearchFileName; /*按名称搜索文件*/
|
||
|
||
CS10x_Write pfnWrite; /*写入文件内容*/
|
||
CS10x_WriteFileCheck pfnWriteFileCheck; /*查询待写入文件*/
|
||
CS10x_WriteFinish pfnWriteFinish; /*文件写完成*/
|
||
void *pvFileWrteParam; /*写文件指针数据*/
|
||
|
||
CS10x_UpdateProc pfnUpdateProc; /*升级回调函数*/
|
||
CS10x_Read_ResetCOI pfnRead_ResetCOI; /*规约读复位标志*/
|
||
|
||
/*poll查询文件升级*/
|
||
CS10x_PollFileTransTask pfnPollFileTransTask; //查询是否有文件升级任务
|
||
CS10x_RegFileTransObj pfnRegFileTransObj; //注册文件传输对象
|
||
CS10x_CheckTransFileObj pfnCheckTransFileObj; //获取文件传输对象
|
||
CS10x_CheckTransTimeOut pfnCheckTransTimeOut; //检测文件传输超时
|
||
CS10x_DirRecvFinish pfnDealDirRecvFinish; //目录接收完成回调函数
|
||
|
||
tFILEDIR_RD_SET stRdSet; //目录/文件传输服务
|
||
tFILE_WD_SET stWdSet; //写文件服务
|
||
|
||
/**********************************************************
|
||
*规约公共变量
|
||
***********************************************************/
|
||
MD5_CTX stMd5_Ctx; /*加密MD5结果*/
|
||
unsigned char ucaMd5_Result[16]; /*文件Md5结果*/
|
||
struct VCommBuf stPubBuf; /*公共数据缓冲区 目前仅用做异常帧原报文保存*/
|
||
struct VCommBuf stRecvBuf; /*接收数据缓冲区*/
|
||
struct VCommBuf stSendBuf; /*发送数据缓冲区*/
|
||
struct VCommBuf stSendBakBuf; /*发送数据备份区*/
|
||
ASDU_Element stAsduElem; /*ASDU数据域内容*/
|
||
unsigned char ucDataBackBuf[MAX_FRAME_LEN];/*数据备份缓冲区,目前用于南网参数镜像回复*/
|
||
unsigned char ucBackLen;
|
||
|
||
/**********************************************************
|
||
*任务管理变量
|
||
***********************************************************/
|
||
VFLAGS stTaskFlags; /*任务标识 每一任务控制标志位(目前共有128位)*/
|
||
unsigned int uiaTaskParam[MAX_FLAGNO]; // 每个任务是否需要配置任务参数
|
||
unsigned char byTaskFlagId;
|
||
|
||
/*
|
||
* 状态类信息
|
||
*/
|
||
unsigned char ucInitStatus; /*规约初始化状态*/
|
||
unsigned char ucFirstAct; /*主站时第一次初始化任务标识*/
|
||
|
||
unsigned int uiFrameTmCnt; /* 报文发送间隔时间计数 单位ms*/
|
||
unsigned int uiHeart_Tcn; /* 心跳累计时间计数 */
|
||
unsigned int uiSummon_Tcn; /* 定时总招时间计数 */
|
||
unsigned int uiESummon_Tcn; /* 定时总招时间计数 */
|
||
unsigned int uiTimeSyn_Tcn; /* 定时对时时间计数 */
|
||
|
||
unsigned short usYxSendNum; /*遥信发送个数*/
|
||
unsigned short usYcSendNum; /*遥测发送个数*/
|
||
unsigned short usDisTurbYcSendNum; /*扰动遥测发送个数*/
|
||
unsigned short usDdSendNum; /*已发送电度个数*/
|
||
|
||
unsigned short usSoeSendNum;
|
||
unsigned short usSoeSendNoAckNum; /*Soe发送未确认数量*/
|
||
unsigned short usCosSendNoAckNum; /*Soe发送未确认数量*/
|
||
unsigned short usEventSendNoAckNum; /*事件发送未确认数量*/
|
||
unsigned short usDduSendNoAckNum; /*时标电度发送未确认数量*/
|
||
unsigned short usDiturbYcSendNoAckNum; /*扰动遥测发送未确认数量*/
|
||
|
||
unsigned short usSoeSendSetup; /*Soe发送步骤*/
|
||
unsigned short usDdSummonSetup; /*电度总召回复*/
|
||
|
||
unsigned char ucParamFlag; /*记录参数设置读取状态标识*/
|
||
unsigned short usParamSendNum; /*参数发送个数*/
|
||
|
||
unsigned char ucPmPresetFlag; /*参数预置*/
|
||
unsigned int uiPmPresetTimeout; /*预置超时时间*/
|
||
unsigned int uiPreSetContCount; /*参数预置后续帧逻辑判断*/
|
||
|
||
unsigned char ucPmPresetVsqFlag;
|
||
|
||
unsigned char ucTransStatus; /* 文件传输状态*/
|
||
unsigned int uiTransTimerCur; /* 文件传输定时器*/
|
||
unsigned int uiTransTimerMax; /* 文件传输定时器*/
|
||
bool bContinueSendFlag; /* continue send I Frame flag about K */
|
||
|
||
/**********************************************************
|
||
*101规约变量
|
||
***********************************************************/
|
||
unsigned char ucInitStep; /* 链路初始化步骤 针对101规约*/
|
||
unsigned char ucSelf_FCB; /*我方上次的FCB值*/
|
||
unsigned char ucRxAckFlag; /* 收到确认帧标志 针对101规约*/
|
||
unsigned char ucRxLinkStatusFlag; /* 收到链路状态响应帧标志 针对101规约*/
|
||
unsigned char ucRxLinkRequestFlag; /* 收到链路状态请求帧标志 针对101规约*/
|
||
unsigned char ucRxLinkResetFlag; /* 收到链路复位帧标志 针对101规约*/
|
||
unsigned char ucRxInitFinishFlag; /* 收到初始化完成标志 针对101规约*/
|
||
unsigned char ucHeart_Resend_Flag; /* 心跳重发标志 */
|
||
unsigned char ucFileTransFrame; /* 文件传输帧标识 */
|
||
unsigned short usFileNoneAckNum; /* 文件传输未确认帧数 */
|
||
unsigned short usResend_Ncn; /* 重发次数计数 */
|
||
unsigned int uiResend_Tcn; /* 重发间隔时间计数 */
|
||
unsigned int uiRelink_Tcn; /* 链路超时间隔时间计数 */
|
||
unsigned int uiInit_Tcn; /* 101初始化中等待时间计数 */
|
||
unsigned int uiReInit_Tcn; /* 101重新初始化间隔时间计数 */
|
||
unsigned int uiInit_Resend_Ncn; /* 101初始化中重发次数计数 */
|
||
/**********************************************************
|
||
*104规约变量
|
||
***********************************************************/
|
||
unsigned short usSendNum; /*Send Counter */
|
||
unsigned short usRecvNum; /*Receive Counter*/
|
||
unsigned short usAckSendNum; /*Receive Ack Counter*/
|
||
unsigned short usAckRecvNum; /*Have Ack Receive Counter*/
|
||
VIec104Timer stM_vTimer[4]; /*iec104 timer for T0 T1 T2 T3*/
|
||
} CS10x;
|
||
|
||
|
||
|
||
//***************************** 规约废弃接口 ************************************//
|
||
/**
|
||
* @brief 获取时间接口(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetTimeHandler(CS10xHandle_t pstSelf, CS10x_GetTime cb);
|
||
|
||
/**
|
||
* @brief 设置时间接口(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SetTimeHandler(CS10xHandle_t pstSelf, CS10x_SetTime cb);
|
||
|
||
/**
|
||
* @brief 设置计量模块接收遥测接口(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SetValueHandler(CS10xHandle_t pstSelf, CS10x_SetValue cb);
|
||
|
||
/**
|
||
* @brief 设置计量模块电度接口(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SetDdValueHandler(CS10xHandle_t pstSelf, CS10x_SetDdValue cb);
|
||
|
||
/**
|
||
* @brief 遥控操作校验(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_YkVerifyHandler(CS10xHandle_t pstSelf, CS10x_YkVerify cb);
|
||
|
||
/**
|
||
* @brief 设置组遥测数量处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetYcCountByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetYcCountByGroup cb);
|
||
|
||
/**
|
||
* @brief 设置组遥测值处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetYcValueByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetYcValueByGroup cb);
|
||
|
||
/**
|
||
* @brief 设置组遥信数量处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetYxCountByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetYxCountByGroup cb);
|
||
|
||
/**
|
||
* @brief 设置组遥信状态处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetYxStatusByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetYxStatusByGroup cb);
|
||
|
||
/**
|
||
* @brief 扰动遥测待发送数量处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetDiturbYc_SendNumHandler(CS10xHandle_t pstSelf, CS10x_GET_DiturbYc_SendNum cb);
|
||
|
||
/**
|
||
* @brief 设置获取扰动遥测数据处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetDiturbYcHandler(CS10xHandle_t pstSelf, CS10x_GetDiturbYc cb);
|
||
|
||
/**
|
||
* @brief 设置更新遥测扰动指针处理函数(待删除)
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] cb
|
||
*/
|
||
void CS10x_Updata_DiturbYc_PoutHandler(CS10xHandle_t pstSelf, CS10x_Updata_DiturbYc_Pout cb);
|
||
|
||
/**
|
||
* @brief 设置组电度数量处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetDdCountByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetDdCountByGroup cb);
|
||
|
||
/**
|
||
* @brief 设置组电度数值处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetDdValueByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetDdValueByGroup cb);
|
||
|
||
/**
|
||
* @brief 设置参数定值区获取函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetParamAreaHandler(CS10xHandle_t pstSelf, CS10x_GetParamArea cb);
|
||
|
||
/**
|
||
* @brief 设置参数定值区更新函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SetParamAreaHandler(CS10xHandle_t pstSelf, CS10x_SetParamArea cb);
|
||
|
||
/**
|
||
* @brief 设置增加参数定值缓存函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_AddIECParamHandler(CS10xHandle_t pstSelf, CS10x_AddIECParam cb);
|
||
|
||
|
||
/**
|
||
* @brief 设置参数定值读取函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_RunReadIECParamHandler(CS10xHandle_t pstSelf, CS10x_RunReadIECParam cb);
|
||
|
||
/**
|
||
* @brief 设置参数定值固化函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_RunWriteIECParamHandler(CS10xHandle_t pstSelf, CS10x_RunWriteIECParam cb);
|
||
|
||
/**
|
||
* @brief 参数数量获取处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetParamCountHandler(CS10xHandle_t pstSelf, CS10x_GetParamCount cb);
|
||
|
||
/**
|
||
* @brief 参数信息获取处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetParamInfoByIndxHandler(CS10xHandle_t pstSelf, CS10x_GetParamInfoByIndx cb);
|
||
|
||
/**
|
||
* @brief 设置获取soe数据处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetSOEHandler(CS10xHandle_t pstSelf, CS10x_GetSOE cb);
|
||
|
||
/**
|
||
* @brief 设置更新SOE指针待发数量函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetSOE_SendNumHandler(CS10xHandle_t pstSelf, CS10x_GET_SOE_SendNum cb);
|
||
|
||
/**
|
||
* @brief 设置更新SOE指针处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_Updata_SOE_PoutHandler(CS10xHandle_t pstSelf, CS10x_Updata_SOE_Pout cb);
|
||
|
||
/**
|
||
* @brief 获取故障事件数量处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetEvent_SendNumHandler(CS10xHandle_t pstSelf, CS10x_GET_Event_SendNum cb);
|
||
|
||
/**
|
||
* @brief 设置获取故障事件数据处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetFaultEventHandler(CS10xHandle_t pstSelf, CS10x_GetFaultEvent cb);
|
||
|
||
/**
|
||
* @brief 设置更新故障事件处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_Updata_FaultEvent_PoutHandler(CS10xHandle_t pstSelf, CS10x_Updata_FaultEvent_Pout cb);
|
||
|
||
/**
|
||
* @brief 获取电度时间指针待发数量函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetTimeDdu_SendNumHandler(CS10xHandle_t pstSelf, CS10x_GetTimeDdu_SendNum cb);
|
||
|
||
/**
|
||
* @brief 更新时标电度处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_Updata_TimeDdu_PoutHandler(CS10xHandle_t pstSelf, CS10x_Updata_TimeDdu_Pout cb);
|
||
|
||
/**
|
||
* @brief 获取时标电度数据处理函数(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetTimeDduHandler(CS10xHandle_t pstSelf, CS10x_GetTimeDdu cb);
|
||
|
||
/**
|
||
* @brief 读文件(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetPro
|
||
* @param cbGetNum
|
||
* @param cbRead
|
||
* @param *pvParam
|
||
*/
|
||
void CS10x_FileReadOprtHandler(CS10xHandle_t pstSelf,
|
||
CS10x_GetProDirFile cbGetPro,
|
||
CS10x_GetNumDirFile cbGetNum,
|
||
CS10x_ReadFile cbRead,
|
||
void *pvParam);
|
||
|
||
/**
|
||
* @brief 写文件(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cbWrite
|
||
* @param cbCheck
|
||
* @param cbFinish
|
||
* @param *pvParam
|
||
*/
|
||
void CS10x_FileWriteOprtHandler(CS10xHandle_t pstSelf,
|
||
CS10x_Write cbWrite,
|
||
CS10x_WriteFileCheck cbCheck,
|
||
CS10x_WriteFinish cbFinish,
|
||
void *pvParam);
|
||
|
||
/**
|
||
* @brief 升级处理流程(待删除)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_UpdateProcHandler(CS10xHandle_t pstSelf, CS10x_UpdateProc cb);
|
||
|
||
//************************************************ 未使用接口*****************************************//
|
||
/**
|
||
* @brief 设置遥控类型(未使用)
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] usType
|
||
*/
|
||
void CS10x_SetYkType(CS10xHandle_t pstSelf, unsigned short usType);
|
||
|
||
/**
|
||
* @brief 设置录波完成点号关联(未使用)
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] usAddr
|
||
*/
|
||
void CS10x_SetWaveInfoAddr(CS10xHandle_t pstSelf, unsigned short usAddr);
|
||
|
||
/**
|
||
* @brief 设置接收遥信接口(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SetStatusHandler(CS10xHandle_t pstSelf, CS10x_SetStatus cb);
|
||
|
||
/**
|
||
* @brief 设置接收SOE处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_AddSOEHandler(CS10xHandle_t pstSelf, CS10x_AddSOE cb);
|
||
|
||
/**
|
||
* @brief 设置故障事件处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_AddEventHandler(CS10xHandle_t pstSelf, CS10x_AddFauleEvent cb);
|
||
/**
|
||
* @brief 设置接收TimeDdu处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_AddTimeDduHandler(CS10xHandle_t pstSelf, CS10x_AddTimeDdu cb);
|
||
|
||
/**
|
||
* @brief 设置电度信息接口(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetDdValueHandler(CS10xHandle_t pstSelf, CS10x_GetDdValue cb);
|
||
|
||
/**
|
||
* @brief 设置扰动遥测处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_AddDiYcValueHandler(CS10xHandle_t pstSelf, CS10x_AddDiturbYc cb);
|
||
|
||
/**
|
||
* @brief 设置遥信点点号状态处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetYxPotProHandler(CS10xHandle_t pstSelf, CS10x_GetYxPotPro cb);
|
||
|
||
/**
|
||
* @brief 设置搜索目录获取属性处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetProDirFileHandler(CS10xHandle_t pstSelf, CS10x_GetProDirFile cb);
|
||
|
||
/**
|
||
* @brief 设置搜索目录获取数量处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_GetNumDirFileHandler(CS10xHandle_t pstSelf, CS10x_GetNumDirFile cb);
|
||
|
||
/**
|
||
* @brief 设置读取文件处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_ReadFileHandler(CS10xHandle_t pstSelf, CS10x_ReadFile cb);
|
||
|
||
/**
|
||
* @brief 设置写文件处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_WriteFileHandler(CS10xHandle_t pstSelf, CS10x_WriteFile cb);
|
||
|
||
/**
|
||
* @brief 设置文件名比对文件函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SearchFileNameHandler(CS10xHandle_t pstSelf, CS10x_SearchFileName cb);
|
||
|
||
/**
|
||
* @brief 设置待写入文件查询处理函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_WriteFileCheckHandler(CS10xHandle_t pstSelf, CS10x_WriteFileCheck cb);
|
||
|
||
/**
|
||
* @brief 文件写入函数(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_WriteHandler(CS10xHandle_t pstSelf, CS10x_Write cb);
|
||
|
||
/**
|
||
* @brief 文件写完成(未使用)
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_WriteFinishHandler(CS10xHandle_t pstSelf, CS10x_WriteFinish cb);
|
||
|
||
/**
|
||
* @brief 设置注册文件传输任务函数(未使用)
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] cb
|
||
*/
|
||
void CS10x_RegFileTransHandler(CS10xHandle_t pstSelf, CS10x_RegFileTransObj cb);
|
||
|
||
/**
|
||
* @brief 设置获取传输文件对象函数(未使用)
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] cb
|
||
*/
|
||
void CS10x_GetTransFileHandler(CS10xHandle_t pstSelf, CS10x_CheckTransFileObj cb);
|
||
|
||
/**
|
||
* @brief 设置检测文件传输超时函数(未使用)
|
||
*
|
||
* @param self
|
||
* @param cb
|
||
*/
|
||
void CS10x_TransTimeOutHandler(CS10xHandle_t pstSelf, CS10x_CheckTransTimeOut cb);
|
||
|
||
/**
|
||
* @brief 设置目录召唤接收完成处理函数(未使用)
|
||
*
|
||
* @param self
|
||
* @param cb
|
||
*/
|
||
void CS10x_DirRecvFinishHandler(CS10xHandle_t pstSelf, CS10x_DirRecvFinish cb);
|
||
|
||
/**
|
||
* @brief 设置链路关闭接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_LinkCloseHandler(CS10xHandle_t pstSelf, CS10x_LinkClose cb);
|
||
|
||
/**
|
||
* @brief 设置向下行设备发送确认帧接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_AckFrameNotificationHandler(CS10xHandle_t pstSelf, CS10x_AckFrameNotification cb);
|
||
|
||
//*********************************** 规约参数配置函数 *************************************//
|
||
/**
|
||
* @brief 设置规约参数
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] pstParam 规约参数
|
||
*/
|
||
void CS10x_SetAppParameters(CS10xHandle_t pstSelf, struct CS10x_AppLayerParameters *pstParam);
|
||
|
||
/**
|
||
* @brief 设置104APCI参数
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] pstParam
|
||
*/
|
||
void CS10x_SetAPCIParameters(CS10xHandle_t pstSelf, struct CS104_APCIParameters *pstParam);
|
||
|
||
/**
|
||
* @brief 设置遥测类型
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] usType
|
||
*/
|
||
void CS10x_SetYcType(CS10xHandle_t pstSelf, unsigned short usType);
|
||
|
||
/**
|
||
* @brief 设置遥信类型
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] usType
|
||
*/
|
||
void CS10x_SetYxType(CS10xHandle_t pstSelf, unsigned short usType);
|
||
|
||
/**
|
||
* @brief 设置电度类型
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] usType
|
||
*/
|
||
void CS10x_SetDdType(CS10xHandle_t pstSelf, unsigned short usType);
|
||
|
||
/**
|
||
* @brief 设置总召定时间隔关联
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] uiGap
|
||
*/
|
||
void CS10x_SetSummonGap(CS10xHandle_t pstSelf, unsigned int uiGap);
|
||
|
||
/**
|
||
* @brief 设置电能量总召定时间隔关联
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] uiGap
|
||
*/
|
||
void CS10x_SetESummonGap(CS10xHandle_t pstSelf, unsigned int uiGap);
|
||
|
||
/**
|
||
* @brief 设置心跳间隔时间参数
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] uiGap
|
||
*/
|
||
void CS10x_SetHeartTimeGap(CS10xHandle_t pstSelf, unsigned int uiGap);
|
||
|
||
/**
|
||
* @brief 设置报文发送间隔关联
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] uiGap
|
||
*/
|
||
void CS10x_FrameGap(CS10xHandle_t pstSelf, unsigned int uiGap);
|
||
|
||
/**
|
||
* @brief 101规约初始化类型
|
||
* @param[out] pstSelf
|
||
* @param[in] bType
|
||
*/
|
||
void CS10x_SetInitType(CS10xHandle_t pstSelf, bool bType);
|
||
|
||
/**
|
||
* @brief 101规约文件传输是否需要确认帧
|
||
* @param[out] pstSelf
|
||
* @param[in] ucEn
|
||
*/
|
||
void CS10x_SetFileAckType(CS10xHandle_t pstSelf, unsigned char ucEn);
|
||
|
||
/**
|
||
* @brief 101规约重发间隔时间参数输入
|
||
* @param[out] pstSelf
|
||
* @param[in] uiGap
|
||
*/
|
||
void CS10x_ResendGap(CS10xHandle_t pstSelf, unsigned int uiGap);
|
||
|
||
/**
|
||
* @brief 101规约重发次数参数输入
|
||
* @param[out] pstSelf
|
||
* @param[in] uiCnt
|
||
*/
|
||
void CS10x_ResendCnt(CS10xHandle_t pstSelf, unsigned int uiCnt);
|
||
|
||
/**
|
||
* @brief 故障事件接口使能
|
||
* @param[out] pstSelf
|
||
* @param[in] usEnable
|
||
*/
|
||
void CS10x_FaultEventEn(CS10xHandle_t pstSelf, unsigned short usEnable);
|
||
|
||
/**
|
||
* @brief 发送SOE使能
|
||
* @param[out] pstSelf
|
||
* @param[in] usEnable
|
||
*/
|
||
void CS10x_SetSendSoe(CS10xHandle_t pstSelf, unsigned char ucEnable);
|
||
|
||
/**
|
||
* @brief 发送COS使能
|
||
* @param[out] pstSelf
|
||
* @param[in] usEnable
|
||
*/
|
||
void CS10x_SetSendCos(CS10xHandle_t pstSelf, unsigned char ucEnable);
|
||
/**
|
||
* @brief 遥控-结束帧投退
|
||
* @param[out] pstSelf
|
||
* @param[in] usEnable
|
||
*/
|
||
void CS10x_SetYKEendFrame(CS10xHandle_t pstSelf, unsigned char ucEnable);
|
||
|
||
/**
|
||
* @brief 读文件数据传输 VSQ 值:部分主站无法识别0,需要投1
|
||
* @param[out] pstSelf
|
||
* @param[in] usEnable
|
||
*/
|
||
void CS10x_SetReadFileVSQ(CS10xHandle_t pstSelf, unsigned char usEnable);
|
||
|
||
/**
|
||
* @brief 参数预置忽略后缀帧字段
|
||
* @param[out] pstSelf
|
||
* @param[in] ucType
|
||
*/
|
||
void CS10x_SetPresetContType(CS10xHandle_t pstSelf, unsigned char ucType);
|
||
|
||
/**
|
||
* @brief 104多帧数据传输设置
|
||
* @param[out] pstSelf
|
||
* @param[in] usEnable
|
||
*/
|
||
void CS10x_SetMultFrameEn(CS10xHandle_t pstSelf, unsigned char usEnable);
|
||
|
||
/**
|
||
* @brief 设置对时同步间隔关联
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] uiGap
|
||
*/
|
||
void CS10x_SetSynTimeGap(CS10xHandle_t pstSelf, unsigned int uiGap);
|
||
|
||
/**
|
||
* @brief 设置101主站方向位
|
||
*
|
||
* @param[out] pstSelf
|
||
* @param[in] ucMasterDirect
|
||
*/
|
||
void CS10x_SetMasterDirect(CS10xHandle_t pstSelf, unsigned char ucMasterDirect);
|
||
|
||
//*********************************************规约接口配置函数******************************//
|
||
/**
|
||
* @brief 设置解密接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_EncryptHandler(CS10xHandle_t pstSelf, CS10x_Encrypt cb);
|
||
|
||
/**
|
||
* @brief 设置文件MD5接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_Md5ResultHandler(CS10xHandle_t pstSelf, CS10x_Md5Result cb);
|
||
|
||
/**
|
||
* @brief 时间设置读取接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_TimeRWHandler(CS10xHandle_t pstSelf, CS10x_GetTime cbGetTime, CS10x_SetTime cbSetTime);
|
||
|
||
/**
|
||
* @brief 复位原因限定词,读写函数接口
|
||
* @param pstSelf 规约实体
|
||
* @param Read_cb 读函数指针
|
||
* @param Write_cb 写函数指针
|
||
*/
|
||
void CS10x_WR_ResetHandler(CS10xHandle_t pstSelf, CS10x_Read_ResetCOI Read_cb, CS10x_Write_ResetCOI Write_cb);
|
||
|
||
/**
|
||
* @brief 设置组遥测数量及数值处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetYcCount,cbGetYcValue
|
||
*/
|
||
void CS10x_S_GetYcByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetYcCountByGroup cbGetYcCount, CS10x_GetYcValueByGroup cbGetYcValue);
|
||
|
||
/**
|
||
* @brief 设置组遥信数量及状态处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetYxCount,cbGetYxStatus
|
||
*/
|
||
void CS10x_S_GetYxByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetYxCountByGroup cbGetYxCount, CS10x_GetYxStatusByGroup cbGetYxStatus);
|
||
|
||
/**
|
||
* @brief 设置获取扰动遥测处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetDiturbYc,cbSendNum,cbUpdataPout
|
||
*/
|
||
void CS10x_S_DiturbYcHandler(CS10xHandle_t pstSelf, CS10x_GetDiturbYc cbGetDiturbYc, CS10x_GET_DiturbYc_SendNum cbSendNum, CS10x_Updata_DiturbYc_Pout cbUpdataPout);
|
||
|
||
/**
|
||
* @brief 设置组电度数量及数值处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetDdCount,cbGetDdValue
|
||
*/
|
||
void CS10x_S_GetDdByGroupHandler(CS10xHandle_t pstSelf, CS10x_GetDdCountByGroup cbGetDdCount, CS10x_GetDdValueByGroup cbGetDdValue);
|
||
|
||
/**
|
||
* @brief 设置soe处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_S_SOEHandler(CS10xHandle_t pstSelf, CS10x_GetSOE cbGetSOE, CS10x_GET_SOE_SendNum cbSendNum, CS10x_Updata_SOE_Pout cbUpdataSOEPout);
|
||
|
||
/**
|
||
* @brief 扰动电度处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetTimeDdu,cbcbSendNum,cbcbUpdataPout
|
||
*/
|
||
void CS10x_S_DiturbDduHandler(CS10xHandle_t pstSelf, CS10x_GetTimeDdu cbGetTimeDdu, CS10x_GetTimeDdu_SendNum cbSendNum, CS10x_Updata_TimeDdu_Pout cbUpdataPout);
|
||
|
||
/**
|
||
* @brief 设置故障事件处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbSendNum,cbGetFaultEvent,cbUpdataPout
|
||
*/
|
||
void CS10x_S_FaultEventHandler(CS10xHandle_t pstSelf, CS10x_GET_Event_SendNum cbSendNum, CS10x_GetFaultEvent cbGetFaultEvent, CS10x_Updata_FaultEvent_Pout cbUpdataPout);
|
||
|
||
/**
|
||
* @brief 遥控操作校验
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_S_YkVerifyHandler(CS10xHandle_t pstSelf, CS10x_YkVerify cb);
|
||
|
||
/**
|
||
* @brief 参数定值区获取与设置接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetParamArea 参数定值区获取
|
||
* @param cbSetParamArea 参数定值区设置
|
||
*/
|
||
void CS10x_S_ParamAreaHandler(CS10xHandle_t pstSelf, CS10x_GetParamArea cbGetParamArea, CS10x_SetParamArea cbSetParamArea);
|
||
|
||
/**
|
||
* @brief 增加/读取/写入参数定值函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbAddIECParam, cbReadIECParam,cbWriteIECParam
|
||
*/
|
||
void CS10x_S_IECParamHandler(CS10xHandle_t pstSelf, CS10x_AddIECParam cbAddIECParam, CS10x_RunReadIECParam cbReadIECParam, CS10x_RunWriteIECParam cbWriteIECParam);
|
||
|
||
|
||
/**
|
||
* @brief 参数数量及信息获取处理函数
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetParamCount, cbGetParamInfo
|
||
*/
|
||
void CS10x_S_GetParamInfoHandler(CS10xHandle_t pstSelf, CS10x_GetParamCount cbGetParamCount, CS10x_GetParamInfoByIndx cbGetParamInfo);
|
||
|
||
/**
|
||
* @brief 读文件
|
||
*
|
||
* @param pstSelf
|
||
* @param cbGetPro
|
||
* @param cbGetNum
|
||
* @param cbRead
|
||
* @param *pvParam
|
||
*/
|
||
void CS10x_S_FileReadOprtHandler(CS10xHandle_t pstSelf,
|
||
CS10x_GetProDirFile cbGetPro,
|
||
CS10x_GetNumDirFile cbGetNum,
|
||
CS10x_ReadFile cbRead,
|
||
void *pvParam);
|
||
|
||
/**
|
||
* @brief 写文件
|
||
*
|
||
* @param pstSelf
|
||
* @param cbWrite
|
||
* @param cbCheck
|
||
* @param cbFinish
|
||
* @param *pvParam
|
||
*/
|
||
void CS10x_S_FileWriteOprtHandler(CS10xHandle_t pstSelf,
|
||
CS10x_Write cbWrite,
|
||
CS10x_WriteFileCheck cbCheck,
|
||
CS10x_WriteFinish cbFinish,
|
||
void *pvParam);
|
||
|
||
/**
|
||
* @brief 升级
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_S_UpdateProcHandler(CS10xHandle_t pstSelf, CS10x_UpdateProc cb);
|
||
|
||
/**
|
||
* @brief 设置计量接口处理
|
||
*
|
||
* @param pstSelf
|
||
* @param cbSetValue,cbSetDdValue
|
||
*/
|
||
void CS10x_M_SetDdHandler(CS10xHandle_t pstSelf, CS10x_SetValue cbSetValue, CS10x_SetDdValue cbSetDdValue);
|
||
|
||
/**
|
||
* @brief 设置接收遥控接口
|
||
*
|
||
* @param pstSelf
|
||
* @param cb
|
||
*/
|
||
void CS10x_SetYkInforHandler(CS10xHandle_t pstSelf, CS10x_SetYkInfor cb);
|
||
|
||
|
||
|
||
//***************************************内部函数*******************************//
|
||
char *GetIEC60870Version(void);
|
||
float GetStationDataSendNum(void);
|
||
|
||
//****************************************规约公共接收函数******************************//
|
||
void CS10x_DoRecv(CS10xHandle_t pstSelf, char *pBuf, unsigned int usLength);
|
||
|
||
//****************************************规约定时任务调度函数******************************//
|
||
void CS10x_TimerHandle(CS10xHandle_t pstSelf, unsigned short usGap);
|
||
void GetBakData(CS10xHandle_t pstSelf);
|
||
void SaveSendData(CS10xHandle_t pstSelf);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
|
||
#endif
|
||
|
||
#endif /* SRC_INC_IEC60870_COMMON_H_ */
|