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

📄 mbpcdoc.cpp

📁 保护装置的mbpc软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{	
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_METER_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;

				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 30)||(timecntr == 60)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ EnergyInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}

	return TRUE;
}

BOOL CMbpcDoc::ReqDiInfo(BYTE count)
{
	Sleep(500);
	int timecntr = 0;
	BYTE tSum = 0, tBuf[13],tId,tIdBuf;
	DWORD data_written;
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{	
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{	
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_DI_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;

				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 30)||(timecntr == 60)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ DiInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}
	return TRUE;
}

BOOL CMbpcDoc::ReqDoInfo(BYTE count)
{
	Sleep(500);
	int timecntr = 0;
	BYTE tSum = 0, tBuf[13],tId,tIdBuf;
	DWORD data_written;
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{	
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{	
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_DO_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;

				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 30)||(timecntr == 60)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ DoInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}
	return TRUE;
}

BOOL CMbpcDoc::ReqEnableInfo(BYTE count)
{
	Sleep(500);
	int timecntr = 0;
	BYTE tSum = 0, tBuf[13],tId,tIdBuf;
	DWORD data_written;
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_ENABLE_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;

				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 30)||(timecntr == 60)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ EnableInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}
	return TRUE;
}

BOOL CMbpcDoc::ReqSettingInfo(BYTE count)
{
	Sleep(500);
	int timecntr = 0;
	BYTE tSum = 0, tBuf[13],tId,tIdBuf;
	DWORD data_written;
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_SETTING_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;
				Sleep(100);
				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 50)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ SettingInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}
	return TRUE;
}

BOOL CMbpcDoc::ReqAlarmInfo(BYTE count)
{
	Sleep(500);
	int timecntr = 0;
	BYTE tSum = 0, tBuf[13],tId,tIdBuf;
	DWORD data_written;
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_ALARM_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;

				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 30)||(timecntr == 60)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ AlarmInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}
	return TRUE;
}

BOOL CMbpcDoc::ReqRecordInfo(BYTE count)
{
	Sleep(500);
	int timecntr = 0;
	BYTE tSum = 0, tBuf[13],tId,tIdBuf;
	DWORD data_written;
	tId = 0;
	tIdBuf = 254;
	memset(tBuf, 0, sizeof(tBuf));
	while(tId < count)
	{
		if(timecntr < 100)
		{
			if(tIdBuf != m_cId)
			{
				tSum = 0;
				tIdBuf = m_cId;
				tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr;
				tBuf[3] = LOCAL_ADDRESS; tBuf[4] = 0x0a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION;
				tBuf[7] = PROT_SCND_VERSION; tBuf[8] = REQ_RECORD_INFO; tBuf[9] = tId;
				for(int i = 0; i < 10; i++)
				{
					tSum += tBuf[i];
				}
				tBuf[10] = tSum; tBuf[11] = 0xd7; tBuf[12] = 0x09;

				WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				tId++;
				timecntr = 0;
			}
			else
			{
				Sleep(10);
				timecntr++;
				if((timecntr == 30)||(timecntr == 60)||(timecntr == 90))
				{
					WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
				}
			}
		}
		else
		{
			AfxMessageBox("REQ ActInfo time out");
			tId = 100;
			return FALSE;
		}
	}
	Sleep(200);
	if(m_cId == count - 2)
	{
		WriteFile(m_pComThread->m_hCommDev, tBuf, 13, &data_written, &m_pComThread->m_osWrite);
	}
	return TRUE;
}
//DEL void CMbpcDoc::OnDocmd() 
//DEL {
//DEL 	// TODO: Add your command handler code here
//DEL 	
//DEL }

BOOL CMbpcDoc::SendDoEnable()
{
	return TRUE;
}

//DEL BOOL CMbpcDoc::SetAnalogParaSet()
//DEL {
//DEL 
//DEL }

BOOL CMbpcDoc::SetAnalogParaSet(BYTE Id, CString name, float ratio)
{
	BYTE tSum = 0,tBuf[45];
	memset(tBuf,0,sizeof(tBuf));
	DWORD data_written;

	tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr; tBuf[3] = LOCAL_ADDRESS;
	tBuf[4] = 0x2a; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION; tBuf[7] = PROT_SCND_VERSION;
	tBuf[8] = ANALOG_PRIMARY_PARA_SET; tBuf[9] = Id; 
	memcpy(&tBuf[10],name.GetBuffer(name.GetLength()),12);
	BYTE a[4];
	memset(a,0,sizeof(a));
	memcpy(&a,&ratio,sizeof(float));
	tBuf[22] = a[3]; tBuf[23] = a[2];tBuf[24] = a[1];tBuf[25] = a[0];
	
	//memcpy(&tBuf[22],&ratio,sizeof(float));
	for(int i = 0; i < 42; i++)
	{
		tSum += tBuf[i];
	}
	tBuf[42] = tSum; tBuf[43] = 0xd7; tBuf[44] = 0x09;

	WriteFile(m_pComThread->m_hCommDev, tBuf, 45, &data_written, &m_pComThread->m_osWrite);
	return TRUE;
}

