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