|
@@ -5,6 +5,7 @@
|
|
|
#include "SATHelper.h"
|
|
|
#include "DeviceView.h"
|
|
|
#include "MainFrm.h"
|
|
|
+#include <filehelper.h>
|
|
|
extern CMainFrame* g_pMainFrame;
|
|
|
// CDeviceView
|
|
|
|
|
@@ -14,6 +15,8 @@ CDeviceView::CDeviceView()
|
|
|
: CFormView(DLG_DEVICEMANAGER)
|
|
|
{
|
|
|
ReadBaiduCfg(m_bdcfg);
|
|
|
+ ReadRsRunCfg(m_rscfg);
|
|
|
+ ReadTreePath();
|
|
|
}
|
|
|
|
|
|
CDeviceView::~CDeviceView()
|
|
@@ -36,6 +39,10 @@ BEGIN_MESSAGE_MAP(CDeviceView, CFormView)
|
|
|
ON_UPDATE_COMMAND_UI(ID_COMBOX_OCR, &CDeviceView::OnUpdateComboxOcr)
|
|
|
ON_UPDATE_COMMAND_UI(ID_COMBO_PRODUCT, &CDeviceView::OnUpdateComboProduct)
|
|
|
ON_UPDATE_COMMAND_UI(ID_COMBO_UI, &CDeviceView::OnUpdateComboUi)
|
|
|
+ ON_UPDATE_COMMAND_UI(BTN_DEF_SOUND, &CDeviceView::OnUpdateDefSound)
|
|
|
+ ON_COMMAND(BTN_DEF_SOUND, &CDeviceView::OnDefSound)
|
|
|
+ ON_COMMAND(ID_COMBO_PRODUCT, &CDeviceView::OnComboProduct)
|
|
|
+ ON_COMMAND(ID_COMBO_UI, &CDeviceView::OnComboUi)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
@@ -103,18 +110,139 @@ void CDeviceView::ReadBaiduCfg(BaiduCfg& bdcfg)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void CDeviceView::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;
|
|
|
+}
|
|
|
+
|
|
|
+void CDeviceView::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;
|
|
|
+ };
|
|
|
+
|
|
|
+ // 查找根目录下的目录;
|
|
|
+ filehelper fh;
|
|
|
+ STR_VEC vt_dir;
|
|
|
+ fh.getsubfolder(szRootDir, &vt_dir);
|
|
|
+ for (auto it : vt_dir )
|
|
|
+ {
|
|
|
+ STR_VEC vt_subdir;
|
|
|
+ fh.getsubfolder(it.c_str(), &vt_subdir);
|
|
|
+ m_map_tree.insert(std::pair<std::string, std::vector<std::string>>(_get_dir(it), vt_subdir));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 去除目录级;
|
|
|
+ for (std::map<std::string, std::vector<std::string>>::iterator it = m_map_tree.begin(); it != m_map_tree.end(); it++ )
|
|
|
+ {
|
|
|
+ for (std::vector<std::string>::iterator itd = it->second.begin(); itd != it->second.end(); itd++ )
|
|
|
+ {
|
|
|
+ *itd = _get_dir(*itd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void CDeviceView::OnInitialUpdate()
|
|
|
{
|
|
|
CFormView::OnInitialUpdate();
|
|
|
|
|
|
- // TODO: 在此添加专用代码和/或调用基类
|
|
|
+ // Ribbon Combobox添加默认项;
|
|
|
CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
ASSERT_VALID(pRibbon);
|
|
|
- CMFCRibbonComboBox* pSizeCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBOX_OCR));
|
|
|
- if ( pSizeCombo )
|
|
|
+ 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)
|
|
|
{
|
|
|
- pSizeCombo->AddItem("dfdfdfd");
|
|
|
- pSizeCombo->AddItem("dfdfdfd4444444");
|
|
|
+ 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.c_str());
|
|
|
+ }
|
|
|
+ pStyleCombo->SetEditText(m_rscfg.menutree_style.c_str());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -133,9 +261,18 @@ void CDeviceView::OnPaint()
|
|
|
|
|
|
CRect rc;
|
|
|
GetWindowRect(&rc);
|
|
|
- CImage mImage;
|
|
|
- if (mImage.Load(_T("bk.jpg")) == S_OK)
|
|
|
+ static CImage mImage;
|
|
|
+ static BOOL bLoad = FALSE;
|
|
|
+ if (!bLoad)
|
|
|
+ {
|
|
|
+ bLoad = mImage.Load(_T("bk.jpg")) == S_OK;
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
+ // 缩放到最小后再拉大,区域为Null;
|
|
|
+ if (rc.IsRectEmpty() || rc.IsRectNull())
|
|
|
+ return;
|
|
|
+ //...BUG,当出现滚动条时,绘制的内容出错;
|
|
|
//这里让图片绘制区域和窗口大小一致
|
|
|
mImage.Draw(GetDC()->GetSafeHdc(), CRect(0, 0, rc.Width(), rc.Height()));
|
|
|
}
|
|
@@ -160,6 +297,14 @@ HBRUSH CDeviceView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
|
void CDeviceView::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");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -172,12 +317,23 @@ void CDeviceView::OnHadSound()
|
|
|
void CDeviceView::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 CDeviceView::OnUpdateCheckFullCut(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
// TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+ pCmdUI->SetCheck(!_tcsicmp(m_rscfg.full_cut.c_str(), _T("True")));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -196,10 +352,67 @@ void CDeviceView::OnUpdateComboxOcr(CCmdUI* pCmdUI)
|
|
|
void CDeviceView::OnUpdateComboProduct(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
// TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
void CDeviceView::OnUpdateComboUi(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
// TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnUpdateDefSound(CCmdUI* pCmdUI)
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令更新用户界面处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnDefSound()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::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.c_str());
|
|
|
+ }
|
|
|
+ pStyleCombo->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);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnComboUi()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
+ ASSERT_VALID(pRibbon);
|
|
|
+ CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
|
|
|
+ if (pStyleCombo)
|
|
|
+ {
|
|
|
+ // UI下拉框;
|
|
|
+ CString strCurStyle = pStyleCombo->GetEditText();
|
|
|
+ WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), strCurStyle, m_szRsCfgPath);
|
|
|
+ }
|
|
|
}
|