189 lines
5.8 KiB
C
189 lines
5.8 KiB
C
/*
|
|
*********************************************************************************************************
|
|
* Copyright (c) 2013,JD-YD
|
|
* All Rights Reserved
|
|
*
|
|
*
|
|
* File Name : protectcfg.h
|
|
* Author : luoyang
|
|
* Version : 1.0
|
|
* Date : 2013.9.6
|
|
* Descriptiong : 保护读取配置文件
|
|
* Function List:
|
|
* History :
|
|
<author> <time> <version> <desc>
|
|
luoyang 13/09/06 1.0 build this modle
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#ifndef CFGREAD_H_
|
|
#define CFGREAD_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1 //逻辑真
|
|
#endif
|
|
#ifndef FALSE
|
|
#define FALSE 0 //逻辑假
|
|
#endif
|
|
|
|
#define PROT_CFG_ADDR_READ_START (0x0DE43000)
|
|
|
|
#define CFG_READ_OK 0xA0 //读取成功
|
|
#define CFG_READ_NO_FILE 0xA1 //文件不存在
|
|
#define CFG_READ_FROMAT_ERROR 0xA2 //格式错误
|
|
#define CFG_READ_ERROR_UNKNOWN 0xA3 //未知错误
|
|
|
|
/****************************************
|
|
*闭锁相关
|
|
*****************************************/
|
|
#define PROT_BLOCK_CFG_ADDR_READ PROT_CFG_ADDR_READ_START
|
|
|
|
#define BLOCK_CFGFILE_FULLNAME "/nor/root/protect/cfg/block.xml" //闭锁配置文件名称(包括路径)
|
|
|
|
#define BS_XML_ROOT "blockcfg" //闭锁配置文件根节点名称
|
|
#define BS_XML_ELE "expression" //闭锁配置文件表达式元素名称
|
|
#define BS_XML_ARR_ID "id" //闭锁配置文件属性id名称
|
|
#define BS_XML_ARR_FORMULA "formula" //闭锁配置文件属性formula名称
|
|
|
|
|
|
#define EXPRESSION_MAX_LEN (100) //表达式最大长度
|
|
#define BLOCK_NUM_MAX (36) //闭锁信号最多36个
|
|
typedef char ExpArrayType[EXPRESSION_MAX_LEN];
|
|
|
|
//闭锁逻辑结构
|
|
typedef struct{
|
|
int numOfExp; //表达式个数
|
|
ExpArrayType ExpArray[BLOCK_NUM_MAX]; //表达式
|
|
}ExpType;
|
|
|
|
//外部接口
|
|
void block_cfg_read();
|
|
|
|
/*** 跳闸灯的状态 ***/
|
|
#define TZLED_CFGFILE_FULLNAME "/nor/root/protect/cfg/tzled.dat" //跳闸灯状态文件名称(包括路经)
|
|
|
|
|
|
/****************************************
|
|
*自投相关
|
|
*****************************************/
|
|
#define ZT_CFGFILE_FULLNAME "/nor/root/protect/cfg/zt.xml" //闭锁配置文件名称(包括路经)
|
|
#define PROT_ZT_CFG_ADDR_READ PROT_CFG_ADDR_READ_START + sizeof(ExpType) + 100
|
|
|
|
#define ZT_FUNC_JXC (0) //自投功能块 进线侧
|
|
#define ZT_FUNC_GDC (1) //自投功能块 高低压侧
|
|
#define ZT_FUNC_QGKC (2) //自投功能块 桥隔开侧
|
|
|
|
#define MAX_STEP_MUN (20)
|
|
|
|
|
|
#define ZT_XML_ROOT "ZTLogicConfig" //自投配置文件根节点名称
|
|
#define ZT_XML_ELE_ZTSTEP "ZTStep" //自投配置文件"ZTStep"元素名称
|
|
#define ZT_XML_ELE_JXC "JXC" //自投配置文件"JXC"元素名称
|
|
#define ZT_XML_ELE_GDC "GDC" //自投配置文件"GDC"元素名称
|
|
#define ZT_XML_ELE_QGKC "QGKC" //自投配置文件"QGKC"元素名称
|
|
#define ZT_XML_ELE_FZ "FZ" //自投配置文件"FZ"元素名称
|
|
#define ZT_XML_ELE_HZ "HZ" //自投配置文件"HZ"元素名称
|
|
#define ZT_XML_ELE_STEP "Step" //自投配置文件"ZTStep"元素名称
|
|
#define ZT_XML_ARR_KGID "KGID" //自投配置文件"KGID"属性名称
|
|
#define ZT_XML_ARR_KGName "KGName" //自投配置文件"KGName"属性名称
|
|
#define ZT_XML_ARR_KGType "KGType" //自投配置文件"KGType"属性名称
|
|
#define ZT_XML_ARR_KGPos "KGPos" //自投配置文件"KGPos"属性名称
|
|
#define ZT_XML_ARR_Action "Action" //自投配置文件"Action"属性名称
|
|
|
|
|
|
|
|
|
|
//自投操作属性
|
|
typedef enum{
|
|
ZP_FZ, //分闸
|
|
ZP_HZ //合闸
|
|
}ZTProperty;
|
|
//开关类型
|
|
typedef enum{
|
|
ST_DLQ = 1, //断路器
|
|
ST_GK = 2 //隔离开关
|
|
}SwitchType;
|
|
//开关安装位置
|
|
typedef enum{
|
|
SP_JXC, //进线侧开关
|
|
SP_GYC, //高压侧开关
|
|
SP_DYC, //低压侧开关
|
|
SP_QGKC, //桥隔开侧开关
|
|
SP_DRQ, //电容器开关
|
|
}SwitchPos;
|
|
//自投控制对象
|
|
typedef struct{
|
|
SwitchType ObjectType; //对象类型 1-断路器 2-隔离开关
|
|
unsigned char ObjectNo; //对象号(遥控对象号)
|
|
unsigned int ObjectName; //开关名称(开关号)
|
|
SwitchPos ObjectPos; //开关安装位置
|
|
ZTProperty ObjectAction; //开关操作属性(分/合)
|
|
}ZTObject, *pZTObject;
|
|
|
|
//自投步骤序列
|
|
typedef struct{
|
|
unsigned char StepNum; //自投步骤数目
|
|
ZTProperty zitouProperty; //操作属性
|
|
ZTObject Objects[MAX_STEP_MUN]; //自投控制对象序列
|
|
}ZTStepList, *pZTStepList;
|
|
|
|
//全站自投逻辑
|
|
typedef struct{
|
|
ZTStepList JXCFZStepList; //进线侧自投分步骤
|
|
ZTStepList JXCHZStepList; //进线侧自投合步骤
|
|
ZTStepList GDCFZStepList; //高低压侧自投分步骤
|
|
ZTStepList GDCHZStepList; //高低压侧自投合步骤
|
|
ZTStepList QGKCFZStepList; //桥隔开自投分步骤
|
|
ZTStepList QGKCHZStepList; //桥隔开自投合步骤
|
|
}ZTLogic, *pZTLogic;
|
|
|
|
//馈线自投相关
|
|
#define KXZT_CFGFILE_FULLNAME "/nor/root/protect/cfg/kxzt.xml" //馈线自投配置文件名称(包括路经)
|
|
#define PROT_KXZT_CFG_ADDR_READ PROT_ZT_CFG_ADDR_READ + sizeof(ZTLogic) + 100
|
|
|
|
#define KXZT_STEP_NUM_MAX 40
|
|
|
|
|
|
#define KXZT_XML_ROOT "kxztcfg" //馈线自投配置根节点名称
|
|
#define KXZT_XML_ELE_UPCFG "up_cfg" //馈线自投配置"up_cfg"元素名称
|
|
#define KXZT_XML_ELE_DOWNCFG "down_cfg" //馈线自投配置"down_cfg"元素名称
|
|
#define KXZT_XML_ARR_OPTYPE "op_type" //馈线自投配置"op_type"属性名称
|
|
#define KXZT_XML_ARR_OPOBJECT "op_object" //馈线自投配置"op_object"属性名称
|
|
#define KXZT_XML_ARR_OPTIME "op_time" //馈线自投配置"op_time"属性名称
|
|
#define KXZT_XML_ARR_OPFEEDBACK "op_feedback" //馈线自投配置"op_feedback"属性名称
|
|
|
|
//馈线自投逻辑
|
|
//馈线自投结构
|
|
typedef struct{
|
|
unsigned char op_type; //操作类型
|
|
unsigned char op_object; //操作对象
|
|
unsigned char op_feedback; //操作反馈
|
|
unsigned int op_time; //操作时间
|
|
}KXZTStep;
|
|
|
|
typedef struct{
|
|
unsigned char stepNum; //馈线自投步骤数目
|
|
KXZTStep stepSet[KXZT_STEP_NUM_MAX]; //自投操作步骤集合
|
|
}KXZTType;
|
|
|
|
//外部接口
|
|
void zt_cfg_read();
|
|
//读取自投配置文件
|
|
void kxzt_cfg_read();
|
|
//读取馈线自投配置文件
|
|
void block_cfg_read();
|
|
//读取联锁配置文件
|
|
|
|
/** 跳闸灯的状态 **/
|
|
int tzled_cfg_read(unsigned char *data, int dataLen);
|
|
int tzled_cfg_write(const unsigned char *data, int dataLen);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* CFGREAD_H_ */
|