📄 mbpcdoc.cpp
字号:
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 + -