BOOL CMbpcDoc::SetAnalogScndPara(BYTE id, CString name, float ratio)
{
	BYTE tSum = 0,tBuf[45];
	DWORD data_written;
	BYTE a[4];

	memset(tBuf,0,sizeof(tBuf));

	tBuf[0] = 0xeb;
	tBuf[1] = 0x90;
	tBuf[2] = m_nRemoteAddr; 
	tBuf[3] = LOCAL_ADDRESS;
	tBuf[4] = 30; 
	tBuf[5] = 0x00; 
	tBuf[6] = PROT_PRIM_VERSION;
	tBuf[7] = PROT_SCND_VERSION;
	tBuf[8] = ANALOG_SECONDARY_PARA_SET;
	tBuf[9] = id; 
	
	memcpy(&tBuf[10],name.GetBuffer(name.GetLength()),12);

	memset(a,0,sizeof(a));
	memcpy(&a,&ratio,sizeof(float));
	tBuf[22] = a[3]; tBuf[23] = a[2];tBuf[24] = a[1];tBuf[25] = a[0];
	
	for(int i = 0; i < tBuf[4]; i++)
	{
		tSum += tBuf[i];
	}
	tBuf[30] = tSum;
	tBuf[31] = 0xd7;
	tBuf[32] = 0x09;

	WriteFile(m_pComThread->m_hCommDev, tBuf, 33, &data_written, &m_pComThread->m_osWrite);
	return TRUE;
}

BOOL CMbpcDoc::SetMeterPara(BYTE Id, CString name, float Pratio, float Sratio)
{
	BYTE tSum = 0, tBuf[49];
	memset(tBuf,0,sizeof(tBuf));
	DWORD data_written;

	tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr; tBuf[3] = LOCAL_ADDRESS;
	tBuf[4] = 0x2e; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION; tBuf[7] = PROT_SCND_VERSION;
	tBuf[8] = METER_PARA_SET; tBuf[9] = Id;
	memcpy(&tBuf[10],name.GetBuffer(name.GetLength()),12);
	BYTE a[4];
	memset(a,0,sizeof(a));
	memcpy(&a, &Pratio, sizeof(float));
	tBuf[22] = a[3]; tBuf[23] = a[2]; tBuf[24] = a[1]; tBuf[25] = a[0];
//	memcpy(&tBuf[22],&Pratio,sizeof(float));
	memcpy(&a, &Sratio, sizeof(float));
	tBuf[26] = a[3]; tBuf[27] = a[2]; tBuf[28] = a[1]; tBuf[29] = a[0];
//	memcpy(&tBuf[26],&Sratio,sizeof(float));
	for(int i = 0; i < 46; i++)
	{
		tSum += tBuf[i];
	}
	tBuf[46] = tSum; tBuf[47] = 0xd7; tBuf[48] = 0x09;
	WriteFile(m_pComThread->m_hCommDev, tBuf, 49, &data_written, &m_pComThread->m_osWrite);
	return TRUE;
}

BOOL CMbpcDoc::ReqInfoChange()
{
	BYTE tSum = 0, tBuf[12];
	memset(tBuf,0,sizeof(tBuf));
	DWORD data_written;
	tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr; tBuf[3] = LOCAL_ADDRESS;
	tBuf[4] = 0x09; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION; tBuf[7] = PROT_SCND_VERSION;
	tBuf[8] = REQ_INFO_CHANGE;
	for(int i = 0; i < 9; i++)
	{
		tSum += tBuf[i];
	}
	tBuf[9] = tSum; tBuf[10] = 0xd7; tBuf[11] = 0x09;

	WriteFile(m_pComThread->m_hCommDev, tBuf, 12, &data_written, &m_pComThread->m_osWrite);
	return TRUE;
}

BOOL CMbpcDoc::ReqALLInfo()
{
	BYTE tSum = 0, tBuf[12];
	memset(tBuf,0,sizeof(tBuf));
	DWORD data_written;
	tBuf[0] = 0xeb; tBuf[1] = 0x90; tBuf[2] = m_nRemoteAddr; tBuf[3] = LOCAL_ADDRESS;
	tBuf[4] = 0x09; tBuf[5] = 0x00; tBuf[6] = PROT_PRIM_VERSION; tBuf[7] = PROT_SCND_VERSION;
	tBuf[8] = REQ_ALL_INFO;
	for(int i = 0; i < 9; i++)
	{
		tSum += tBuf[i];
	}
	tBuf[9] = tSum; tBuf[10] = 0xd7; tBuf[11] = 0x09;

	WriteFile(m_pComThread->m_hCommDev, tBuf, 12, &data_written, &m_pComThread->m_osWrite);
	return TRUE;
}

void CMbpcDoc::InfoInit()

⌨️ 快捷键说明

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