// CMechanicalDlg.cpp: 实现文件 // #include "pch.h" #include "resource.h" // 主符号 #include "CMechanicalDlg.h" #include "afxdialogex.h" #include "CConfigDlg.h" // CMechanicalDlg 对话框 IMPLEMENT_DYNAMIC(CMechanicalDlg, CDiosBasicDlg) CMechanicalDlg::CMechanicalDlg(CWnd* pParent /*=nullptr*/) : CDiosBasicDlg(Dev_Mechanical, IDD_DIALOG2, pParent) { } CMechanicalDlg::~CMechanicalDlg() { } void CMechanicalDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT1, m_Edit_GRID); DDX_Control(pDX, IDC_EDIT2, m_Edit_MechanicalHeight); DDX_Control(pDX, IDC_EDIT3, m_Edit_AE); DDX_Control(pDX, IDC_EDIT4, m_Edit_CompPressure); DDX_Control(pDX, IDC_EDIT5, m_Edit_Filter); DDX_Control(pDX, IDC_EDIT6, m_Edit_AGD); DDX_Control(pDX, IDC_EDIT7, m_Edit_Thickness); DDX_Control(pDX, IDC_EDIT8, m_Edit_MAG); DDX_Control(pDX, IDC_EDIT9, m_Edit_CompPressureDEC); DDX_Control(pDX, IDC_EDIT10, m_Edit_CompressPaddle); DDX_Control(pDX, IDC_EDIT11, m_Edit_Depress); DDX_Control(pDX, IDC_EDIT12, m_Edit_MechanicalAngle); DDX_Control(pDX, IDC_EDIT13, m_Edit_HomePos); DDX_Control(pDX, IDC_EDIT14, m_Edit_MoveDisAxis); DDX_Control(pDX, IDC_EDIT15, m_Edit_MoveDistance); DDX_Control(pDX, IDC_EDIT16, m_Edit_MovePosAxis); DDX_Control(pDX, IDC_EDIT17, m_Edit_MovePosNumber); DDX_Control(pDX, IDC_EDIT18, m_Edit_SetPosAxis); DDX_Control(pDX, IDC_EDIT19, m_Edit_SetPosX); DDX_Control(pDX, IDC_EDIT20, m_Edit_SetPosY); DDX_Control(pDX, IDC_EDIT21, m_Edit_SetPosZ); DDX_Control(pDX, IDC_EDIT22, m_Edit_SetPosR); DDX_Control(pDX, IDC_EDIT23, m_Edit_TomoEnable); DDX_Control(pDX, IDC_EDIT24, m_Edit_TomoPosNum); DDX_Control(pDX, IDC_EDIT25, m_Edit_TomoAngle); DDX_Control(pDX, IDC_EDIT26, m_Edit_TomoFrameTotal); DDX_Control(pDX, IDC_EDIT27, m_Edit_TomoFrameRate); DDX_Control(pDX, IDC_EDIT28, m_Edit_TomoPosX); DDX_Control(pDX, IDC_EDIT29, m_Edit_TomoPosY); DDX_Control(pDX, IDC_EDIT30, m_Edit_TomoPosZ); DDX_Control(pDX, IDC_EDIT31, m_Edit_TomoPosR); DDX_Control(pDX, IDC_EDIT32, m_Edit_TomoHandSwitchState); DDX_Control(pDX, IDC_EDIT33, m_Edit_ProjectionNumber); DDX_Control(pDX, IDC_EDIT34, m_Edit_TomoScanAngle); DDX_Control(pDX, IDC_EDIT35, m_Edit_StitchInitHeight); DDX_Control(pDX, IDC_EDIT36, m_Edit_StitchTotalLength); DDX_Control(pDX, IDC_EDIT37, m_Edit_StitchOverlap); DDX_Control(pDX, IDC_EDIT38, m_Edit_StitchSID); DDX_Control(pDX, IDC_EDIT39, m_Edit_StitchTID); DDX_Control(pDX, IDC_EDIT40, m_Edit_StitchDirection); DDX_Control(pDX, IDC_EDIT41, m_Edit_StitchType); DDX_Control(pDX, IDC_EDIT42, m_Edit_StitchStatus); DDX_Control(pDX, IDC_EDIT43, m_Edit_StitchCurrentImage); DDX_Control(pDX, IDC_EDIT44, m_Edit_StitchTotalImage); DDX_Control(pDX, IDC_EDIT45, m_Edit_StitchInfo); } BEGIN_MESSAGE_MAP(CMechanicalDlg, CDialogEx) ON_BN_CLICKED(IDOK, &CMechanicalDlg::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &CMechanicalDlg::OnBnClickedCancel) ON_BN_CLICKED(IDC_BUTTON1, &CMechanicalDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CMechanicalDlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3, &CMechanicalDlg::OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON4, &CMechanicalDlg::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5, &CMechanicalDlg::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON6, &CMechanicalDlg::OnBnClickedButton6) ON_BN_CLICKED(IDC_BUTTON7, &CMechanicalDlg::OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON8, &CMechanicalDlg::OnBnClickedButton8) ON_BN_CLICKED(IDC_BUTTON9, &CMechanicalDlg::OnBnClickedButton9) ON_BN_CLICKED(IDC_BUTTON10, &CMechanicalDlg::OnBnClickedButton10) ON_BN_CLICKED(IDC_BUTTON11, &CMechanicalDlg::OnBnClickedButton11) ON_BN_CLICKED(IDC_BUTTON12, &CMechanicalDlg::OnBnClickedButton12) ON_BN_CLICKED(IDC_BUTTON13, &CMechanicalDlg::OnBnClickedButton13) ON_BN_CLICKED(IDC_BUTTON14, &CMechanicalDlg::OnBnClickedButton14) ON_BN_CLICKED(IDC_BUTTON15, &CMechanicalDlg::OnBnClickedButton15) ON_BN_CLICKED(IDC_BUTTON16, &CMechanicalDlg::OnBnClickedButton16) ON_BN_CLICKED(IDC_BUTTON17, &CMechanicalDlg::OnBnClickedButton17) ON_BN_CLICKED(IDC_BUTTON18, &CMechanicalDlg::OnBnClickedButton18) ON_BN_CLICKED(IDC_BUTTON19, &CMechanicalDlg::OnBnClickedButton19) ON_BN_CLICKED(IDC_BUTTON20, &CMechanicalDlg::OnBnClickedButton20) ON_BN_CLICKED(IDC_BUTTON21, &CMechanicalDlg::OnBnClickedButton21) ON_BN_CLICKED(IDC_BUTTON22, &CMechanicalDlg::OnBnClickedButton22) ON_BN_CLICKED(IDC_BUTTON23, &CMechanicalDlg::OnBnClickedButton23) ON_BN_CLICKED(IDC_BUTTON24, &CMechanicalDlg::OnBnClickedButton24) ON_BN_CLICKED(IDC_BUTTON25, &CMechanicalDlg::OnBnClickedButton25) ON_BN_CLICKED(IDC_BUTTON26, &CMechanicalDlg::OnBnClickedButton26) ON_BN_CLICKED(IDC_BUTTON27, &CMechanicalDlg::OnBnClickedButton27) ON_BN_CLICKED(IDC_BUTTON28, &CMechanicalDlg::OnBnClickedButton28) ON_BN_CLICKED(IDC_BUTTON29, &CMechanicalDlg::OnBnClickedButton29) ON_BN_CLICKED(IDC_BUTTON30, &CMechanicalDlg::OnBnClickedButton30) ON_BN_CLICKED(IDC_BUTTON31, &CMechanicalDlg::OnBnClickedButton31) ON_BN_CLICKED(IDC_BUTTON32, &CMechanicalDlg::OnBnClickedButton32) ON_BN_CLICKED(IDC_BUTTON33, &CMechanicalDlg::OnBnClickedButton33) ON_BN_CLICKED(IDC_BUTTON34, &CMechanicalDlg::OnBnClickedButton34) ON_BN_CLICKED(IDC_BUTTON35, &CMechanicalDlg::OnBnClickedButton35) ON_EN_KILLFOCUS(IDC_EDIT1, &CMechanicalDlg::OnEnKillfocusEdit1) ON_EN_KILLFOCUS(IDC_EDIT5, &CMechanicalDlg::OnEnKillfocusEdit5) ON_EN_KILLFOCUS(IDC_EDIT11, &CMechanicalDlg::OnEnKillfocusEdit11) ON_EN_KILLFOCUS(IDC_EDIT13, &CMechanicalDlg::OnEnKillfocusEdit13) ON_EN_KILLFOCUS(IDC_EDIT14, &CMechanicalDlg::OnEnKillfocusEdit14) ON_EN_KILLFOCUS(IDC_EDIT15, &CMechanicalDlg::OnEnKillfocusEdit15) ON_EN_KILLFOCUS(IDC_EDIT16, &CMechanicalDlg::OnEnKillfocusEdit16) ON_EN_KILLFOCUS(IDC_EDIT17, &CMechanicalDlg::OnEnKillfocusEdit17) ON_EN_KILLFOCUS(IDC_EDIT18, &CMechanicalDlg::OnEnKillfocusEdit18) ON_EN_KILLFOCUS(IDC_EDIT19, &CMechanicalDlg::OnEnKillfocusEdit19) ON_EN_KILLFOCUS(IDC_EDIT20, &CMechanicalDlg::OnEnKillfocusEdit20) ON_EN_KILLFOCUS(IDC_EDIT21, &CMechanicalDlg::OnEnKillfocusEdit21) ON_EN_KILLFOCUS(IDC_EDIT22, &CMechanicalDlg::OnEnKillfocusEdit22) ON_EN_KILLFOCUS(IDC_EDIT23, &CMechanicalDlg::OnEnKillfocusEdit23) ON_EN_KILLFOCUS(IDC_EDIT24, &CMechanicalDlg::OnEnKillfocusEdit24) ON_EN_KILLFOCUS(IDC_EDIT25, &CMechanicalDlg::OnEnKillfocusEdit25) ON_EN_KILLFOCUS(IDC_EDIT26, &CMechanicalDlg::OnEnKillfocusEdit26) ON_EN_KILLFOCUS(IDC_EDIT27, &CMechanicalDlg::OnEnKillfocusEdit27) ON_EN_KILLFOCUS(IDC_EDIT35, &CMechanicalDlg::OnEnKillfocusEdit35) ON_EN_KILLFOCUS(IDC_EDIT36, &CMechanicalDlg::OnEnKillfocusEdit36) ON_EN_KILLFOCUS(IDC_EDIT37, &CMechanicalDlg::OnEnKillfocusEdit37) ON_EN_KILLFOCUS(IDC_EDIT38, &CMechanicalDlg::OnEnKillfocusEdit38) ON_EN_KILLFOCUS(IDC_EDIT39, &CMechanicalDlg::OnEnKillfocusEdit39) ON_EN_KILLFOCUS(IDC_EDIT40, &CMechanicalDlg::OnEnKillfocusEdit40) ON_EN_KILLFOCUS(IDC_EDIT41, &CMechanicalDlg::OnEnKillfocusEdit41) //启用滚动条 ON_WM_MOUSEWHEEL() ON_WM_VSCROLL() //ON_WM_HSCROLL() END_MESSAGE_MAP() // CMechanicalDlg 消息处理程序 //初始化配置 BOOL CMechanicalDlg::OnInitDialog() { CDiosBasicDlg::OnInitDialog(); return TRUE; } //设备初始化 bool CMechanicalDlg::AppInitial(bool act) { CString log; return CreatMode(act); } //获取初始值 bool CMechanicalDlg::GetInitData() { CString log; CString tempStr; string strTempValue; if (m_pDevice != nullptr) { m_nGRID = atoi(DevGetValue(nsMECH::AttrKey::GRIDSTATE).c_str()); tempStr.Format("%d", m_nGRID); m_Edit_GRID.SetWindowText(tempStr); int AE = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_AE).c_str()); tempStr.Format("%d", AE); m_Edit_AE.SetWindowText(tempStr); m_nFilter = atoi(DevGetValue(nsMECH::AttrKey::FILTER).c_str()); tempStr.Format("%d", m_nFilter); m_Edit_Filter.SetWindowText(tempStr); int Thickness = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_THICKNESS).c_str()); tempStr.Format("%d", Thickness); m_Edit_Thickness.SetWindowText(tempStr); int CompPressureDEC = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_CompPressureDEC).c_str()); tempStr.Format("%d", CompPressureDEC); m_Edit_CompPressureDEC.SetWindowText(tempStr); m_bAutoTrackingFlag = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_DEPRESS).c_str()); tempStr.Format("%d", m_bAutoTrackingFlag); m_Edit_Depress.SetWindowText(tempStr); int MechanicalHeight = atoi(DevGetValue(nsMECH::AttrKey::TUBEHEIGHT).c_str()); tempStr.Format("%d", MechanicalHeight); m_Edit_MechanicalHeight.SetWindowText(tempStr); int CompPressure = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_PRESSVAL).c_str()); tempStr.Format("%d", CompPressure); m_Edit_CompPressure.SetWindowText(tempStr); int MechanicalAngle = atoi(DevGetValue(nsMECH::AttrKey::TUBEANGLE).c_str()); tempStr.Format("%d", MechanicalAngle); m_Edit_MechanicalAngle.SetWindowText(tempStr); int MAG = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_MAG).c_str()); tempStr.Format("%d", MAG); m_Edit_MAG.SetWindowText(tempStr); CString CompressPaddle = DevGetValue("CompressPaddle").c_str(); tempStr = CompressPaddle; m_Edit_CompressPaddle.SetWindowText(tempStr); int AGD = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_AGD).c_str()); tempStr.Format("%d", AGD); m_Edit_AGD.SetWindowText(tempStr); GetDlgItem(IDC_BUTTON16)->SetWindowText("AutoTracking?"); } return true; } //设置消息对照表 void CMechanicalDlg::SetMagMap() { auto HW_UNKNOWN = [this](int NotifyCode, string key, string context) { CString strNotify; strNotify.Format("MECH can not deal with Attribute[%s] \n", key.c_str()); ToolsDlgLog(strNotify); }; auto HW_GRID = [this](int NotifyCode, string key, string context)//GRID { m_Edit_GRID.SetWindowText(context.c_str()); }; auto HW_AE = [this](int NotifyCode, string key, string context)//AE { m_Edit_AE.SetWindowText(context.c_str()); }; auto HW_MechanicalFilter = [this](int NotifyCode, string key, string context)//Filter { m_Edit_Filter.SetWindowText(context.c_str()); }; auto HW_Thickness = [this](int NotifyCode, string key, string context)//Thickness { m_Edit_Thickness.SetWindowText(context.c_str()); }; auto HW_CompPressureDEC = [this](int NotifyCode, string key, string context)//CompPressureDEC { m_Edit_CompPressureDEC.SetWindowText(context.c_str()); }; auto HW_Depress = [this](int NotifyCode, string key, string context)//Depress { m_Edit_Depress.SetWindowText(context.c_str()); }; auto HW_MechanicalAngle = [this](int NotifyCode, string key, string context)//MechanicalAngle { m_Edit_MechanicalAngle.SetWindowText(context.c_str()); }; auto HW_MechanicalHeight = [this](int NotifyCode, string key, string context)//MechanicalHeight { m_Edit_MechanicalHeight.SetWindowText(context.c_str()); }; auto HW_CompPressure = [this](int NotifyCode, string key, string context)//CompPressure { m_Edit_CompPressure.SetWindowText(context.c_str()); }; auto HW_AGD = [this](int NotifyCode, string key, string context)//AGD { m_Edit_AGD.SetWindowText(context.c_str()); }; auto HW_MAG = [this](int NotifyCode, string key, string context)//MAG { m_Edit_MAG.SetWindowText(context.c_str()); }; auto HW_CompressPaddle = [this](int NotifyCode, string key, string context)//CompressPaddle { m_Edit_CompressPaddle.SetWindowText(context.c_str()); }; auto HW_PosX = [this](int NotifyCode, string key, string context)//tomo机架位置坐标X { m_Edit_TomoPosX.SetWindowText(context.c_str()); }; auto HW_PosY = [this](int NotifyCode, string key, string context)//tomo机架位置坐标Y { m_Edit_TomoPosY.SetWindowText(context.c_str()); }; auto HW_PosZ = [this](int NotifyCode, string key, string context)//tomo机架位置坐标Z { m_Edit_TomoPosZ.SetWindowText(context.c_str()); }; auto HW_PosR = [this](int NotifyCode, string key, string context)//tomo机架位置坐标R { m_Edit_TomoPosR.SetWindowText(context.c_str()); }; auto HW_StatusX = [this](int NotifyCode, string key, string context)//tomo机架坐标X轴状态 { bool dm = atoi(context.c_str()); GetDlgItem(IDC_EDIT28)->EnableWindow(dm); }; auto HW_StatusY = [this](int NotifyCode, string key, string context)//tomo机架坐标Y轴状态 { bool dm = atoi(context.c_str()); GetDlgItem(IDC_EDIT29)->EnableWindow(dm); }; auto HW_StatusZ = [this](int NotifyCode, string key, string context)//tomo机架坐标Z轴状态 { bool dm = atoi(context.c_str()); GetDlgItem(IDC_EDIT30)->EnableWindow(dm); }; auto HW_StatusR = [this](int NotifyCode, string key, string context)//tomo机架坐标R轴状态 { bool dm = atoi(context.c_str()); GetDlgItem(IDC_EDIT31)->EnableWindow(dm); }; auto HW_HandSwitchState = [this](int NotifyCode, string key, string context)//tomo机架手闸状态 { m_Edit_TomoHandSwitchState.SetWindowText(context.c_str()); }; auto HW_ProjectionNumber = [this](int NotifyCode, string key, string context)//tomo机架曝光序号 { m_Edit_ProjectionNumber.SetWindowText(context.c_str()); }; auto HW_ScanAngle = [this](int NotifyCode, string key, string context)//tomo机架曝光位置角度 { m_Edit_TomoScanAngle.SetWindowText(context.c_str()); }; auto HW_StitchStatus = [this](int NotifyCode, string key, string context)//拼接机架状态 { m_Edit_StitchStatus.SetWindowText(context.c_str()); }; auto HW_StitchCurrentImage = [this](int NotifyCode, string key, string context)//拼接机架当前图像号 { m_Edit_StitchCurrentImage.SetWindowText(context.c_str()); }; auto HW_StitchTotalImage = [this](int NotifyCode, string key, string context)//拼接机架总图像数 { m_Edit_StitchTotalImage.SetWindowText(context.c_str()); }; auto HW_StitchInfo = [this](int NotifyCode, string key, string context)//拼接机架运动信息 { m_Edit_StitchInfo.SetWindowText(context.c_str()); }; auto HW_ErrorList = [this](int NotifyCode, string key, string context)//ErrorList { ResDataObject json; json.decode(context.c_str()); CString log; string code = (string)json["CodeID"]; string value = (string)json["Resouceinfo"]; mLog::Info("Mech_ErrorList: CodeID[{$}], Resouceinfo[{$}]", code.c_str(), value.c_str()); log.Format("%s:%s", code.c_str(), value.c_str()); ToolsDlgLog(log); }; //Mechanical m_mapFrame["UnKnown"] = tFrameMapItem(HW_UNKNOWN); m_mapFrame[nsMECH::AttrKey::GRIDSTATE] = tFrameMapItem(HW_GRID); m_mapFrame[nsMECH::AttrKey::MAMMO_AE] = tFrameMapItem(HW_AE); m_mapFrame[nsMECH::AttrKey::FILTER] = tFrameMapItem(HW_MechanicalFilter); m_mapFrame[nsMECH::AttrKey::MAMMO_THICKNESS] = tFrameMapItem(HW_Thickness); m_mapFrame[nsMECH::AttrKey::MAMMO_CompPressureDEC] = tFrameMapItem(HW_CompPressureDEC); m_mapFrame[nsMECH::AttrKey::MAMMO_DEPRESS] = tFrameMapItem(HW_Depress); m_mapFrame[nsMECH::AttrKey::TUBEANGLE] = tFrameMapItem(HW_MechanicalAngle); m_mapFrame[nsMECH::AttrKey::TUBEHEIGHT] = tFrameMapItem(HW_MechanicalHeight); m_mapFrame[nsMECH::AttrKey::MAMMO_PRESSVAL] = tFrameMapItem(HW_CompPressure); m_mapFrame[nsMECH::AttrKey::MAMMO_AGD] = tFrameMapItem(HW_AGD); m_mapFrame[nsMECH::AttrKey::MAMMO_MAG] = tFrameMapItem(HW_MAG); m_mapFrame[nsMECH::AttrKey::MAMMO_CompressPaddle] = tFrameMapItem(HW_CompressPaddle); m_mapFrame["PosX"] = tFrameMapItem(HW_PosX); m_mapFrame["PosY"] = tFrameMapItem(HW_PosY); m_mapFrame["PosZ"] = tFrameMapItem(HW_PosZ); m_mapFrame["PosR"] = tFrameMapItem(HW_PosR); m_mapFrame["StatusX"] = tFrameMapItem(HW_StatusX); m_mapFrame["StatusY"] = tFrameMapItem(HW_StatusY); m_mapFrame["StatusZ"] = tFrameMapItem(HW_StatusZ); m_mapFrame["StatusR"] = tFrameMapItem(HW_StatusR); m_mapFrame["HandSwitchState"] = tFrameMapItem(HW_HandSwitchState); m_mapFrame[nsMECH::AttrKey::TomoScanImageNumber] = tFrameMapItem(HW_ProjectionNumber); m_mapFrame[nsMECH::AttrKey::TomoScanAngle] = tFrameMapItem(HW_ScanAngle); m_mapFrame[nsMECH::AttrKey::STITCHINGSTATE] = tFrameMapItem(HW_StitchStatus); m_mapFrame[nsMECH::AttrKey::CURRENTIMAGENUMBER] = tFrameMapItem(HW_StitchCurrentImage); m_mapFrame[nsMECH::AttrKey::TOTALIMAGECOUNT] = tFrameMapItem(HW_StitchTotalImage); m_mapFrame[nsMECH::AttrKey::UNITINFO] = tFrameMapItem(HW_StitchInfo); m_mapFrame[UnitTool_DevErrorList] = tFrameMapItem(HW_ErrorList); } void CMechanicalDlg::InitPageElements(bool act) { if (act) { ShowPageElements(FALSE, TRUE, FALSE, FALSE); SetMagMap(); GetInitData(); } else { ShowPageElements(TRUE, FALSE, TRUE, FALSE); } } //设置窗口元素显示 void CMechanicalDlg::ShowPageElements(bool init, bool exit, bool cfg, bool general) { __super::ShowPageElements(init, exit, cfg, general); bool dm = exit; //GRID GetDlgItem(IDC_BUTTON4)->EnableWindow(dm); GetDlgItem(IDC_EDIT1)->EnableWindow(dm); //MechHeight GetDlgItem(IDC_BUTTON5)->EnableWindow(general); GetDlgItem(IDC_EDIT2)->EnableWindow(general); //AE GetDlgItem(IDC_BUTTON6)->EnableWindow(general); GetDlgItem(IDC_EDIT3)->EnableWindow(general); //CompPressure GetDlgItem(IDC_BUTTON7)->EnableWindow(general); GetDlgItem(IDC_EDIT4)->EnableWindow(general); //Filter GetDlgItem(IDC_BUTTON8)->EnableWindow(dm); GetDlgItem(IDC_EDIT5)->EnableWindow(dm); //GlandDose GetDlgItem(IDC_BUTTON9)->EnableWindow(general); GetDlgItem(IDC_EDIT6)->EnableWindow(general); //Thickness GetDlgItem(IDC_BUTTON10)->EnableWindow(general); GetDlgItem(IDC_EDIT7)->EnableWindow(general); //Magnification GetDlgItem(IDC_BUTTON11)->EnableWindow(general); GetDlgItem(IDC_EDIT8)->EnableWindow(general); //PressureDEC GetDlgItem(IDC_BUTTON12)->EnableWindow(general); GetDlgItem(IDC_EDIT9)->EnableWindow(general); //Description GetDlgItem(IDC_BUTTON13)->EnableWindow(general); GetDlgItem(IDC_EDIT10)->EnableWindow(general); //Depress GetDlgItem(IDC_BUTTON14)->EnableWindow(dm); GetDlgItem(IDC_EDIT11)->EnableWindow(dm); //MechAngle GetDlgItem(IDC_BUTTON15)->EnableWindow(general); GetDlgItem(IDC_EDIT12)->EnableWindow(general); //to Home GetDlgItem(IDC_BUTTON17)->EnableWindow(dm); GetDlgItem(IDC_EDIT13)->EnableWindow(dm); //Stop All GetDlgItem(IDC_BUTTON18)->EnableWindow(dm); //Move distance GetDlgItem(IDC_BUTTON19)->EnableWindow(dm); GetDlgItem(IDC_EDIT14)->EnableWindow(dm); GetDlgItem(IDC_EDIT15)->EnableWindow(dm); //Move posNom GetDlgItem(IDC_BUTTON20)->EnableWindow(dm); GetDlgItem(IDC_EDIT16)->EnableWindow(dm); GetDlgItem(IDC_EDIT17)->EnableWindow(dm); //Set posNom GetDlgItem(IDC_BUTTON21)->EnableWindow(dm); GetDlgItem(IDC_EDIT18)->EnableWindow(dm); GetDlgItem(IDC_EDIT19)->EnableWindow(dm); GetDlgItem(IDC_EDIT20)->EnableWindow(dm); GetDlgItem(IDC_EDIT21)->EnableWindow(dm); GetDlgItem(IDC_EDIT22)->EnableWindow(dm); //Tomo Enable GetDlgItem(IDC_BUTTON22)->EnableWindow(dm); GetDlgItem(IDC_EDIT23)->EnableWindow(dm); //MechTomo ModeAngle GetDlgItem(IDC_BUTTON23)->EnableWindow(dm); GetDlgItem(IDC_EDIT24)->EnableWindow(dm); GetDlgItem(IDC_EDIT25)->EnableWindow(dm); GetDlgItem(IDC_EDIT26)->EnableWindow(dm); GetDlgItem(IDC_EDIT27)->EnableWindow(dm); //Get Pos GetDlgItem(IDC_BUTTON24)->EnableWindow(dm); //曝光状态 GetDlgItem(IDC_EDIT32)->EnableWindow(dm); GetDlgItem(IDC_EDIT33)->EnableWindow(dm); GetDlgItem(IDC_EDIT34)->EnableWindow(dm); //stitching action GetDlgItem(IDC_BUTTON25)->EnableWindow(dm); GetDlgItem(IDC_BUTTON26)->EnableWindow(dm); GetDlgItem(IDC_BUTTON27)->EnableWindow(dm); GetDlgItem(IDC_EDIT35)->EnableWindow(dm); GetDlgItem(IDC_EDIT36)->EnableWindow(dm); GetDlgItem(IDC_EDIT37)->EnableWindow(dm); GetDlgItem(IDC_EDIT38)->EnableWindow(dm); GetDlgItem(IDC_EDIT39)->EnableWindow(dm); GetDlgItem(IDC_EDIT40)->EnableWindow(dm); GetDlgItem(IDC_EDIT41)->EnableWindow(dm); GetDlgItem(IDC_BUTTON28)->EnableWindow(dm); GetDlgItem(IDC_BUTTON29)->EnableWindow(dm); GetDlgItem(IDC_BUTTON30)->EnableWindow(dm); GetDlgItem(IDC_BUTTON31)->EnableWindow(dm); GetDlgItem(IDC_BUTTON33)->EnableWindow(dm); //stitching attribute GetDlgItem(IDC_BUTTON32)->EnableWindow(dm); GetDlgItem(IDC_EDIT42)->EnableWindow(dm); GetDlgItem(IDC_EDIT43)->EnableWindow(dm); GetDlgItem(IDC_EDIT44)->EnableWindow(dm); //InitStitching GetDlgItem(IDC_BUTTON34)->EnableWindow(dm); //PositionNumber GetDlgItem(IDC_BUTTON35)->EnableWindow(dm); GetDlgItem(IDC_EDIT46)->EnableWindow(dm); } //设置悬停提示 void CMechanicalDlg::SetToolTipsMsgMap() { m_Ttc.AddTool(GetDlgItem(IDC_BUTTON14), _T("AutoTracking")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT13), _T("Home Position Number")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT14), _T("Axis Number")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT15), _T("distance")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT16), _T("Axis Number")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT17), _T("Position Number")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT18), _T("Position Number")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT19), _T("Position X")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT20), _T("Position Y")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT21), _T("Position Z")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT22), _T("Position R")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT24), _T("Tomo Number")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT25), _T("Tomo Angle")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT26), _T("Total Frame Count")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT27), _T("FrameRate")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT35), _T("Init Height")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT36), _T("Stitch Length")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT37), _T("Overlap")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT38), _T("SID")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT39), _T("PID")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT40), _T("Direction")); m_Ttc.AddTool(GetDlgItem(IDC_EDIT41), _T("Stitch Type")); } void CMechanicalDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnOK(); } void CMechanicalDlg::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnCancel(); } //初始化 void CMechanicalDlg::OnBnClickedButton1() { CString log; if (m_pDriver == nullptr) if (!m_pDevice) { if (AppInitial(true)) { ShowPageElements(FALSE, TRUE, FALSE, FALSE); SetMagMap(); GetInitData(); mLog::Debug("(MECH)- MECH Initial success"); } else { log.Format("(MECH)- MECH Initial fail"); mLog::Error(log); ToolsDlgLog(log); } } else { log.Format("(MECH)- m_pDevice not empty"); mLog::Warn(log); ToolsDlgLog(log); } else { log.Format("(MECH)- m_pDriver not empty"); mLog::Warn(log); ToolsDlgLog(log); } } //退出 void CMechanicalDlg::OnBnClickedButton2() { if (AppInitial(false)) { ShowPageElements(TRUE, FALSE, TRUE, FALSE); } } //选择配置 void CMechanicalDlg::OnBnClickedButton3() { CString log; nsCFG::CConfigDlg dlgcfg(Dev_Mechanical, m_strCfgLib, m_strCfgFile); dlgcfg.DoModal(); if (m_strCfgFile.empty()) { log.Format("(MECH)- MECH m_strCfgFile is empty"); mLog::Warn(log); ToolsDlgLog(log); } else { ShowPageElements(TRUE, FALSE, TRUE, FALSE); } } //GRID void CMechanicalDlg::OnBnClickedButton4() { DevActionValue("SetGrid", { to_string(m_nGRID) }); } //MechHeight void CMechanicalDlg::OnBnClickedButton5() { // TODO: 在此添加控件通知处理程序代码 } //AE void CMechanicalDlg::OnBnClickedButton6() { // TODO: 在此添加控件通知处理程序代码 } //CompPressure void CMechanicalDlg::OnBnClickedButton7() { // TODO: 在此添加控件通知处理程序代码 } //Filter void CMechanicalDlg::OnBnClickedButton8() { DevActionValue("SetFilter", { to_string(m_nFilter) }); } //GlandDose void CMechanicalDlg::OnBnClickedButton9() { // TODO: 在此添加控件通知处理程序代码 } //Thickness void CMechanicalDlg::OnBnClickedButton10() { // TODO: 在此添加控件通知处理程序代码 } //Magnification void CMechanicalDlg::OnBnClickedButton11() { // TODO: 在此添加控件通知处理程序代码 } //PressureDEC void CMechanicalDlg::OnBnClickedButton12() { // TODO: 在此添加控件通知处理程序代码 } //Description void CMechanicalDlg::OnBnClickedButton13() { // TODO: 在此添加控件通知处理程序代码 } //Depress void CMechanicalDlg::OnBnClickedButton14() { if (m_bAutoTrackingFlag) { DevActionValue(nsMECH::ActionKey::SetAutoTracking, { to_string(false) }); } else { DevActionValue(nsMECH::ActionKey::SetAutoTracking, { to_string(true) }); } } //MechAngle void CMechanicalDlg::OnBnClickedButton15() { // TODO: 在此添加控件通知处理程序代码 } // void CMechanicalDlg::OnBnClickedButton16() { } //3D DR //to Home void CMechanicalDlg::OnBnClickedButton17() { char data[20]{ 0 }; sprintf_s(data, "%d", m_nHomePos); DevActionValue(nsMECH::ActionKey::MoveToHome, { data }); } //Stop All void CMechanicalDlg::OnBnClickedButton18() { DevAction("StopAllAxis"); } //Move distance void CMechanicalDlg::OnBnClickedButton19() { DevActionValue("MoveToRelativeDistance", { to_string(m_nMoveDisAxis),to_string(m_nMoveDistance) }); } //Move posNom void CMechanicalDlg::OnBnClickedButton20() { DevActionValue("MoveToPositionNumber", { to_string(m_nMovePosAxis),to_string(m_nMovePosNumber) }); } //Set posNom void CMechanicalDlg::OnBnClickedButton21() { DevActionValue("SetAxisPosition", { to_string(m_nSetPosAxis),to_string(m_nSetPosX),to_string(m_nSetPosY),to_string(m_nSetPosZ),to_string(m_nSetPosR) }); } //Tomo Enable void CMechanicalDlg::OnBnClickedButton22() { DevActionValue(nsMECH::ActionKey::SetTomoEnable, { to_string(m_nTomoEnable) }); } //MechTomo ModeAngle void CMechanicalDlg::OnBnClickedButton23() { map param; param[nsMECH::AttrKey::TomoViewId] = to_string(m_nTomoPosNum); param[nsMECH::AttrKey::TomoRotateAngle] = to_string(m_nTomoAngle); param[nsMECH::AttrKey::TomoFrameCount] = to_string(m_nTomoFrameTotal); param[nsMECH::AttrKey::TomoFrameRate] = to_string(m_nTomoFrameRate); DevActionKeyValue(nsMECH::ActionKey::SetTomoTechnical, param); } //Get Pos void CMechanicalDlg::OnBnClickedButton24() { DevAction("GetAllAxisPosition"); } //stitching //BeginStitching void CMechanicalDlg::OnBnClickedButton25() { DevAction(nsMECH::ActionKey::BeginStitching); } //EndStitching void CMechanicalDlg::OnBnClickedButton26() { DevAction(nsMECH::ActionKey::EndStitching); } //SetupStitching void CMechanicalDlg::OnBnClickedButton27() { map param; param[nsMECH::AttrKey::STITCHHEIGHT] = to_string(m_nStitchInitHeight); param[nsMECH::AttrKey::STITCHLENGTH] = to_string(m_nStitchTotalLength); param[nsMECH::AttrKey::STITCHOVERLAP] = to_string(m_nStitchOverlap); param[nsMECH::AttrKey::SID] = to_string(m_nStitchSID); param[nsMECH::AttrKey::STITCHPID] = to_string(m_nStitchPID); param[nsMECH::AttrKey::STITCHDIRECTION] = to_string(m_nStitchDirection); param[nsMECH::AttrKey::STITCHTYPE] = to_string(m_nStitchType); DevActionKeyValue(nsMECH::ActionKey::SetupStitching, param); } //AcceptImage void CMechanicalDlg::OnBnClickedButton28() { DevAction(nsMECH::ActionKey::AcceptStitchingImage); } //RejectImage void CMechanicalDlg::OnBnClickedButton29() { DevAction(nsMECH::ActionKey::RejectStitchingImage); } //StitchingCancel void CMechanicalDlg::OnBnClickedButton30() { DevAction(nsMECH::ActionKey::CancelStitching); } //StitchingComplete void CMechanicalDlg::OnBnClickedButton31() { DevAction(nsMECH::ActionKey::CompleteStitching); } //StitchingStatus void CMechanicalDlg::OnBnClickedButton32() { } //NewExtraView void CMechanicalDlg::OnBnClickedButton33() { DevAction(nsMECH::ActionKey::NewExtraView); } //InitStitching void CMechanicalDlg::OnBnClickedButton34() { DevAction("InitStitching"); } //SetPositionNumber void CMechanicalDlg::OnBnClickedButton35() { CString tempStr; GetDlgItem(IDC_EDIT46)->GetWindowText(tempStr); string param = tempStr.GetBuffer(); DevActionValue(nsMECH::ActionKey::SetPositionNumber, { param }); } //Grid_Value void CMechanicalDlg::OnEnKillfocusEdit1() { CString tempStr; m_Edit_GRID.GetWindowText(tempStr); m_nGRID = atoi(tempStr); } //Filter_Value void CMechanicalDlg::OnEnKillfocusEdit5() { CString tempStr; m_Edit_Filter.GetWindowText(tempStr); m_nFilter = atoi(tempStr); } //Depress_Value void CMechanicalDlg::OnEnKillfocusEdit11() { CString tempStr; m_Edit_Depress.GetWindowText(tempStr); m_bAutoTrackingFlag = atoi(tempStr); } //3D DR //HomePos void CMechanicalDlg::OnEnKillfocusEdit13() { CString tempStr; m_Edit_HomePos.GetWindowText(tempStr); m_nHomePos = atoi(tempStr); } //MoveDisAxis void CMechanicalDlg::OnEnKillfocusEdit14() { CString tempStr; m_Edit_MoveDisAxis.GetWindowText(tempStr); m_nMoveDisAxis = atoi(tempStr); } //MoveDistance void CMechanicalDlg::OnEnKillfocusEdit15() { CString tempStr; m_Edit_MoveDistance.GetWindowText(tempStr); m_nMoveDistance = atoi(tempStr); } //MovePosAxis void CMechanicalDlg::OnEnKillfocusEdit16() { CString tempStr; m_Edit_MovePosAxis.GetWindowText(tempStr); m_nMovePosAxis = atoi(tempStr); } //MovePosNumber void CMechanicalDlg::OnEnKillfocusEdit17() { CString tempStr; m_Edit_MovePosNumber.GetWindowText(tempStr); m_nMovePosNumber = atoi(tempStr); } //SetPosAxis void CMechanicalDlg::OnEnKillfocusEdit18() { CString tempStr; m_Edit_SetPosAxis.GetWindowText(tempStr); m_nSetPosAxis = atoi(tempStr); } //SetPosX void CMechanicalDlg::OnEnKillfocusEdit19() { CString tempStr; m_Edit_SetPosX.GetWindowText(tempStr); m_nSetPosX = atoi(tempStr); } //SetPosY void CMechanicalDlg::OnEnKillfocusEdit20() { CString tempStr; m_Edit_SetPosY.GetWindowText(tempStr); m_nSetPosY = atoi(tempStr); } //SetPosZ void CMechanicalDlg::OnEnKillfocusEdit21() { CString tempStr; m_Edit_SetPosZ.GetWindowText(tempStr); m_nSetPosZ = atoi(tempStr); } //SetPosR void CMechanicalDlg::OnEnKillfocusEdit22() { CString tempStr; m_Edit_SetPosR.GetWindowText(tempStr); m_nSetPosR = atoi(tempStr); } //TomoEnable void CMechanicalDlg::OnEnKillfocusEdit23() { CString tempStr; m_Edit_TomoEnable.GetWindowText(tempStr); m_nTomoEnable = atoi(tempStr); } //TomoPosNum void CMechanicalDlg::OnEnKillfocusEdit24() { CString tempStr; m_Edit_TomoPosNum.GetWindowText(tempStr); m_nTomoPosNum = atoi(tempStr); } //TomoAngle void CMechanicalDlg::OnEnKillfocusEdit25() { CString tempStr; m_Edit_TomoAngle.GetWindowText(tempStr); m_nTomoAngle = atoi(tempStr); } //TomoFrameTotal void CMechanicalDlg::OnEnKillfocusEdit26() { CString tempStr; m_Edit_TomoFrameTotal.GetWindowText(tempStr); m_nTomoFrameTotal = atoi(tempStr); } //TomoFrameRate void CMechanicalDlg::OnEnKillfocusEdit27() { CString tempStr; m_Edit_TomoFrameRate.GetWindowText(tempStr); m_nTomoFrameRate = atoi(tempStr); } //InitHeight void CMechanicalDlg::OnEnKillfocusEdit35() { CString tempStr; m_Edit_StitchInitHeight.GetWindowText(tempStr); m_nStitchInitHeight = atoi(tempStr); } //StitchLength void CMechanicalDlg::OnEnKillfocusEdit36() { CString tempStr; m_Edit_StitchTotalLength.GetWindowText(tempStr); m_nStitchTotalLength = atoi(tempStr); } //Overlap void CMechanicalDlg::OnEnKillfocusEdit37() { CString tempStr; m_Edit_StitchOverlap.GetWindowText(tempStr); m_nStitchOverlap = atoi(tempStr); } //SID void CMechanicalDlg::OnEnKillfocusEdit38() { CString tempStr; m_Edit_StitchSID.GetWindowText(tempStr); m_nStitchSID = atoi(tempStr); } //TID void CMechanicalDlg::OnEnKillfocusEdit39() { CString tempStr; m_Edit_StitchTID.GetWindowText(tempStr); m_nStitchPID = atoi(tempStr); } //Direction void CMechanicalDlg::OnEnKillfocusEdit40() { CString tempStr; m_Edit_StitchDirection.GetWindowText(tempStr); m_nStitchDirection = atoi(tempStr); } //StitchType void CMechanicalDlg::OnEnKillfocusEdit41() { CString tempStr; m_Edit_StitchType.GetWindowText(tempStr); m_nStitchType = atoi(tempStr); }