⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iec104.h

📁 此程序适用于电力系统中的网关程序
💻 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 + -