📄 iec104.h
字号:
/******************************************************************
* Copyright (c) 2004-2005, 许继日立公司
* All rights reserved.
*
* 文件名称:iec104.h
* 文件标识:
* 摘 要:104规约类。 主要处理104应用层信息。
*
* 当前版本:1.0
* 作 者:李龙伟 <lilongwei1@hotmail.com>
* 完成日期:2004年12月28日
*
* 取代版本:1.0
* 原作者 :李龙伟
* 完成日期:2004年12月28日
******************************************************************/
#ifndef _IEC104_H
#define _IEC104_H
#if _MSC_VER>1000
#pragma warning(disable: 4786)
#endif
#include <windows.h>
//#include <vector>
#include <list>
#include "baserule.h"
using namespace std;
class CIEC104 : public BaseRule
{
public:
CIEC104(BYTE no, short rlen, short slen);
virtual ~CIEC104();
private:
bool m_bDataSend; //是否允许发送标志
WORD m_wSendCount; //发送序列号
WORD m_wRevCount; //接收序列号
unsigned char m_bFrameBuf[256]; //存储接收单包数据,对一次收到多包数据处理
unsigned long m_bFrameLen; //存储接收单包长度
// unsigned char m_bRii; //总召唤序号
// enum CMD_TYPE m_eCmdCode; //正在进行的命令类型
BYTE m_bYXInfBuf[512]; //存储103信息序号
BYTE m_bSector[512]; //存储扇区号
list<DATA_STR> m_SendList; //上送信息队列
private:
//循环发送接收函数
virtual void RuleLoop(void);
//对104数据进行解包处理
void UnpackData(void);
//对104数据进行打包处理
void PackData(void);
//校验收到的数据是否正确
int CheckRevData(void);
//控制域数据处理
int TcpHeart(void);
//总召唤响应
void GeneralInquire(void);
//查看CDT串口状态
int CheckNode(void);
//校时函数,校正时间
void CalibrateTime(void);
//遥测量信息
void GetYC(void);
//控制命令
void RtuControl(void);
//控制命令否定回答
void RtuAnswerNo(void);
//打包主动上送信息,存入m_SendList队列中
int PutSendList(void);
//打包装置状态上送信息
void ID_State(BYTE bAddr, BYTE bState);
//读取104遥信信息表
int ReadYXInf104(void);
//读取104遥信信息表
int ReadSOEInf104(int pot);
//取CDT信息值
int ReadYXInfCDT(BYTE pot);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -