|
@@ -50,6 +50,42 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
|
|
|
ON_MESSAGE(MSG_STATUS_BAR, &CMainFrame::OnMsgStatusBar)
|
|
|
ON_REGISTERED_MESSAGE(AFX_WM_ON_CHANGE_RIBBON_CATEGORY, &CMainFrame::OnRibbonChanged)
|
|
|
ON_WM_CLOSE()
|
|
|
+ ON_WM_DEVICECHANGE()
|
|
|
+ // 全步骤截图;
|
|
|
+ ON_COMMAND(ID_CHECK_FULL_CUT, &CMainFrame::OnCheckFullCut)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_CHECK_FULL_CUT, &CMainFrame::OnUpdateCheckFullCut)
|
|
|
+ // 有声按钮;
|
|
|
+ ON_COMMAND(BTN_HAD_SOUND, &CMainFrame::OnHadSound)
|
|
|
+ ON_UPDATE_COMMAND_UI(BTN_HAD_SOUND, &CMainFrame::OnUpdateHadSound)
|
|
|
+ // 声音默认按钮;
|
|
|
+ ON_COMMAND(BTN_DEF_SOUND, &CMainFrame::OnDefSound)
|
|
|
+ ON_UPDATE_COMMAND_UI(BTN_DEF_SOUND, &CMainFrame::OnUpdateDefSound)
|
|
|
+ // 声音等级编辑框;
|
|
|
+ // OCR账号下拉框;
|
|
|
+ ON_COMMAND(ID_COMBOX_OCR, &CMainFrame::OnComboxOcr)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_COMBOX_OCR, &CMainFrame::OnUpdateComboxOcr)
|
|
|
+ // MenuTree项目下拉框;
|
|
|
+ ON_COMMAND(ID_COMBO_PRODUCT, &CMainFrame::OnComboProduct)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_COMBO_PRODUCT, &CMainFrame::OnUpdateComboProduct)
|
|
|
+ // MenuTree UI下拉框;
|
|
|
+ ON_COMMAND(ID_COMBO_UI, &CMainFrame::OnComboUi)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_COMBO_UI, &CMainFrame::OnUpdateComboUi)
|
|
|
+ // MenuTree 子UI下拉框;
|
|
|
+ ON_COMMAND(ID_COMBO_SUBUI, &CMainFrame::OnComboSubUi)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_COMBO_SUBUI, &CMainFrame::OnUpdateComboSubUi)
|
|
|
+ // 信号仪1下拉框;
|
|
|
+ ON_COMMAND(ID_COMBO1_22293, &CMainFrame::OnCombo1_22293)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_COMBO1_22293, &CMainFrame::OnUpdateCombo1_22293)
|
|
|
+ // 信号仪2下拉框;
|
|
|
+ ON_COMMAND(ID_COMBO2_22293, &CMainFrame::OnCombo2_22293)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_COMBO2_22293, &CMainFrame::OnUpdateCombo2_22293)
|
|
|
+ // 信号仪1CheckBox;
|
|
|
+ ON_COMMAND(ID_CHECK1_22293, &CMainFrame::OnCheck1_22293)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_CHECK1_22293, &CMainFrame::OnUpdateCheck1_22293)
|
|
|
+ // 信号仪2CheckBox;
|
|
|
+ ON_COMMAND(ID_CHECK2_22293, &CMainFrame::OnCheck2_22293)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_CHECK2_22293, &CMainFrame::OnUpdateCheck2_22293)
|
|
|
+ //////////////////////////////////////////////////////////////////////////
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CMainFrame 构造/析构
|
|
@@ -71,6 +107,10 @@ CMainFrame::CMainFrame() noexcept :m_trayIcon(IDR_MAINFRAME)
|
|
|
}
|
|
|
|
|
|
m_pUB530View = m_pDeviceView = NULL;
|
|
|
+
|
|
|
+ ReadBaiduCfg(m_bdcfg);
|
|
|
+ ReadRsRunCfg(m_rscfg);
|
|
|
+ ReadTreePath();
|
|
|
}
|
|
|
|
|
|
CMainFrame::~CMainFrame()
|
|
@@ -303,7 +343,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-#if 1 // 第二个视图;
|
|
|
+#if 0 // 第二个视图;
|
|
|
CCreateContext context2;
|
|
|
m_pDeviceView = new CChildFrame();
|
|
|
context2.m_pLastView = NULL;
|
|
@@ -323,6 +363,9 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
|
m_pUB530View->MDIActivate();
|
|
|
m_pUB530View->ShowWindow(SW_SHOWMAXIMIZED);
|
|
|
|
|
|
+
|
|
|
+ InitDevicePanel();
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -730,3 +773,686 @@ LRESULT CMainFrame::OnRibbonChanged(WPARAM wParam, LPARAM lParam)
|
|
|
|
|
|
return LRESULT();
|
|
|
}
|
|
|
+
|
|
|
+void CMainFrame::ReadBaiduCfg(BaiduCfg& bdcfg)
|
|
|
+{
|
|
|
+ TCHAR szValue[MAX_PATH] = { 0 };
|
|
|
+ TCHAR szBuffer[1024] = { 0 };
|
|
|
+ _stprintf_s(m_szBaiduCfgPath, _T("%s%s"), Global::g_szPython27Dir, _T("Lib\\site-packages\\ssat_sdk\\config\\baidu.cfg"));
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("CurStatus"), _T("Cur_Count"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
|
|
|
+ bdcfg.cur_count = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("CurStatus"), _T("Reset_Time"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
|
|
|
+ bdcfg.reset_time = szValue;
|
|
|
+
|
|
|
+ // 读取所有Section值;
|
|
|
+ DWORD dwLen = GetPrivateProfileString(NULL, NULL, NULL, szBuffer, 1024, m_szBaiduCfgPath);
|
|
|
+ for (int i = 0, j = 0; i < dwLen; i++)
|
|
|
+ {
|
|
|
+ if (szBuffer[i] == '\0')
|
|
|
+ {
|
|
|
+ TCHAR szData[MAX_PATH] = { 0 };
|
|
|
+ memcpy(szData, &szBuffer[j], i - j);
|
|
|
+ if (_tcsicmp(szData, _T("CurStatus")))
|
|
|
+ {
|
|
|
+ CountInfo countInfo;
|
|
|
+ GetPrivateProfileString(szData, _T("APP_ID"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
|
|
|
+ countInfo.app_id = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(szData, _T("API_KEY"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
|
|
|
+ countInfo.api_key = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(szData, _T("SECRET_KEY"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
|
|
|
+ countInfo.secret_key = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(szData, _T("Ret_Count"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
|
|
|
+ countInfo.ret_count = szValue;
|
|
|
+
|
|
|
+ bdcfg.list_count.insert(std::pair<std::string, CountInfo>(szData, countInfo));
|
|
|
+ }
|
|
|
+ OutputDebugString(szData);
|
|
|
+ OutputDebugString("\n");
|
|
|
+ j = i + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::ReadRsRunCfg(RsRunCfg& rscfg)
|
|
|
+{
|
|
|
+ TCHAR szValue[MAX_PATH] = { 0 };
|
|
|
+ TCHAR szBuffer[1024] = { 0 };
|
|
|
+ _stprintf_s(m_szRsCfgPath, _T("%s%s"), Global::g_szPython27Dir, _T("Lib\\site-packages\\ssat_sdk\\config\\resource_run.cfg"));
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("Sound"), _T("sound_list"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.sound_list = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("COMM"), _T("issendkeytakepicture_tester"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.full_cut = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("COMM"), _T("tg39_port"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.tg39_port = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("COMM"), _T("sat_home"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.sat_home = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("COMM"), _T("sat_result_dir"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.sat_result_dir = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("COMM"), _T("chroma22293"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.chroma22293 = szValue;
|
|
|
+
|
|
|
+ //...
|
|
|
+ GetPrivateProfileString(_T("MenuTree"), _T("menutreeselectedchip"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.menutree_chip = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.menutree_style = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.menutree_channel = szValue;
|
|
|
+
|
|
|
+ // SATHelper
|
|
|
+ GetPrivateProfileString(_T("SATHelper"), _T("chroma1"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.chroma1 = szValue;
|
|
|
+
|
|
|
+ GetPrivateProfileString(_T("SATHelper"), _T("chroma2"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
|
|
|
+ rscfg.chroma2 = szValue;
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::ReadTreePath()
|
|
|
+{
|
|
|
+ // 必须在ReadRsRunCfg之后调用;
|
|
|
+ TCHAR szRootDir[MAX_PATH] = { 0 };
|
|
|
+ _stprintf_s(szRootDir, _T("%s%s"), m_rscfg.sat_home.c_str(), _T("resource\\MenuTree\\"));
|
|
|
+
|
|
|
+ auto _get_dir = [](std::string dir) {
|
|
|
+ int nIndex = dir.find_last_of('\\');
|
|
|
+ if (nIndex != std::string::npos)
|
|
|
+ {
|
|
|
+ return dir.substr(nIndex + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ return dir;
|
|
|
+ };
|
|
|
+
|
|
|
+ auto _get_name = [](std::string dir) {
|
|
|
+ int pos1 = dir.find_last_of('\\');
|
|
|
+ if (pos1 != std::string::npos)
|
|
|
+ {
|
|
|
+ dir = dir.substr(pos1 + 1);
|
|
|
+ int pos2 = dir.find_last_of('.');
|
|
|
+ if (pos2 != std::string::npos)
|
|
|
+ {
|
|
|
+ dir = dir.substr(0, pos2);
|
|
|
+ int pos3 = dir.find("MenuTree_");
|
|
|
+ if (pos3 != std::string::npos)
|
|
|
+ {
|
|
|
+ return dir.substr(strlen("MenuTree_"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return std::string();
|
|
|
+ };
|
|
|
+
|
|
|
+ // 查找根目录下的目录;
|
|
|
+ filehelper fh;
|
|
|
+ STR_VEC vt_dir;
|
|
|
+ fh.getsubfolder(szRootDir, &vt_dir);
|
|
|
+ for (auto it : vt_dir)
|
|
|
+ {
|
|
|
+ STR_VEC vt_subdir;
|
|
|
+ std::vector<UITree> vtTree;
|
|
|
+ fh.getsubfolder(it.c_str(), &vt_subdir);
|
|
|
+ for (auto ui : vt_subdir)
|
|
|
+ {
|
|
|
+ // 查找xls文件;
|
|
|
+ UITree uitree;
|
|
|
+ uitree.ui = ui;
|
|
|
+ fh.getfiles_findout_subfolder(ui.c_str(), _T("*.xls"), &uitree.vtSubUI);
|
|
|
+ vtTree.push_back(uitree);
|
|
|
+ }
|
|
|
+
|
|
|
+ m_map_tree.insert(std::pair<std::string, std::vector<UITree>>(_get_dir(it), vtTree));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 去除目录级;
|
|
|
+ for (std::map<std::string, std::vector<UITree>>::iterator it = m_map_tree.begin(); it != m_map_tree.end(); it++)
|
|
|
+ {
|
|
|
+ for (std::vector<UITree>::iterator ui = it->second.begin(); ui != it->second.end(); ui++)
|
|
|
+ {
|
|
|
+ ui->ui = _get_dir(ui->ui);
|
|
|
+ for (std::vector<std::string>::iterator xls = ui->vtSubUI.begin(); xls != ui->vtSubUI.end();)
|
|
|
+ {
|
|
|
+ *xls = _get_name(xls->c_str());
|
|
|
+ if (xls->size() == 0)
|
|
|
+ {
|
|
|
+ xls = ui->vtSubUI.erase(xls);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ xls++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::ParseJson()
|
|
|
+{
|
|
|
+ if (m_rscfg.chroma1.size() == 0)
|
|
|
+ {
|
|
|
+ cJSON* pJson = cJSON_Parse(m_rscfg.chroma22293.c_str());
|
|
|
+ if (pJson)
|
|
|
+ {
|
|
|
+ cJSON* pArray = cJSON_GetObjectItem(pJson, "devices");
|
|
|
+ if (pArray)
|
|
|
+ {
|
|
|
+ int nCount = cJSON_GetArraySize(pArray);
|
|
|
+ for (int i = 0; i < nCount; i++)
|
|
|
+ {
|
|
|
+ cJSON* pItem = cJSON_GetArrayItem(pArray, i);
|
|
|
+ if (pItem)
|
|
|
+ {
|
|
|
+ if (i == 0)
|
|
|
+ m_rscfg.chroma1 = cJSON_GetObjectItem(pItem, "port") ? cJSON_GetObjectItem(pItem, "port")->valuestring : _T("");
|
|
|
+ if (i == 1)
|
|
|
+ m_rscfg.chroma2 = cJSON_GetObjectItem(pItem, "port") ? cJSON_GetObjectItem(pItem, "port")->valuestring : _T("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存;
|
|
|
+ WritePrivateProfileString(_T("SATHelper"), _T("chroma1"), m_rscfg.chroma1.c_str(), m_szRsCfgPath);
|
|
|
+ WritePrivateProfileString(_T("SATHelper"), _T("chroma2"), m_rscfg.chroma2.c_str(), m_szRsCfgPath);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::RunDevice()
|
|
|
+{
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonButton* pCheck1 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK1_22293));
|
|
|
+ CMFCRibbonButton* pCheck2 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK2_22293));
|
|
|
+
|
|
|
+ if (m_rscfg.chroma1.size())
|
|
|
+ {
|
|
|
+ CDevice* pdev = new CDevice();
|
|
|
+ pdev->m_iBaudrate = 115200;
|
|
|
+ pdev->m_iDatabit = 8;
|
|
|
+ pdev->m_iPort = atoi(m_rscfg.chroma1.substr(3).c_str());
|
|
|
+ pdev->m_iParitybit = 0;
|
|
|
+ pdev->m_iStopbit = 1;
|
|
|
+ pdev->m_iID = 1;
|
|
|
+ pdev->m_strDeviceName = "Chroma22293";
|
|
|
+ pdev->m_iDeviceType = 1;
|
|
|
+ if (pdev->Open())
|
|
|
+ {
|
|
|
+ g_dmap.insert(std::pair<int, CDevice*>(pdev->m_iID, pdev));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ delete pdev;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_rscfg.chroma2.size())
|
|
|
+ {
|
|
|
+ CDevice* pdev = new CDevice();
|
|
|
+ pdev->m_iBaudrate = 115200;
|
|
|
+ pdev->m_iDatabit = 8;
|
|
|
+ pdev->m_iPort = atoi(m_rscfg.chroma2.substr(3).c_str());
|
|
|
+ pdev->m_iParitybit = 0;
|
|
|
+ pdev->m_iStopbit = 1;
|
|
|
+ pdev->m_iID = 2;
|
|
|
+ pdev->m_strDeviceName = "Chroma22293";
|
|
|
+ pdev->m_iDeviceType = 1;
|
|
|
+ if (pdev->Open())
|
|
|
+ {
|
|
|
+ g_dmap.insert(std::pair<int, CDevice*>(pdev->m_iID, pdev));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ delete pdev;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ UpdateData(FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::InitCombobox_port()
|
|
|
+{
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pCommbox1 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO1_22293));
|
|
|
+ CMFCRibbonComboBox* pCommbox2 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO2_22293));
|
|
|
+ for (std::vector<std::string>::iterator it = m_vtCOM.begin(); it != m_vtCOM.end(); it++)
|
|
|
+ {
|
|
|
+ if (!IsPortInserted(pCommbox1, it->c_str()))
|
|
|
+ pCommbox1->AddItem(it->c_str());
|
|
|
+
|
|
|
+ if (!IsPortInserted(pCommbox2, it->c_str()))
|
|
|
+ pCommbox2->AddItem(it->c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_rscfg.chroma1.size())
|
|
|
+ pCommbox1->SelectItem(m_rscfg.chroma1.c_str());
|
|
|
+ if (m_rscfg.chroma2.size())
|
|
|
+ pCommbox2->SelectItem(m_rscfg.chroma2.c_str());
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CMainFrame::IsPortInserted(CMFCRibbonComboBox* pCommbox, LPCTSTR lpPort)
|
|
|
+{
|
|
|
+ int nCount = pCommbox->GetCount();
|
|
|
+ for (int i = 0; i < nCount; i++ )
|
|
|
+ {
|
|
|
+ if (_tcsicmp(pCommbox->GetItem(i), lpPort) == 0)
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ return FALSE;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CMainFrame::OnDeviceChange(UINT nEventType, DWORD_PTR dwData)
|
|
|
+{
|
|
|
+ switch (nEventType)
|
|
|
+ {
|
|
|
+ // 串口拨掉;
|
|
|
+ case DBT_DEVICEREMOVECOMPLETE:
|
|
|
+ break;
|
|
|
+ // 串口插入;
|
|
|
+ case DBT_DEVICEARRIVAL:
|
|
|
+ {
|
|
|
+ Global::GetSysSerialPort(m_vtCOM);
|
|
|
+ InitCombobox_port();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return TRUE;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::InitDevicePanel()
|
|
|
+{
|
|
|
+ ParseJson();
|
|
|
+ // Ribbon Combobox添加默认项;
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pOcrCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBOX_OCR));
|
|
|
+ if (pOcrCombo)
|
|
|
+ {
|
|
|
+ for (auto it : m_bdcfg.list_count)
|
|
|
+ {
|
|
|
+ pOcrCombo->AddItem(it.first.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 选择默认项;
|
|
|
+ pOcrCombo->SetEditText(m_bdcfg.cur_count.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 剩余次数;
|
|
|
+ CMFCRibbonEdit* pOcrCount = DYNAMIC_DOWNCAST(CMFCRibbonEdit, pRibbon->FindByID(ID_EDIT_COUNT));
|
|
|
+ if (pOcrCount)
|
|
|
+ {
|
|
|
+ pOcrCount->SetEditText(m_bdcfg.reset_time.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 声音等级;
|
|
|
+ CMFCRibbonEdit* pSoundLevel = DYNAMIC_DOWNCAST(CMFCRibbonEdit, pRibbon->FindByID(ID_EDIT_SOUND_LEVEL));
|
|
|
+ if (pSoundLevel)
|
|
|
+ {
|
|
|
+ pSoundLevel->SetEditText(m_bdcfg.reset_time.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 全步骤截图;
|
|
|
+// CMFCRibbonCheckBox* pCheckFullCut = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_CHECK_FULL_CUT));
|
|
|
+// if (pCheckFullCut)
|
|
|
+// {
|
|
|
+// pCheckFullCut->SetCheck();
|
|
|
+// }
|
|
|
+
|
|
|
+ // MenuTree;
|
|
|
+ CMFCRibbonComboBox* pChipCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_PRODUCT));
|
|
|
+ if (pChipCombo)
|
|
|
+ {
|
|
|
+ for (auto it : m_map_tree)
|
|
|
+ {
|
|
|
+ pChipCombo->AddItem(it.first.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 选择默认项;
|
|
|
+ pChipCombo->SetEditText(m_rscfg.menutree_chip.c_str());
|
|
|
+
|
|
|
+ // UI下拉框;
|
|
|
+ CString curText = pChipCombo->GetEditText();
|
|
|
+ CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
|
|
|
+ for (auto it : m_map_tree.find(curText.GetString())->second)
|
|
|
+ {
|
|
|
+ pStyleCombo->AddItem(it.ui.c_str());
|
|
|
+ }
|
|
|
+ pStyleCombo->SetEditText(m_rscfg.menutree_style.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 启动设备;
|
|
|
+ Global::GetSysSerialPort(m_vtCOM);
|
|
|
+ InitCombobox_port();
|
|
|
+ RunDevice();
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnCheckFullCut()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonButton* pFullCutCheck = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK_FULL_CUT));
|
|
|
+ if (pFullCutCheck)
|
|
|
+ {
|
|
|
+ WritePrivateProfileString(_T("COMM"), _T("issendkeytakepicture_tester"), !pFullCutCheck->IsChecked() ? _T("True") : _T("False"), m_szRsCfgPath);
|
|
|
+ m_rscfg.full_cut = !pFullCutCheck->IsChecked() ? _T("True") : _T("False");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateCheckFullCut(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+ pCmdUI->SetCheck(!_tcsicmp(m_rscfg.full_cut.c_str(), _T("True")));
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnHadSound()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateHadSound(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnDefSound()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateDefSound(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnComboxOcr()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pOcrCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBOX_OCR));
|
|
|
+ if (pOcrCombo)
|
|
|
+ {
|
|
|
+ // 获取当前文本项;
|
|
|
+ CString strOcr = pOcrCombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("CurStatus"), _T("Cur_Count"), strOcr, m_szBaiduCfgPath);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateComboxOcr(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnComboProduct()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pChipCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_PRODUCT));
|
|
|
+ if (pChipCombo)
|
|
|
+ {
|
|
|
+ // UI下拉框;
|
|
|
+ CString curText = pChipCombo->GetEditText();
|
|
|
+ CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
|
|
|
+ pStyleCombo->RemoveAllItems();
|
|
|
+ for (auto it : m_map_tree.find(curText.GetString())->second)
|
|
|
+ {
|
|
|
+ pStyleCombo->AddItem(it.ui.c_str());
|
|
|
+ }
|
|
|
+ pStyleCombo->SelectItem(0);
|
|
|
+
|
|
|
+ // SUBUI下拉框;
|
|
|
+ CString strUIName = pStyleCombo->GetEditText();
|
|
|
+ CMFCRibbonComboBox* pSubUICombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_SUBUI));
|
|
|
+ pSubUICombo->RemoveAllItems();
|
|
|
+ std::vector<UITree>& ui = m_map_tree.find(curText.GetString())->second;
|
|
|
+ for (std::vector<UITree>::iterator it = ui.begin(); it != ui.end(); it++)
|
|
|
+ {
|
|
|
+ if (_tcsicmp(strUIName.GetString(), it->ui.c_str()) == 0)
|
|
|
+ {
|
|
|
+ if (it->vtSubUI.size() == 0)
|
|
|
+ break;
|
|
|
+
|
|
|
+ for (auto SubUI : it->vtSubUI)
|
|
|
+ {
|
|
|
+ pSubUICombo->AddItem(SubUI.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ pSubUICombo->SelectItem(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存结果;
|
|
|
+ CString strCurChip = pChipCombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchip"), strCurChip, m_szRsCfgPath);
|
|
|
+
|
|
|
+ CString strCurStyle = pStyleCombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), strCurStyle, m_szRsCfgPath);
|
|
|
+
|
|
|
+ CString strSubStyle = pSubUICombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), strSubStyle, m_szRsCfgPath);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateComboProduct(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnComboUi()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
|
|
|
+ if (pStyleCombo)
|
|
|
+ {
|
|
|
+ CMFCRibbonComboBox* pChipCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_PRODUCT));
|
|
|
+ // UI下拉框;
|
|
|
+ CString curText = pChipCombo->GetEditText();
|
|
|
+ // SUBUI下拉框;
|
|
|
+ CString strUIName = pStyleCombo->GetEditText();
|
|
|
+ CMFCRibbonComboBox* pSubUICombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_SUBUI));
|
|
|
+ pSubUICombo->RemoveAllItems();
|
|
|
+ std::vector<UITree>& ui = m_map_tree.find(curText.GetString())->second;
|
|
|
+ for (std::vector<UITree>::iterator it = ui.begin(); it != ui.end(); it++)
|
|
|
+ {
|
|
|
+ if (_tcsicmp(strUIName.GetString(), it->ui.c_str()) == 0)
|
|
|
+ {
|
|
|
+ if (it->vtSubUI.size() == 0)
|
|
|
+ break;
|
|
|
+
|
|
|
+ for (auto SubUI : it->vtSubUI)
|
|
|
+ {
|
|
|
+ pSubUICombo->AddItem(SubUI.c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ pSubUICombo->SelectItem(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // UI下拉框;
|
|
|
+ CString strCurStyle = pStyleCombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), strCurStyle, m_szRsCfgPath);
|
|
|
+
|
|
|
+ CString strSubStyle = pSubUICombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), strSubStyle, m_szRsCfgPath);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateComboUi(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnComboSubUi()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pSubUICombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_SUBUI));
|
|
|
+ if (pSubUICombo)
|
|
|
+ {
|
|
|
+ // UI下拉框;
|
|
|
+ CString strSubStyle = pSubUICombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), strSubStyle, m_szRsCfgPath);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateComboSubUi(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnCombo1_22293()
|
|
|
+{
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pCombobx1 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO1_22293));
|
|
|
+
|
|
|
+ // 保存到配置文件中;
|
|
|
+ int nCurSel = pCombobx1->GetCurSel();
|
|
|
+ if (nCurSel != CB_ERR)
|
|
|
+ {
|
|
|
+ CString strChroma1 = pCombobx1->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("SATHelper"), _T("chroma1"), strChroma1, m_szRsCfgPath);
|
|
|
+
|
|
|
+ CDevice* pDev = g_dmap.find(1)->second;
|
|
|
+ int port = atoi(strChroma1.Right(1).GetString());
|
|
|
+ if (pDev->m_iPort != port)
|
|
|
+ {
|
|
|
+ pDev->m_iPort = port;
|
|
|
+ pDev->Close();
|
|
|
+ pDev->Open();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateCombo1_22293(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnCombo2_22293()
|
|
|
+{
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pCombobx2 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO2_22293));
|
|
|
+
|
|
|
+ // 保存到配置文件中;
|
|
|
+ int nCurSel = pCombobx2->GetCurSel();
|
|
|
+ if (nCurSel != CB_ERR)
|
|
|
+ {
|
|
|
+ CString strChroma2 = pCombobx2->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("SATHelper"), _T("chroma2"), strChroma2, m_szRsCfgPath);
|
|
|
+
|
|
|
+ CDevice* pDev = g_dmap.find(2)->second;
|
|
|
+ int port = atoi(strChroma2.Right(1).GetString());
|
|
|
+ if (pDev->m_iPort != port)
|
|
|
+ {
|
|
|
+ pDev->m_iPort = port;
|
|
|
+ pDev->Close();
|
|
|
+ pDev->Open();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateCombo2_22293(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CMainFrame::OnCheck1_22293()
|
|
|
+{
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonButton* pCheck1 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK1_22293));
|
|
|
+
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ if (g_dmap.find(1) != g_dmap.end())
|
|
|
+ {
|
|
|
+ if (pCheck1->IsChecked())
|
|
|
+ {
|
|
|
+ g_dmap.find(1)->second->Close();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ g_dmap.find(1)->second->Open();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateCheck1_22293(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+ if (g_dmap.find(1) != g_dmap.end())
|
|
|
+ pCmdUI->SetCheck(g_dmap.find(1)->second->IsOpen());
|
|
|
+ else
|
|
|
+ pCmdUI->SetCheck(FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnCheck2_22293()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonButton* pCheck2 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK2_22293));
|
|
|
+
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ if (g_dmap.find(2) != g_dmap.end())
|
|
|
+ {
|
|
|
+ if (pCheck2->IsChecked())
|
|
|
+ {
|
|
|
+ g_dmap.find(2)->second->Close();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ g_dmap.find(2)->second->Open();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMainFrame::OnUpdateCheck2_22293(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+ if (g_dmap.find(2) != g_dmap.end())
|
|
|
+ pCmdUI->SetCheck(g_dmap.find(2)->second->IsOpen());
|
|
|
+ else
|
|
|
+ pCmdUI->SetCheck(FALSE);
|
|
|
+}
|