📄 mp2kdlg.cpp
字号:
UpdateData(false);
break;
case LOOPSCOM2:
m_SCom2LoopFail ++;
UpdateData(false);
break;
case LOOPSCOM3:
m_SCom3LoopFail ++;
UpdateData(false);
break;
case LOOPSCOM4:
m_SCom4LoopFail ++;
UpdateData(false);
break;
case GETVERSION:
UpdateVersion();
break;
}
//OperationMode = NOOPERATE;
pCurCheckedMode = pCurCheckedMode->next;
pCurCheckedNode = pCurCheckedNode->next;
return;
}//3
else
{//4
for(i = 0;i < Data.DataToRead;i ++)
{//5
if(Data.ReceivedData[i] != pCurCheckedNode->SentData[i])
{//6
switch(pCurCheckedMode->Operation_Mode)
{
case MCOM:
m_MComFail ++;
UpdateData(false);
break;
case SCOM1:
m_SCom1Fail ++;
UpdateData(false);
break;
case SCOM2:
m_SCom2Fail ++;
UpdateData(false);
break;
case SCOM3:
m_SCom3Fail ++;
UpdateData(false);
break;
case SCOM4:
m_SCom4Fail ++;
UpdateData(false);
break;
case LOOPMCOM:
m_MComLoopFail ++;
UpdateData(false);
break;
case LOOPSCOM1:
m_SCom1LoopFail ++;
UpdateData(false);
break;
case LOOPSCOM2:
m_SCom2LoopFail ++;
UpdateData(false);
break;
case LOOPSCOM3:
m_SCom3LoopFail ++;
UpdateData(false);
break;
case LOOPSCOM4:
m_SCom4LoopFail ++;
UpdateData(false);
break;
}
/**********************test*********************/
/**********************************************/
KillTimer(ID_LoopTimer);
for(ii = 0;ii < Data.DataToRead;ii ++)
{
temp.Format("%x",Data.ReceivedData[ii]);
temp1 += (temp + " ");
}
AfxMessageBox(temp1);
temp1 = "";
for(ii = 0;ii < Data.DataToRead;ii ++)
{
temp.Format("%x",pCurCheckedNode->SentData[ii]);
temp1 += (temp + " ");
}
AfxMessageBox(temp1);
/**********************************************/
/********************test end******************/
pCurCheckedNode = pCurCheckedNode->next;
pCurCheckedMode = pCurCheckedMode->next;
//OperationMode = NOOPERATE;
return;
}//6
}//5
switch(pCurCheckedMode->Operation_Mode)
{
case MCOM:
m_MComSuccess ++;
UpdateData(false);
break;
case SCOM1:
m_SCom1Success ++;
UpdateData(false);
break;
case SCOM2:
m_SCom2Success ++;
UpdateData(false);
break;
case SCOM3:
m_SCom3Success ++;
UpdateData(false);
break;
case SCOM4:
m_SCom4Success ++;
UpdateData(false);
break;
case LOOPMCOM:
m_MComLoopSuccess ++;
UpdateData(false);
break;
case LOOPSCOM1:
m_SCom1LoopSuccess ++;
UpdateData(false);
break;
case LOOPSCOM2:
m_SCom2LoopSuccess ++;
UpdateData(false);
break;
case LOOPSCOM3:
m_SCom3LoopSuccess ++;
UpdateData(false);
break;
case LOOPSCOM4:
m_SCom4LoopSuccess ++;
UpdateData(false);
break;
}
pCurCheckedNode = pCurCheckedNode->next;
pCurCheckedMode = pCurCheckedMode->next;
//OperationMode = NOOPERATE;
return;
}//4
}//2
SerialCom.SetInBufferCount(0);
break;
default:
break;
}//1
}//0
void CMp2KDlg::OnSet()
{
SetDelay.m_PreviousDelay = SetDelay.m_DelaySelect;
SetDelay.CenterWindow();
this->BeginModalState();
SetDelay.ShowWindow(SW_SHOW);
}
void CMp2KDlg::OnTimer(UINT nIDEvent)
{//0
switch(nIDEvent)
{//1
case ID_LEDTimer:
switch(LEDCounter)
{//2
case 0:
On9600bps();
LEDCounter = (LEDCounter + 1) % 3;
break;
case 1:
On19200bps();
LEDCounter = (LEDCounter + 1) % 3;
break;
case 2:
On38400bps();
LEDCounter = (LEDCounter + 1) % 3;
break;
}//2
break;
case ID_LoopTimer:
switch(LoopCounter)
{
case 0:
MCom();
pCurSedMode->Operation_Mode = LOOPMCOM;
pCurSedMode = pCurSedMode->next;
LoopCounter = (LoopCounter + 1) % 5;
break;
case 1:
SCom1();
pCurSedMode->Operation_Mode = LOOPSCOM1;
pCurSedMode = pCurSedMode->next;
LoopCounter = (LoopCounter + 1) % 5;
break;
case 2:
SCom2();
pCurSedMode->Operation_Mode = LOOPSCOM2;
pCurSedMode = pCurSedMode->next;
LoopCounter = (LoopCounter + 1) % 5;
break;
case 3:
SCom3();
pCurSedMode->Operation_Mode = LOOPSCOM3;
pCurSedMode = pCurSedMode->next;
LoopCounter = (LoopCounter + 1) % 5;
break;
case 4:
SCom4();
pCurSedMode->Operation_Mode = LOOPSCOM4;
pCurSedMode = pCurSedMode->next;
LoopCounter = (LoopCounter + 1) % 5;
break;
}
break;
case ID_MComTimer:
MCom();
pCurSedMode->Operation_Mode = MCOM;
pCurSedMode = pCurSedMode->next;
break;
case ID_SCom1Timer:
SCom1();
pCurSedMode->Operation_Mode = SCOM1;
pCurSedMode = pCurSedMode->next;
break;
case ID_SCom2Timer:
SCom2();
pCurSedMode->Operation_Mode = SCOM2;
pCurSedMode = pCurSedMode->next;
break;
case ID_SCom3Timer:
SCom3();
pCurSedMode->Operation_Mode = SCOM3;
pCurSedMode = pCurSedMode->next;
break;
case ID_SCom4Timer:
SCom4();
pCurSedMode->Operation_Mode = SCOM4;
pCurSedMode = pCurSedMode->next;
break;
}//1
CDialog::OnTimer(nIDEvent);
}//0
void CMp2KDlg::OnStartloop()
{
m_StartLoop.EnableWindow(false);
m_Set.EnableWindow(false);
m_StopLoop.EnableWindow(true);
LoopCounter = 0;
SetTimer(ID_LoopTimer,SetDelay.m_Delay,NULL);
}
void CMp2KDlg::OnStoploop()
{
KillTimer(ID_LoopTimer);
m_StartLoop.EnableWindow(true);
m_Set.EnableWindow(true);
m_StopLoop.EnableWindow(false);
}
void CMp2KDlg::OnClearmcom()
{
SerialCom.SetInBufferCount(0);
SerialCom.SetOutBufferCount(0);
m_MComSuccess = m_MComFail = 0;
UpdateData(false);
}
void CMp2KDlg::OnClearscom1()
{
SerialCom.SetInBufferCount(0);
SerialCom.SetOutBufferCount(0);
m_SCom1Success = m_SCom1Fail = 0;
UpdateData(false);
}
void CMp2KDlg::OnClearscom2()
{
SerialCom.SetInBufferCount(0);
SerialCom.SetOutBufferCount(0);
m_SCom2Success = m_SCom2Fail = 0;
UpdateData(false);
}
void CMp2KDlg::OnClearscom3()
{
SerialCom.SetInBufferCount(0);
SerialCom.SetOutBufferCount(0);
m_SCom3Success = m_SCom3Fail = 0;
UpdateData(false);
}
void CMp2KDlg::OnClearscom4()
{
SerialCom.SetInBufferCount(0);
SerialCom.SetOutBufferCount(0);
m_SCom4Success = m_SCom4Fail = 0;
UpdateData(false);
}
void CMp2KDlg::OnCloseupSelectpccom()
{
m_CurSel = m_PCCom.GetCurSel();
if(SerialCom.GetCommPort() == m_CurSel + 1)
return;
SerialCom.SetPortOpen(false);
SerialCom.SetCommPort(m_CurSel + 1);
ComSettings = "19200,N,8,1";
SerialCom.SetSettings(ComSettings);
SerialCom.SetInBufferSize(300);
SerialCom.SetInBufferCount(0);
SerialCom.SetInputMode(1);
SerialCom.SetInputLen(0);
SerialCom.SetSThreshold(0);
SerialCom.SetRThreshold(1);
SerialCom.SetPortOpen(true);
}
void CMp2KDlg::OnFinish()
{
//OperationMode = NOOPERATE;
OnStoploop();
if(LEDLoop)
KillTimer(ID_LEDTimer);
Data.SentData[0] = 0x01;
Data.SentData[1] = 0x00;
Data.SentData[2] = 0x06;
Data.SentData[3] = 0x01;
Data.SentData[4] = 0x00;
Data.SentData[5] = 0x00;
Data.SentData[6] = 0x04;
Data.DataToWrite = 7;
// Set PC serial com
SerialCom.SetPortOpen(false);
ComSettings = "9600,N,8,1";
SerialCom.SetSettings(ComSettings);
SerialCom.SetPortOpen(true);
Packager(Data.SentData,Packaged_Data.PackagedData,Data.DataToWrite,
&Packaged_Data.PackagedDataLen);
TransferData(Packaged_Data.PackagedData,& Packaged_Data.PackagedDataLen);
Sleep(2);
// Set PC serial com
SerialCom.SetPortOpen(false);
ComSettings = "38400,N,8,1";
SerialCom.SetSettings(ComSettings);
SerialCom.SetPortOpen(true);
Packager(Data.SentData,Packaged_Data.PackagedData,Data.DataToWrite,
&Packaged_Data.PackagedDataLen);
TransferData(Packaged_Data.PackagedData,& Packaged_Data.PackagedDataLen);
Sleep(2);
// Set PC serial com
SerialCom.SetPortOpen(false);
ComSettings = "19200,N,8,1";
SerialCom.SetSettings(ComSettings);
SerialCom.SetPortOpen(true);
Packager(Data.SentData,Packaged_Data.PackagedData,Data.DataToWrite,
&Packaged_Data.PackagedDataLen);
TransferData(Packaged_Data.PackagedData,& Packaged_Data.PackagedDataLen);
// Make up the SetDelay dialog combobox
if(SetDelay.m_ComboBox.GetCount() == 5)
SetDelay.m_ComboBox.DeleteString(4);
else if(SetDelay.m_ComboBox.GetCount() == 3)
SetDelay.m_ComboBox.AddString("1次/150毫秒");
}
void CMp2KDlg::OnGetversion()
{
/*Data.SentData[0] = 0x01;
Data.SentData[1] = 0x00;
Data.SentData[2] = 0x03;
Data.SentData[3] = 0x00;
Data.SentData[4] = 0x00;
Data.SentData[5] = 0x00;
Data.SentData[6] = 0x01;
Data.DataToWrite = 7;*/
pCurSedNode->SentData[0] = 0x01;
pCurSedNode->SentData[1] = 0x00;
pCurSedNode->SentData[2] = 0x03;
pCurSedNode->SentData[3] = 0x00;
pCurSedNode->SentData[4] = 0x00;
pCurSedNode->SentData[5] = 0x00;
pCurSedNode->SentData[6] = 0x01;
pCurSedNode->DataToWrited = 7;
Packager(pCurSedNode->SentData,Packaged_Data.PackagedData,pCurSedNode->DataToWrited,
&Packaged_Data.PackagedDataLen);
TransferData(Packaged_Data.PackagedData,& Packaged_Data.PackagedDataLen);
pCurSedMode->Operation_Mode = GETVERSION;
pCurSedMode = pCurSedMode->next;
pCurSedNode = pCurSedNode->next;
}
LRESULT CMp2KDlg::DefWindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
if(message == WM_CLOSE)
if(AfxMessageBox("关闭该测试软件否?",MB_YESNO) == IDNO)
return 0;
return CDialog::DefWindowProc(message,wParam,lParam);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -