|
@@ -21,6 +21,7 @@
|
|
|
#define new DEBUG_NEW
|
|
|
#endif
|
|
|
|
|
|
+#define MAX_SWITCH_LEN 16
|
|
|
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWndEx)
|
|
@@ -48,8 +49,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
|
|
|
ON_COMMAND(ID_RIBBON_INFRAED_CHECKBOX, &CMainFrame::OnInfraedCheckbox)
|
|
|
ON_UPDATE_COMMAND_UI(ID_RIBBON_INFRAED_CHECKBOX, &CMainFrame::OnUpdateInfraedCheckbox)
|
|
|
|
|
|
- ON_COMMAND(ID_RIBBON_SWITCHER_COMBOBOX, &CMainFrame::OnCameraCombobox)
|
|
|
- ON_UPDATE_COMMAND_UI(ID_RIBBON_SWITCHER_COMBOBOX, &CMainFrame::OnUpdateCameraCombobox)
|
|
|
+ ON_COMMAND(ID_RIBBON_SWITCHER_COMBOBOX, &CMainFrame::OnSwitcherCombobox)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_RIBBON_SWITCHER_COMBOBOX, &CMainFrame::OnUpdateSwitcherCombobox)
|
|
|
|
|
|
ON_COMMAND(ID_RIBBON_SWITCHER_CHECKBOX, &CMainFrame::OnSwitcherCheckbox)
|
|
|
ON_UPDATE_COMMAND_UI(ID_RIBBON_SWITCHER_CHECKBOX, &CMainFrame::OnUpdateSwitcherCheckbox)
|
|
@@ -70,6 +71,8 @@ CMainFrame::CMainFrame()
|
|
|
|
|
|
m_bFindTestWizardPort = false;
|
|
|
m_bFindSwitcherPort = false;
|
|
|
+ m_bSwitcherCheckA = false;
|
|
|
+ m_bSwitcherCheckB = false;
|
|
|
theApp.m_nAppLook = theApp.GetInt(_T("ApplicationLook"), ID_VIEW_APPLOOK_OFF_2007_BLUE);
|
|
|
}
|
|
|
|
|
@@ -658,43 +661,115 @@ void CMainFrame::OnSwitcherCombobox()
|
|
|
|
|
|
void CMainFrame::OnUpdateSwitcherCombobox(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
-
|
|
|
+ CMFCRibbonBar* pRibbon = GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonCheckBox* pSwitcherCheckbox = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOX));
|
|
|
+ pCmdUI->Enable(!pSwitcherCheckbox->IsChecked());
|
|
|
}
|
|
|
|
|
|
void CMainFrame::OnSwitcherCheckbox()
|
|
|
{
|
|
|
CMFCRibbonBar* pRibbon = GetRibbonBar();
|
|
|
ASSERT_VALID(pRibbon);
|
|
|
- CMFCRibbonComboBox* pCameraCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOX));
|
|
|
+ CMFCRibbonCheckBox* pSwitcherCheckbox = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOX));
|
|
|
+ CMFCRibbonComboBox* pSwitcherCombobox = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_COMBOBOX));
|
|
|
+
|
|
|
+ if ( !pSwitcherCheckbox->IsChecked() )
|
|
|
+ {
|
|
|
+ int nCurSel = pSwitcherCombobox->GetCurSel();
|
|
|
+ if ( nCurSel != CB_ERR )
|
|
|
+ {
|
|
|
+ m_SerialUSB.SetIOMode();
|
|
|
+ CString strText = pSwitcherCombobox->GetItem(nCurSel);
|
|
|
+ if ( m_SerialUSB.Open(atol(strText.Mid(3).GetString()), 115200) )
|
|
|
+ {
|
|
|
+ m_SerialUSB.SetBufferSize(1024,1024);
|
|
|
+ WritePrivateProfileString("Switcher", "Com", strText.GetString(), Global::g_szConfig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if ( m_SerialUSB.IsOpen() )
|
|
|
+ m_SerialUSB.Close();
|
|
|
+
|
|
|
+
|
|
|
+ m_bSwitcherCheckA = false;
|
|
|
+ m_bSwitcherCheckB = false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void CMainFrame::OnUpdateSwitcherCheckbox(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
-
|
|
|
+ pCmdUI->SetCheck(m_SerialUSB.IsOpen());
|
|
|
}
|
|
|
|
|
|
void CMainFrame::OnSwitcherCheckboxA()
|
|
|
{
|
|
|
CMFCRibbonBar* pRibbon = GetRibbonBar();
|
|
|
ASSERT_VALID(pRibbon);
|
|
|
- CMFCRibbonComboBox* pCameraCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOXA));
|
|
|
+ CMFCRibbonCheckBox* pCheckbox = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOXA));
|
|
|
+ m_bSwitcherCheckA = !(m_bSwitcherCheckB = pCheckbox->IsChecked());
|
|
|
+
|
|
|
+ if ( m_SerialUSB.IsOpen() )
|
|
|
+ {
|
|
|
+ m_SerialUSB.SetTimeouts(0,2,50,1,150);
|
|
|
+
|
|
|
+ byte szSendData[MAX_SWITCH_LEN] = {0};
|
|
|
+ _stprintf_s((TCHAR*)szSendData, MAX_SWITCH_LEN, _T("*SET PORT %c\r"), m_bSwitcherCheckA ? 'A':'B');
|
|
|
+
|
|
|
+
|
|
|
+ if ( m_SerialUSB.WriteSync(szSendData, _tcslen((TCHAR*)szSendData)) )
|
|
|
+ {
|
|
|
+ memset(szSendData, 0, MAX_SWITCH_LEN);
|
|
|
+ m_SerialUSB.ReadSync(szSendData, MAX_SWITCH_LEN);
|
|
|
+ TRACE("切换U盘成功\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TRACE("切换U盘失败\n");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void CMainFrame::OnUpdateSwitcherCheckboxA(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
-
|
|
|
+ pCmdUI->Enable(m_SerialUSB.IsOpen());
|
|
|
+ pCmdUI->SetCheck(m_bSwitcherCheckA);
|
|
|
}
|
|
|
|
|
|
void CMainFrame::OnSwitcherCheckboxB()
|
|
|
{
|
|
|
CMFCRibbonBar* pRibbon = GetRibbonBar();
|
|
|
ASSERT_VALID(pRibbon);
|
|
|
- CMFCRibbonComboBox* pCameraCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOXB));
|
|
|
+ CMFCRibbonCheckBox* pCheckbox = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_RIBBON_SWITCHER_CHECKBOXB));
|
|
|
+ m_bSwitcherCheckB = !(m_bSwitcherCheckA = pCheckbox->IsChecked());
|
|
|
+
|
|
|
+ if ( m_SerialUSB.IsOpen() )
|
|
|
+ {
|
|
|
+ m_SerialUSB.SetTimeouts(0,2,50,1,150);
|
|
|
+
|
|
|
+ byte szSendData[MAX_SWITCH_LEN] = {0};
|
|
|
+ _stprintf_s((TCHAR*)szSendData, MAX_SWITCH_LEN, _T("*SET PORT %c\r"), m_bSwitcherCheckA ? 'A':'B');
|
|
|
+
|
|
|
+
|
|
|
+ if ( m_SerialUSB.WriteSync(szSendData, _tcslen((TCHAR*)szSendData)) )
|
|
|
+ {
|
|
|
+ memset(szSendData, 0, MAX_SWITCH_LEN);
|
|
|
+ m_SerialUSB.ReadSync(szSendData, MAX_SWITCH_LEN);
|
|
|
+ TRACE("切换U盘成功\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TRACE("切换U盘失败\n");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void CMainFrame::OnUpdateSwitcherCheckboxB(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
-
|
|
|
+ pCmdUI->Enable(m_SerialUSB.IsOpen());
|
|
|
+ pCmdUI->SetCheck(m_bSwitcherCheckB);
|
|
|
}
|
|
|
|
|
|
BOOL CMainFrame::OnDeviceChange(UINT nEventType, DWORD_PTR dwData)
|