123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481 |
- // CSynBoxDlg.cpp: 实现文件
- //
- #include "pch.h"
- #include "resource.h" // 主符号
- #include "CSynBoxDlg.h"
- #include "afxdialogex.h"
- #include "CConfigDlg.h"
- // CSynBoxDlg 对话框
- IMPLEMENT_DYNAMIC(CSynBoxDlg, CDiosBasicDlg)
- CSynBoxDlg::CSynBoxDlg(CWnd* pParent /*=nullptr*/)
- : CDiosBasicDlg(Dev_SynBox, IDD_DIALOG4, pParent)
- {
- }
- CSynBoxDlg::~CSynBoxDlg()
- {
- }
- void CSynBoxDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_EDIT1, m_Edit_expmode);
- DDX_Control(pDX, IDC_EDIT2, m_Edit_workstation);
- DDX_Control(pDX, IDC_EDIT3, m_Edit_gensynstate);
- DDX_Control(pDX, IDC_EDIT4, m_Edit_AECsignal);
- DDX_Control(pDX, IDC_EDIT5, m_Edit_FrameRate);
- DDX_Control(pDX, IDC_EDIT6, m_Edit_EXPTimes);
- }
- BEGIN_MESSAGE_MAP(CSynBoxDlg, CDialogEx)
- ON_BN_CLICKED(IDC_BUTTON3, &CSynBoxDlg::OnBnClickedButton3)
- ON_BN_CLICKED(IDC_BUTTON1, &CSynBoxDlg::OnBnClickedButton1)
- ON_BN_CLICKED(IDC_BUTTON2, &CSynBoxDlg::OnBnClickedButton2)
- ON_BN_CLICKED(IDC_BUTTON4, &CSynBoxDlg::OnBnClickedButton4)
- ON_BN_CLICKED(IDC_BUTTON5, &CSynBoxDlg::OnBnClickedButton5)
- ON_BN_CLICKED(IDC_BUTTON6, &CSynBoxDlg::OnBnClickedButton6)
- ON_BN_CLICKED(IDC_BUTTON7, &CSynBoxDlg::OnBnClickedButton7)
- ON_BN_CLICKED(IDC_BUTTON8, &CSynBoxDlg::OnBnClickedButton8)
- ON_BN_CLICKED(IDC_BUTTON9, &CSynBoxDlg::OnBnClickedButton9)
- ON_BN_CLICKED(IDC_BUTTON10, &CSynBoxDlg::OnBnClickedButton10)
- ON_BN_CLICKED(IDC_BUTTON11, &CSynBoxDlg::OnBnClickedButton11)
- ON_BN_CLICKED(IDC_BUTTON12, &CSynBoxDlg::OnBnClickedButton12)
- ON_BN_CLICKED(IDC_BUTTON13, &CSynBoxDlg::OnBnClickedButton13)
- ON_BN_CLICKED(IDC_BUTTON14, &CSynBoxDlg::OnBnClickedButton14)
- ON_BN_CLICKED(IDC_BUTTON15, &CSynBoxDlg::OnBnClickedButton15)
- ON_BN_CLICKED(IDC_BUTTON16, &CSynBoxDlg::OnBnClickedButton16)
- ON_BN_CLICKED(IDC_BUTTON17, &CSynBoxDlg::OnBnClickedButton17)
- ON_BN_CLICKED(IDC_BUTTON18, &CSynBoxDlg::OnBnClickedButton18)
- ON_BN_CLICKED(IDC_BUTTON19, &CSynBoxDlg::OnBnClickedButton19)
- ON_BN_CLICKED(IDC_BUTTON20, &CSynBoxDlg::OnBnClickedButton20)
- ON_BN_CLICKED(IDC_BUTTON21, &CSynBoxDlg::OnBnClickedButton21)
- ON_BN_CLICKED(IDC_BUTTON22, &CSynBoxDlg::OnBnClickedButton22)
- ON_EN_KILLFOCUS(IDC_EDIT1, &CSynBoxDlg::OnEnKillfocusEdit1)
- ON_EN_KILLFOCUS(IDC_EDIT2, &CSynBoxDlg::OnEnKillfocusEdit2)
- ON_EN_KILLFOCUS(IDC_EDIT3, &CSynBoxDlg::OnEnKillfocusEdit3)
- ON_EN_KILLFOCUS(IDC_EDIT4, &CSynBoxDlg::OnEnKillfocusEdit4)
- ON_EN_KILLFOCUS(IDC_EDIT5, &CSynBoxDlg::OnEnKillfocusEdit5)
- ON_EN_KILLFOCUS(IDC_EDIT6, &CSynBoxDlg::OnEnKillfocusEdit6)
- END_MESSAGE_MAP()
- // CSynBoxDlg 消息处理程序
- //初始化配置
- BOOL CSynBoxDlg::OnInitDialog()
- {
- CDiosBasicDlg::OnInitDialog();
- return TRUE;
- }
- //设备初始化
- bool CSynBoxDlg::AppInitial(bool act)
- {
- CString log;
- return CreatMode(act);
- }
- //获取初始值
- bool CSynBoxDlg::GetInitData()
- {
- CString log;
- CString tempStr;
- string strTempValue;
- if (m_pDevice != nullptr)
- {
- m_nWS = atoi(DevGetValue(nsSYN::AttrKey::WORKSTATION).c_str());
- tempStr.Format("%d", m_nWS);
- m_Edit_workstation.SetWindowText(tempStr);
- m_nExpMode = DevGetValue(nsSYN::AttrKey::EXPMODE).c_str();
- tempStr.Format("%s", m_nExpMode.c_str());
- m_Edit_expmode.SetWindowText(tempStr);
- m_nGenSynStatus = atoi(DevGetValue(nsSYN::AttrKey::DiosGeneratorSync).c_str());
- tempStr.Format("%d", m_nGenSynStatus);
- m_Edit_gensynstate.SetWindowText(tempStr);
- GetDlgItem(IDC_BUTTON9)->SetWindowText("ExpDisable");
- GetDlgItem(IDC_BUTTON12)->SetWindowText("stopWinReq");
- }
- return true;
- }
- //设置消息对照表
- void CSynBoxDlg::SetMagMap()
- {
- auto HW_UNKNOWN = [this](int NotifyCode, string key, string context)
- {
- CString strNotify;
- strNotify.Format("SYN can not deal with Attribute[%s] \n", key.c_str());
- ToolsDlgLog(strNotify);
- };
- auto HW_WORKSTATION = [this](int NotifyCode, string key, string context)//WORKSTATION
- {
- m_nWS = atoi(context.c_str());
- m_Edit_workstation.SetWindowText(context.c_str());
- };
- auto HW_GENSYNSTATE = [this](int NotifyCode, string key, string context)//GENSYNSTATE
- {
- m_nGenSynStatus = atoi(context.c_str());
- m_Edit_gensynstate.SetWindowText(context.c_str());
- };
- auto HW_EXPMODE = [this](int NotifyCode, string key, string context)//EXPMODE
- {
- m_nExpMode = context;
- m_Edit_expmode.SetWindowText(context.c_str());
- };
- //SYN Box
- m_mapFrame["UnKnown"] = tFrameMapItem(HW_UNKNOWN);
- m_mapFrame[nsSYN::AttrKey::WORKSTATION] = tFrameMapItem(HW_WORKSTATION);
- m_mapFrame[nsSYN::AttrKey::DiosGeneratorSync] = tFrameMapItem(HW_GENSYNSTATE);
- m_mapFrame[nsSYN::AttrKey::EXPMODE] = tFrameMapItem(HW_EXPMODE);
- }
- void CSynBoxDlg::InitPageElements(bool act)
- {
- if (act)
- {
- ShowPageElements(FALSE, TRUE, FALSE, FALSE);
- SetMagMap();
- GetInitData();
- }
- else
- {
- ShowPageElements(TRUE, FALSE, TRUE, FALSE);
- }
- }
- //设置窗口元素显示
- void CSynBoxDlg::ShowPageElements(bool init, bool exit, bool cfg, bool general)
- {
- __super::ShowPageElements(init, exit, cfg, general);
- bool temp = exit;
- //SetFrameRate
- GetDlgItem(IDC_BUTTON4)->EnableWindow(temp);
- GetDlgItem(IDC_EDIT5)->EnableWindow(temp);
- //SetExpMode
- GetDlgItem(IDC_BUTTON5)->EnableWindow(temp);
- GetDlgItem(IDC_EDIT1)->EnableWindow(temp);
- //SetWS
- GetDlgItem(IDC_BUTTON6)->EnableWindow(temp);
- GetDlgItem(IDC_EDIT2)->EnableWindow(temp);
- //SetGenSyn
- GetDlgItem(IDC_BUTTON7)->EnableWindow(temp);
- GetDlgItem(IDC_EDIT3)->EnableWindow(temp);
- //SetExpTimes
- GetDlgItem(IDC_BUTTON8)->EnableWindow(temp);
- GetDlgItem(IDC_EDIT6)->EnableWindow(temp);
- //SetExp
- GetDlgItem(IDC_BUTTON9)->EnableWindow(temp);
- //SetAECSignal
- GetDlgItem(IDC_BUTTON10)->EnableWindow(temp);
- GetDlgItem(IDC_EDIT4)->EnableWindow(temp);
- //PrepareAcq
- GetDlgItem(IDC_BUTTON11)->EnableWindow(temp);
- //StartWinReq or StopWinReq
- GetDlgItem(IDC_BUTTON12)->EnableWindow(temp);
- //Recv Signal
- GetDlgItem(IDC_BUTTON14)->EnableWindow(temp);
- }
- //选择配置
- void CSynBoxDlg::OnBnClickedButton3()
- {
- CString log;
- nsCFG::CConfigDlg dlgcfg(Dev_SynBox,
- m_strCfgLib,
- m_strCfgFile);
- dlgcfg.DoModal();
-
- if (m_strCfgFile.empty())
- {
- log.Format("(SYN)- SYN m_strCfgFile is empty");
- mLog::Warn(log);
- ToolsDlgLog(log);
- }
- else
- {
- ShowPageElements(TRUE, FALSE, TRUE, FALSE);
- }
- }
- //初始化
- void CSynBoxDlg::OnBnClickedButton1()
- {
- CString log;
- if (m_pDriver == nullptr)
- if (!m_pDevice)
- {
- if (AppInitial(true))
- {
- ShowPageElements(FALSE, TRUE, FALSE, FALSE);
- SetMagMap();
- GetInitData();
- mLog::Debug("(SYN)- SYN Initial success");
- }
- else
- {
- log.Format("(SYN)- SYN Initial fail");
- mLog::Error(log);
- ToolsDlgLog(log);
- }
- }
- else
- {
- log.Format("(SYN)- m_pDevice not empty");
- mLog::Warn(log);
- ToolsDlgLog(log);
- }
- else
- {
- log.Format("(SYN)- m_pDriver not empty");
- mLog::Warn(log);
- ToolsDlgLog(log);
- }
- }
- //退出
- void CSynBoxDlg::OnBnClickedButton2()
- {
- if (AppInitial(false))
- {
- ShowPageElements(TRUE, FALSE, TRUE, FALSE);
- }
- }
- //SetFrameRate
- void CSynBoxDlg::OnBnClickedButton4()
- {
- DevActionValue(nsSYN::ActionKey::SetFrameRate, { to_string(m_nFrameRate) });
- }
- //SetExpMode
- void CSynBoxDlg::OnBnClickedButton5()
- {
- char data[20]{ 0 };
- strncpy_s(data, m_nExpMode.c_str(), 19);
- DevActionValue(nsSYN::ActionKey::SetExpMode, { data });
- }
- //SetWS
- void CSynBoxDlg::OnBnClickedButton6()
- {
- DevActionValue(nsSYN::ActionKey::SetValue_WORKSTATION, { to_string(m_nWS) });
- }
- //SetGenSyn
- void CSynBoxDlg::OnBnClickedButton7()
- {
- DevActionValue(nsSYN::ActionKey::SetGeneratortoSyncStatus, { to_string(m_nGenSynStatus) });
- }
- //SetExpTimes
- void CSynBoxDlg::OnBnClickedButton8()
- {
- DevActionValue(nsSYN::ActionKey::SetExposureTimes, { to_string(m_nEXPTimes) });
- }
- //SetExp?
- void CSynBoxDlg::OnBnClickedButton9()
- {
- if (m_bExpEnable)
- {
- GetDlgItem(IDC_BUTTON9)->SetWindowText("ExpDisable");
- m_bExpEnable = false;
- DevAction(nsSYN::ActionKey::SetExpDisable);
- }
- else
- {
- m_bExpEnable = true;
- GetDlgItem(IDC_BUTTON9)->SetWindowText("ExpEnable");
- DevAction(nsSYN::ActionKey::SetExpEnable);
- }
- }
- //SetAECSignal
- void CSynBoxDlg::OnBnClickedButton10()
- {
- DevActionValue(nsSYN::ActionKey::SetGenAECSignal, { to_string(m_nAECSignal) });
- }
- //PrepareAcq
- void CSynBoxDlg::OnBnClickedButton11()
- {
- DevAction(nsSYN::ActionKey::PrepareAcquisition);
- }
- //StartWinReq or StopWinReq
- void CSynBoxDlg::OnBnClickedButton12()
- {
- if (m_bStartWinReq)
- {
- GetDlgItem(IDC_BUTTON12)->SetWindowText("StopWinReq");
- m_bStartWinReq = false;
- DevAction(nsSYN::ActionKey::StopWindowRequest);
- }
- else
- {
- m_bStartWinReq = true;
- GetDlgItem(IDC_BUTTON12)->SetWindowText("StartWinReq");
- DevAction(nsSYN::ActionKey::StartWindowRequest);
- }
- }
- //
- void CSynBoxDlg::OnBnClickedButton13()
- {
- // TODO: 在此添加控件通知处理程序代码
- }
- //Recv Signal
- void CSynBoxDlg::OnBnClickedButton14()
- {
- if (m_bDebugSignal)
- {
- m_bDebugSignal = false;
- DevActionValue("DebugSignal", { to_string(m_bDebugSignal) });
- }
- else
- {
- m_bDebugSignal = true;
- DevActionValue("DebugSignal", { to_string(m_bDebugSignal) });
- }
- GetDlgItem(IDC_BUTTON15)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT8)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON16)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT9)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON17)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT10)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON18)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT11)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON19)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT12)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON20)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT13)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON21)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT14)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_BUTTON22)->EnableWindow(m_bDebugSignal);
- GetDlgItem(IDC_EDIT15)->EnableWindow(m_bDebugSignal);
- }
- //SendSignal_1
- void CSynBoxDlg::OnBnClickedButton15()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT8)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_2
- void CSynBoxDlg::OnBnClickedButton16()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT9)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_3
- void CSynBoxDlg::OnBnClickedButton17()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT10)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_4
- void CSynBoxDlg::OnBnClickedButton18()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT11)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_5
- void CSynBoxDlg::OnBnClickedButton19()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT12)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_6
- void CSynBoxDlg::OnBnClickedButton20()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT13)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_7
- void CSynBoxDlg::OnBnClickedButton21()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT14)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //SendSignal_8
- void CSynBoxDlg::OnBnClickedButton22()
- {
- CString tempStr;
- GetDlgItem(IDC_EDIT15)->GetWindowText(tempStr);
- string param = tempStr.GetBuffer();
- DevActionValue("SendSignal", { param });
- }
- //ExpMode_Value
- void CSynBoxDlg::OnEnKillfocusEdit1()
- {
- CString tempStr;
- m_Edit_expmode.GetWindowText(tempStr);
- m_nExpMode = tempStr;
- }
- //WS_Value
- void CSynBoxDlg::OnEnKillfocusEdit2()
- {
- CString tempStr;
- m_Edit_workstation.GetWindowText(tempStr);
- m_nWS = atoi(tempStr);
- }
- //GenSyn_Value
- void CSynBoxDlg::OnEnKillfocusEdit3()
- {
- CString tempStr;
- m_Edit_gensynstate.GetWindowText(tempStr);
- m_nGenSynStatus = atoi(tempStr);
- }
- //AECSignal_Value
- void CSynBoxDlg::OnEnKillfocusEdit4()
- {
- CString tempStr;
- m_Edit_AECsignal.GetWindowText(tempStr);
- m_nAECSignal = atoi(tempStr);
- }
- //FrameRate_Value
- void CSynBoxDlg::OnEnKillfocusEdit5()
- {
- CString tempStr;
- m_Edit_FrameRate.GetWindowText(tempStr);
- m_nFrameRate = atoi(tempStr);
- }
- void CSynBoxDlg::OnEnKillfocusEdit6()
- {
- CString tempStr;
- m_Edit_EXPTimes.GetWindowText(tempStr);
- m_nEXPTimes = atoi(tempStr);
- }
|