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

📄 dnpexplain.h

📁 能够模拟电表的645协议
💻 H
字号:
// DnpExplain.h: interface for the CDnpExplain class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DNPEXPLAIN_H__B02F3005_E041_423D_AACB_DE6FFE81083C__INCLUDED_)
#define AFX_DNPEXPLAIN_H__B02F3005_E041_423D_AACB_DE6FFE81083C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "RTUSimDlg.h"
#include "ProtocalBase.h"
class CRTUSimDlg;
class CDnpExplain : public CProtocalBase  
{
public:
	void HandleIInInfo();
	BOOL SendAnalogyAndCount(WORD &rtuaddress, WORD &priaddress);
	BOOL SendBinaryAndCount(WORD &rtuaddress, WORD &priaddress);
	BOOL SendBinaryAndAnalogy(WORD &rtuaddress, WORD &priaddress);
	void ResetLink();
	void BinaryInputChange(BYTE &index,BOOL onOff);
	BOOL OperateTimeOut(WORD timeOut,SYSTEMTIME &doneTime);
	BOOL m_bOperateTimeOut;
	bool m_soeState;
	bool m_faultState;
	WORD m_DnpIIN;
	CRTUSimDlg * m_pRtuSimDlg;	//主窗口
	
	int SoePtrExplain(bool onOff,BYTE DigitalNo,SYSTEMTIME & soeTime);
	BOOL SwitchSendCode(CByteArray &byteArray,int inBufLen);
	virtual void Explain();
	CDnpExplain();
	virtual ~CDnpExplain();
	
private:
	void DumpSoeRecord();
	unsigned short dnp_crc_table[256];
	BOOL CallClass3Data(WORD &rtuaddr,WORD &priaddr);
	BOOL SendSoeDataWithRelative(WORD &rtuaddr,WORD &priaddr);
	BOOL CallClass2Data(WORD &rtuaddr,WORD &priaddr);
	BOOL CallClass1Data(WORD &rtuaddr,WORD &priaddr);
	BOOL CallClass0Data(WORD &rtuaddr,WORD &priaddr);
	BOOL TimeSynchReply(WORD &rtuaddr,WORD &priaddr,CByteArray &byteArray);
	BOOL DirectOperateReply(WORD &rtuaddr,WORD &priaddr,BYTE index,bool Onoff);
	BOOL PreOperateReply(WORD &rtuaddress,WORD &priaddress,BYTE ykindex,bool Onoff);
	BOOL DoneOperateReply(WORD &rtuaddress,WORD &priaddress,BYTE ykindex,bool Onoff);
	BOOL SendCountData(WORD &rtuaddress,WORD &priaddress);
	BOOL SendAnalogyData(WORD &rtuaddress,WORD &priaddress);
	BOOL SendDigitalData(WORD &rtuaddress,WORD &priaddress);
	BOOL SendSoeDataWithAbsolute(WORD &rtuaddr,WORD &priaddr,BYTE yxIndex,BOOL Onoff);

protected:
	unsigned short dnp_crc16(unsigned short crc, unsigned int text);
	unsigned short send_calc_crc(int index, unsigned short len);
	void setSendCrc();
};

#endif // !defined(AFX_DNPEXPLAIN_H__B02F3005_E041_423D_AACB_DE6FFE81083C__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -