📄 protocal645.cpp
字号:
// Protocal645.cpp: implementation of the CProtocal645 class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "rtusim.h"
#include "Protocal645.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CProtocal645::CProtocal645()
{
}
CProtocal645::~CProtocal645()
{
}
void CProtocal645::Explain()
{
int m_inLen=m_baInBuffer.GetSize();
// CByteArray InBufferTemp;
InBufferTemp.RemoveAll();
for(int i=0;i<m_inLen;i++)
{
InBufferTemp.Add(m_baInBuffer[i]);
// m_baInBuffer.RemoveAt(0);
}
m_baInBuffer.RemoveAll();
SwitchApplyCode(InBufferTemp,m_inLen);
}
BOOL CProtocal645::SwitchApplyCode(CByteArray &byteArray, int inBufLen)
{
// BYTE test = byteArray.GetAt(10);
if(byteArray.GetSize()<14)
{
return FALSE;
}
if(byteArray.GetAt(10)==(BYTE)0x43 && byteArray.GetAt(11)==(BYTE)0xc3) ////正向有功总电能
{//**************************************************************/
//返回相同的地址
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<16;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}//**************************************************************/
else if(byteArray.GetAt(10)==(BYTE)0x53 && byteArray.GetAt(11)==(BYTE)0xc3) //反向有功总电能
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<16;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
else if(byteArray.GetAt(10)==(BYTE)0x44 && byteArray.GetAt(11)==(BYTE)0xe9) //UA
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x04);
m_baOutBuffer.Add(0x44);
m_baOutBuffer.Add(0xe9);
m_baOutBuffer.Add(0x47);
m_baOutBuffer.Add(0x96);
m_baOutBuffer.Add(0x33);
// m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<15;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
else if(byteArray.GetAt(10)==(BYTE)0x45 && byteArray.GetAt(11)==(BYTE)0xe9)//UB
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
// m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<15;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
else if(byteArray.GetAt(10)==(BYTE)0x46 && byteArray.GetAt(11)==(BYTE)0xe9)//UC
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
// m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<15;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
else if(byteArray.GetAt(10)==(BYTE)0x54 && byteArray.GetAt(11)==(BYTE)0xe9)//IA
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
// m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<15;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
else if(byteArray.GetAt(10)==(BYTE)0x55 && byteArray.GetAt(11)==(BYTE)0xe9)//IB
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
// m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<15;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
else if(byteArray.GetAt(10)==(BYTE)0x56 && byteArray.GetAt(11)==(BYTE)0xe9)//IC
{
m_baOutBuffer.Add(0x68);
for(int i=1;i<=6;i++)
{
m_baOutBuffer.Add(byteArray[i]);
}
//返回随机的数值
DWORD dw=GetTickCount();
m_baOutBuffer.Add(0x68);
m_baOutBuffer.Add(0x81);
m_baOutBuffer.Add(0x06);
m_baOutBuffer.Add(0x43);
m_baOutBuffer.Add(0xc3);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
m_baOutBuffer.Add(0x66);
// m_baOutBuffer.Add(0x66);
BYTE by=0;
for(i=0;i<15;i++)
{
by+=(BYTE)m_baOutBuffer[i];
}
m_baOutBuffer.Add(by);
m_baOutBuffer.Add(0x16);
SendRespons();
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -