瀏覽代碼

【软件版本】V
【模块名称】远场测试
【问题原因】完成测试精灵串口面板功能
【修改描述】
【测试结果】

sat23 3 年之前
父節點
當前提交
fae95ce1b2
共有 2 個文件被更改,包括 49 次插入22 次删除
  1. 27 3
      FieldTestTool/FieldTestTool/MainFrm.cpp
  2. 22 19
      FieldTestTool/FieldTestTool/PropertiesWnd.cpp

+ 27 - 3
FieldTestTool/FieldTestTool/MainFrm.cpp

@@ -610,19 +610,43 @@ void CMainFrame::OnInfraedCombobox()
 
 void CMainFrame::OnUpdateInfraedCombobox(CCmdUI* pCmdUI)
 {
-    //pCmdUI->SetCheck(m_wndCaptionBar.IsVisible());
+    CMFCRibbonBar* pRibbon = GetRibbonBar();
+    ASSERT_VALID(pRibbon);
+    CMFCRibbonCheckBox* pInfraedCheckbox = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_RIBBON_INFRAED_CHECKBOX));
+    pCmdUI->Enable(!pInfraedCheckbox->IsChecked());
 }
 
 void CMainFrame::OnInfraedCheckbox()
 {
     CMFCRibbonBar* pRibbon = GetRibbonBar();
     ASSERT_VALID(pRibbon);
-    CMFCRibbonComboBox* pCameraCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_RIBBON_INFRAED_CHECKBOX));
+    CMFCRibbonCheckBox* pInfraedCheckbox = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_RIBBON_INFRAED_CHECKBOX));
+    CMFCRibbonComboBox* pInfraedCombobox = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_RIBBON_INFRAED_COMBOBOX));
+
+    if ( !pInfraedCheckbox->IsChecked() )
+    {
+        int nCurSel = pInfraedCombobox->GetCurSel();
+        if ( nCurSel != CB_ERR ) 
+        {
+            m_SerialTW.SetIOMode();
+            CString strText = pInfraedCombobox->GetItem(nCurSel);
+            if ( m_SerialTW.Open(atol(strText.Mid(3).GetString()), 115200) )
+            {
+                m_SerialTW.SetBufferSize(1024,1024);
+                WritePrivateProfileString("TestWizard", "Com", strText.GetString(), Global::g_szConfig);
+            }
+        }
+    }
+    else
+    {
+        if ( m_SerialTW.IsOpen() )
+            m_SerialTW.Close();
+    }
 }
 
 void CMainFrame::OnUpdateInfraedCheckbox(CCmdUI* pCmdUI)
 {
-    //pCmdUI->SetCheck(m_wndCaptionBar.IsVisible());
+    pCmdUI->SetCheck(m_SerialTW.IsOpen());
 }
 
 void CMainFrame::OnSwitcherCombobox()

+ 22 - 19
FieldTestTool/FieldTestTool/PropertiesWnd.cpp

@@ -181,30 +181,33 @@ void CPropertiesWnd::OnSignalBtnClick(UINT uId) // 
         pWnd->GetWindowText(text);
         KeyInfo *pKey = m_map_key.find(id)->second;
 
-#if 0
-        if ( m_SerialTW.IsOpen() ){
-            m_SerialTW.SetTimeouts();
-            // 封装发送包;
-            byte szSendData[MAX_PATH] = {0};
-            _stprintf_s((TCHAR*)szSendData, MAX_PATH, _T("*INPUT %s %s\r"), pKey->strType.c_str(), pKey->strValue.c_str());
-
-            // 发送单信号;
-            if ( m_SerialTW.WriteSync(szSendData, _tcslen((TCHAR*)szSendData)) )
-            {
-                memset(szSendData, 0, MAX_PATH);
-                m_SerialTW.ReadSync(szSendData, MAX_PATH);
-                TRACE("发送单信号成功\n");
+        // 从父窗口获取对象;
+        CMainFrame *pMainWnd = (CMainFrame*)AfxGetApp()->m_pMainWnd;
+        if ( pMainWnd )
+        {
+            if ( pMainWnd->m_SerialTW.IsOpen() ){
+                pMainWnd->m_SerialTW.SetTimeouts();
+                // 封装发送包;
+                byte szSendData[MAX_PATH] = {0};
+                _stprintf_s((TCHAR*)szSendData, MAX_PATH, _T("*INPUT %s %s\r"), pKey->strType.c_str(), pKey->strValue.c_str());
+
+                // 发送单信号;
+                if ( pMainWnd->m_SerialTW.WriteSync(szSendData, _tcslen((TCHAR*)szSendData)) )
+                {
+                    memset(szSendData, 0, MAX_PATH);
+                    pMainWnd->m_SerialTW.ReadSync(szSendData, MAX_PATH);
+                    TRACE("发送单信号成功\n");
+                }
+                else
+                {
+                    TRACE("发送单信号失败\n");
+                }
             }
             else
             {
-                TRACE("发送单信号失败\n");
+                MessageBox(_T("The serial port is not open."), _T("Warnning"), MB_OK|MB_ICONWARNING);
             }
         }
-        else
-        {
-            MessageBox(_T("The serial port is not open."), _T("Warnning"), MB_OK|MB_ICONWARNING);
-        }
-#endif
     }
 }