|
@@ -26,11 +26,16 @@ CDeviceView::~CDeviceView()
|
|
|
void CDeviceView::DoDataExchange(CDataExchange* pDX)
|
|
|
{
|
|
|
CFormView::DoDataExchange(pDX);
|
|
|
+ DDX_Control(pDX, IDC_COMBO1, m_cb_chroma1);
|
|
|
+ DDX_Control(pDX, IDC_COMBO2, m_cb_chroma2);
|
|
|
+ DDX_Control(pDX, IDC_CHECK1, m_ck_chroma1);
|
|
|
+ DDX_Control(pDX, IDC_CHECK2, m_ck_chroma2);
|
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CDeviceView, CFormView)
|
|
|
ON_WM_PAINT()
|
|
|
ON_WM_CTLCOLOR()
|
|
|
+ ON_WM_DEVICECHANGE()
|
|
|
ON_COMMAND(ID_CHECK_FULL_CUT, &CDeviceView::OnCheckFullCut)
|
|
|
ON_COMMAND(BTN_HAD_SOUND, &CDeviceView::OnHadSound)
|
|
|
ON_COMMAND(ID_COMBOX_OCR, &CDeviceView::OnComboxOcr)
|
|
@@ -43,6 +48,12 @@ BEGIN_MESSAGE_MAP(CDeviceView, CFormView)
|
|
|
ON_COMMAND(BTN_DEF_SOUND, &CDeviceView::OnDefSound)
|
|
|
ON_COMMAND(ID_COMBO_PRODUCT, &CDeviceView::OnComboProduct)
|
|
|
ON_COMMAND(ID_COMBO_UI, &CDeviceView::OnComboUi)
|
|
|
+ ON_BN_CLICKED(IDC_BUTTON1, &CDeviceView::OnBnClickedButton1)
|
|
|
+ ON_BN_CLICKED(IDC_BUTTON2, &CDeviceView::OnBnClickedButton2)
|
|
|
+ ON_BN_CLICKED(IDC_CHECK1, &CDeviceView::OnBnClickedCheck1)
|
|
|
+ ON_BN_CLICKED(IDC_CHECK2, &CDeviceView::OnBnClickedCheck2)
|
|
|
+ ON_CBN_SELCHANGE(IDC_COMBO1, &CDeviceView::OnCbnSelchangeCombo1)
|
|
|
+ ON_CBN_SELCHANGE(IDC_COMBO2, &CDeviceView::OnCbnSelchangeCombo2)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
@@ -143,6 +154,14 @@ void CDeviceView::ReadRsRunCfg(RsRunCfg& rscfg)
|
|
|
|
|
|
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 CDeviceView::ReadTreePath()
|
|
@@ -183,10 +202,140 @@ void CDeviceView::ReadTreePath()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void CDeviceView::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 CDeviceView::RunDevice()
|
|
|
+{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CDeviceView::InitCombobox_port()
|
|
|
+{
|
|
|
+ CComboBox* pCommbox1 = ((CComboBox*)GetDlgItem(IDC_COMBO1));
|
|
|
+ CComboBox* pCommbox2 = ((CComboBox*)GetDlgItem(IDC_COMBO2));
|
|
|
+ for (std::vector<std::string>::iterator it = m_vtCOM.begin(); it != m_vtCOM.end(); it++)
|
|
|
+ {
|
|
|
+ if (!IsPortInserted(pCommbox1, it->c_str()))
|
|
|
+ pCommbox1->AddString(it->c_str());
|
|
|
+
|
|
|
+ if (!IsPortInserted(pCommbox2, it->c_str()))
|
|
|
+ pCommbox2->AddString(it->c_str());
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( m_rscfg.chroma1.size())
|
|
|
+ pCommbox1->SelectString(0, m_rscfg.chroma1.c_str());
|
|
|
+ if (m_rscfg.chroma2.size())
|
|
|
+ pCommbox2->SelectString(0, m_rscfg.chroma2.c_str());
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CDeviceView::IsPortInserted(CComboBox* pCommbox, LPCTSTR lpPort)
|
|
|
+{
|
|
|
+ BOOL bInserted = FALSE;
|
|
|
+ CString strCommPort = _T("");
|
|
|
+ int nCount = pCommbox->GetCount();
|
|
|
+ for (int i = 0; i < nCount; i++)
|
|
|
+ {
|
|
|
+ pCommbox->GetLBText(i, strCommPort);
|
|
|
+ if (strCommPort.CompareNoCase(lpPort) == 0)
|
|
|
+ {
|
|
|
+ bInserted = TRUE;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return bInserted;
|
|
|
+}
|
|
|
+
|
|
|
+//实现串口热插拔
|
|
|
+BOOL CDeviceView::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 CDeviceView::OnInitialUpdate()
|
|
|
{
|
|
|
CFormView::OnInitialUpdate();
|
|
|
|
|
|
+ ParseJson();
|
|
|
// Ribbon Combobox添加默认项;
|
|
|
CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
|
|
|
ASSERT_VALID(pRibbon);
|
|
@@ -244,6 +393,11 @@ void CDeviceView::OnInitialUpdate()
|
|
|
}
|
|
|
pStyleCombo->SetEditText(m_rscfg.menutree_style.c_str());
|
|
|
}
|
|
|
+
|
|
|
+ // 启动设备;
|
|
|
+ Global::GetSysSerialPort(m_vtCOM);
|
|
|
+ InitCombobox_port();
|
|
|
+ RunDevice();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -416,3 +570,39 @@ void CDeviceView::OnComboUi()
|
|
|
WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), strCurStyle, m_szRsCfgPath);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnBnClickedButton1()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnBnClickedButton2()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnBnClickedCheck1()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnBnClickedCheck2()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnCbnSelchangeCombo1()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void CDeviceView::OnCbnSelchangeCombo2()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+}
|