📄 101secapp.h
字号:
/*------------------------------------------------------------------*/
/*模块名称:101-97secapp.h */
/*模块功能:DL/T 634-1997 101从站方规约 */
/*编写日期:2005年3月 */
/*编写者: dingding */
/*------------------------------------------------------------------*/
#ifndef DF101SECAPP_H
#define DF101SECAPP_H
/*------------------------------------------------------------------*/
/*----------------------------常量定义------------------------------*/
/*------------------------------------------------------------------*/
//一级数据标志
#define HaveCOS 0x0001
#define CallReadData 0x0002
//二级数据
#define HaveSOE 0x0001
#define HaveFA 0x0002
#define HaveNVA 0x0004
//应用层后续处理标志
#define FNextYK 0x0001
#define FNextALLDATA 0x0002
#define FNextCounter 0x0004
//设备管理
#define ACTDEVINDEX 0x01
#define NVAACTDEV 0x02
/*------------------------------------------------------------------*/
/*----------------------------结构定义------------------------------*/
/*------------------------------------------------------------------*/
struct PGroupTrn{ //组处理结构
INT16U DevID;
INT8U TypeID;
INT8U COT;
INT8U GroupNo;
INT16U InfoAddr;
};
__packed struct MENA{ //遥测结构
INT16U InfoAddr;
INT16U Value;
INT8U QDS;
};
__packed struct Counter{ //电度数据信息体结构
INT16U InfoAddr;
INT32U Value;
INT8U SQ;
};
struct AppInfo{ //应用层数据结构
INT8U Tmpbuf[512]; //临时使用缓冲区
struct PASDU *RxMsg; //应用层接收数据指针
struct PASDU TxMsg; //应用层输出数据区
INT16U TxLen; //应用层发送长度
INT16U AppCommand; //应用层命令
INT16U Data1Flag; //一级数据标志
INT16U Data2Flag; //二级数据标志
INT16U AppNextFlag; //应用层后续处理标志
INT16U ActDevIndex; //当前设备号
INT16U NvaActDev; //发送变化遥测的当前设备序号
INT16U NvaActDevCur; //当前设备当前已发送序号
INT16U LastDevIndex; //记录最近一次发送变位YX,SOE,FA,的设备序号
INT16U LastDevType;
INT16U LastDevNum;
//全数据或电度处理
BOOL AllDataFlag; //过程标志
INT8U AllDataNum;
struct PGroupTrn GroupTrn;
//动态开辟数据存储区
INT16U *YCValue; //遥测值
INT16U *YCDVal; //遥测死区值
INT32U *DDValue; //电度值
//定时器
INT16U Data2Count;
//参数输入
INT16U BaseControl;
INT16U Control;
INT16U ScanData2; //二级数据扫描间隔(100ms)
INT16U MaxYCNum; //MaxALLen
INT8U YXTypeID;
INT8U YCTypeID;
INT16U PubAddrBase;
};
/*------------------------------------------------------------------*/
/*----------------------------函数声明------------------------------*/
/*------------------------------------------------------------------*/
void P101_97SecTask(struct SysPort *Info, struct PortAppInfo* PortCfg);
BOOL InitSecApp(INT8U Port, struct PortAppInfo* PortCfg);
void InitReset(INT8U Port);
void SecAppProc(INT8U Port, INT16U DLCmd, INT8U* pBuf, INT16U Len);
void SecAppProcNext(INT8U Port);
void AppOnTimer(INT8U Port);
void ProcAllDataCall(INT8U Port);
void ProcCounterCall(INT8U Port);
void ProcClock(INT8U Port, BOOL Conf);
void ProcControl(INT8U Port);
void ProcData1(INT8U Port);
void ProcData2(INT8U Port);
void ProcDDCall(INT8U Port);
void ProcParaSet(INT8U Port);
void ProcReadData(INT8U Port);
void ProcReset(INT8U Port);
void ProcSetNVA(INT8U Port);
void ProcTest(INT8U Port);
void ProcTimeDelay(INT8U Port);
void ProcAppErr(INT8U Port);
void EnCodeClock(INT8U Port);
void EnCodeControl(INT8U Port, struct DBBOOPInfo* Info);
void EnCodeAllData(INT8U Port);
void EnCodeCounter(INT8U Port);
void EnCodeAllDataConf(INT8U Port);
void EnCodeAllDataEnd(INT8U Port, INT8U Cmd);
void EnCodeCOS(INT8U Port);
void EnCodeReadData(INT8U Port);
void EnCodeSOE(INT8U Port);
void EnCodeFA(INT8U Port);
void EnCodeNVA(INT8U Port);
BOOL CheckNVA(INT8U Port);
BOOL GetActDevIndexByAddr(INT8U Port, INT16U Addr);
BOOL GetNextActDevIndex(INT8U Port, INT16U ActDev, INT8U Flag);
void GetYcDeadValue(INT8U Port, INT16U Num, INT32U DValue);
INT16U GetActDevNo(INT8U Port, INT16U DevID, INT16U Flag);
INT16U GetAddrByDevIndex(INT8U Port, INT16U DevID);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -