CMechanicalDlg.cpp 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997
  1. // CMechanicalDlg.cpp: 实现文件
  2. //
  3. #include "pch.h"
  4. #include "resource.h" // 主符号
  5. #include "CMechanicalDlg.h"
  6. #include "afxdialogex.h"
  7. #include "CConfigDlg.h"
  8. // CMechanicalDlg 对话框
  9. IMPLEMENT_DYNAMIC(CMechanicalDlg, CDiosBasicDlg)
  10. CMechanicalDlg::CMechanicalDlg(CWnd* pParent /*=nullptr*/)
  11. : CDiosBasicDlg(Dev_Mechanical, IDD_DIALOG2, pParent)
  12. {
  13. }
  14. CMechanicalDlg::~CMechanicalDlg()
  15. {
  16. }
  17. void CMechanicalDlg::DoDataExchange(CDataExchange* pDX)
  18. {
  19. CDialogEx::DoDataExchange(pDX);
  20. DDX_Control(pDX, IDC_EDIT1, m_Edit_GRID);
  21. DDX_Control(pDX, IDC_EDIT2, m_Edit_MechanicalHeight);
  22. DDX_Control(pDX, IDC_EDIT3, m_Edit_AE);
  23. DDX_Control(pDX, IDC_EDIT4, m_Edit_CompPressure);
  24. DDX_Control(pDX, IDC_EDIT5, m_Edit_Filter);
  25. DDX_Control(pDX, IDC_EDIT6, m_Edit_AGD);
  26. DDX_Control(pDX, IDC_EDIT7, m_Edit_Thickness);
  27. DDX_Control(pDX, IDC_EDIT8, m_Edit_MAG);
  28. DDX_Control(pDX, IDC_EDIT9, m_Edit_CompPressureDEC);
  29. DDX_Control(pDX, IDC_EDIT10, m_Edit_CompressPaddle);
  30. DDX_Control(pDX, IDC_EDIT11, m_Edit_Depress);
  31. DDX_Control(pDX, IDC_EDIT12, m_Edit_MechanicalAngle);
  32. DDX_Control(pDX, IDC_EDIT13, m_Edit_HomePos);
  33. DDX_Control(pDX, IDC_EDIT14, m_Edit_MoveDisAxis);
  34. DDX_Control(pDX, IDC_EDIT15, m_Edit_MoveDistance);
  35. DDX_Control(pDX, IDC_EDIT16, m_Edit_MovePosAxis);
  36. DDX_Control(pDX, IDC_EDIT17, m_Edit_MovePosNumber);
  37. DDX_Control(pDX, IDC_EDIT18, m_Edit_SetPosAxis);
  38. DDX_Control(pDX, IDC_EDIT19, m_Edit_SetPosX);
  39. DDX_Control(pDX, IDC_EDIT20, m_Edit_SetPosY);
  40. DDX_Control(pDX, IDC_EDIT21, m_Edit_SetPosZ);
  41. DDX_Control(pDX, IDC_EDIT22, m_Edit_SetPosR);
  42. DDX_Control(pDX, IDC_EDIT23, m_Edit_TomoEnable);
  43. DDX_Control(pDX, IDC_EDIT24, m_Edit_TomoPosNum);
  44. DDX_Control(pDX, IDC_EDIT25, m_Edit_TomoAngle);
  45. DDX_Control(pDX, IDC_EDIT26, m_Edit_TomoFrameTotal);
  46. DDX_Control(pDX, IDC_EDIT27, m_Edit_TomoFrameRate);
  47. DDX_Control(pDX, IDC_EDIT28, m_Edit_TomoPosX);
  48. DDX_Control(pDX, IDC_EDIT29, m_Edit_TomoPosY);
  49. DDX_Control(pDX, IDC_EDIT30, m_Edit_TomoPosZ);
  50. DDX_Control(pDX, IDC_EDIT31, m_Edit_TomoPosR);
  51. DDX_Control(pDX, IDC_EDIT32, m_Edit_TomoHandSwitchState);
  52. DDX_Control(pDX, IDC_EDIT33, m_Edit_ProjectionNumber);
  53. DDX_Control(pDX, IDC_EDIT34, m_Edit_TomoScanAngle);
  54. DDX_Control(pDX, IDC_EDIT35, m_Edit_StitchInitHeight);
  55. DDX_Control(pDX, IDC_EDIT36, m_Edit_StitchTotalLength);
  56. DDX_Control(pDX, IDC_EDIT37, m_Edit_StitchOverlap);
  57. DDX_Control(pDX, IDC_EDIT38, m_Edit_StitchSID);
  58. DDX_Control(pDX, IDC_EDIT39, m_Edit_StitchTID);
  59. DDX_Control(pDX, IDC_EDIT40, m_Edit_StitchDirection);
  60. DDX_Control(pDX, IDC_EDIT41, m_Edit_StitchType);
  61. DDX_Control(pDX, IDC_EDIT42, m_Edit_StitchStatus);
  62. DDX_Control(pDX, IDC_EDIT43, m_Edit_StitchCurrentImage);
  63. DDX_Control(pDX, IDC_EDIT44, m_Edit_StitchTotalImage);
  64. DDX_Control(pDX, IDC_EDIT45, m_Edit_StitchInfo);
  65. }
  66. BEGIN_MESSAGE_MAP(CMechanicalDlg, CDialogEx)
  67. ON_BN_CLICKED(IDOK, &CMechanicalDlg::OnBnClickedOk)
  68. ON_BN_CLICKED(IDCANCEL, &CMechanicalDlg::OnBnClickedCancel)
  69. ON_BN_CLICKED(IDC_BUTTON1, &CMechanicalDlg::OnBnClickedButton1)
  70. ON_BN_CLICKED(IDC_BUTTON2, &CMechanicalDlg::OnBnClickedButton2)
  71. ON_BN_CLICKED(IDC_BUTTON3, &CMechanicalDlg::OnBnClickedButton3)
  72. ON_BN_CLICKED(IDC_BUTTON4, &CMechanicalDlg::OnBnClickedButton4)
  73. ON_BN_CLICKED(IDC_BUTTON5, &CMechanicalDlg::OnBnClickedButton5)
  74. ON_BN_CLICKED(IDC_BUTTON6, &CMechanicalDlg::OnBnClickedButton6)
  75. ON_BN_CLICKED(IDC_BUTTON7, &CMechanicalDlg::OnBnClickedButton7)
  76. ON_BN_CLICKED(IDC_BUTTON8, &CMechanicalDlg::OnBnClickedButton8)
  77. ON_BN_CLICKED(IDC_BUTTON9, &CMechanicalDlg::OnBnClickedButton9)
  78. ON_BN_CLICKED(IDC_BUTTON10, &CMechanicalDlg::OnBnClickedButton10)
  79. ON_BN_CLICKED(IDC_BUTTON11, &CMechanicalDlg::OnBnClickedButton11)
  80. ON_BN_CLICKED(IDC_BUTTON12, &CMechanicalDlg::OnBnClickedButton12)
  81. ON_BN_CLICKED(IDC_BUTTON13, &CMechanicalDlg::OnBnClickedButton13)
  82. ON_BN_CLICKED(IDC_BUTTON14, &CMechanicalDlg::OnBnClickedButton14)
  83. ON_BN_CLICKED(IDC_BUTTON15, &CMechanicalDlg::OnBnClickedButton15)
  84. ON_BN_CLICKED(IDC_BUTTON16, &CMechanicalDlg::OnBnClickedButton16)
  85. ON_BN_CLICKED(IDC_BUTTON17, &CMechanicalDlg::OnBnClickedButton17)
  86. ON_BN_CLICKED(IDC_BUTTON18, &CMechanicalDlg::OnBnClickedButton18)
  87. ON_BN_CLICKED(IDC_BUTTON19, &CMechanicalDlg::OnBnClickedButton19)
  88. ON_BN_CLICKED(IDC_BUTTON20, &CMechanicalDlg::OnBnClickedButton20)
  89. ON_BN_CLICKED(IDC_BUTTON21, &CMechanicalDlg::OnBnClickedButton21)
  90. ON_BN_CLICKED(IDC_BUTTON22, &CMechanicalDlg::OnBnClickedButton22)
  91. ON_BN_CLICKED(IDC_BUTTON23, &CMechanicalDlg::OnBnClickedButton23)
  92. ON_BN_CLICKED(IDC_BUTTON24, &CMechanicalDlg::OnBnClickedButton24)
  93. ON_BN_CLICKED(IDC_BUTTON25, &CMechanicalDlg::OnBnClickedButton25)
  94. ON_BN_CLICKED(IDC_BUTTON26, &CMechanicalDlg::OnBnClickedButton26)
  95. ON_BN_CLICKED(IDC_BUTTON27, &CMechanicalDlg::OnBnClickedButton27)
  96. ON_BN_CLICKED(IDC_BUTTON28, &CMechanicalDlg::OnBnClickedButton28)
  97. ON_BN_CLICKED(IDC_BUTTON29, &CMechanicalDlg::OnBnClickedButton29)
  98. ON_BN_CLICKED(IDC_BUTTON30, &CMechanicalDlg::OnBnClickedButton30)
  99. ON_BN_CLICKED(IDC_BUTTON31, &CMechanicalDlg::OnBnClickedButton31)
  100. ON_BN_CLICKED(IDC_BUTTON32, &CMechanicalDlg::OnBnClickedButton32)
  101. ON_BN_CLICKED(IDC_BUTTON33, &CMechanicalDlg::OnBnClickedButton33)
  102. ON_BN_CLICKED(IDC_BUTTON34, &CMechanicalDlg::OnBnClickedButton34)
  103. ON_BN_CLICKED(IDC_BUTTON35, &CMechanicalDlg::OnBnClickedButton35)
  104. ON_EN_KILLFOCUS(IDC_EDIT1, &CMechanicalDlg::OnEnKillfocusEdit1)
  105. ON_EN_KILLFOCUS(IDC_EDIT5, &CMechanicalDlg::OnEnKillfocusEdit5)
  106. ON_EN_KILLFOCUS(IDC_EDIT11, &CMechanicalDlg::OnEnKillfocusEdit11)
  107. ON_EN_KILLFOCUS(IDC_EDIT13, &CMechanicalDlg::OnEnKillfocusEdit13)
  108. ON_EN_KILLFOCUS(IDC_EDIT14, &CMechanicalDlg::OnEnKillfocusEdit14)
  109. ON_EN_KILLFOCUS(IDC_EDIT15, &CMechanicalDlg::OnEnKillfocusEdit15)
  110. ON_EN_KILLFOCUS(IDC_EDIT16, &CMechanicalDlg::OnEnKillfocusEdit16)
  111. ON_EN_KILLFOCUS(IDC_EDIT17, &CMechanicalDlg::OnEnKillfocusEdit17)
  112. ON_EN_KILLFOCUS(IDC_EDIT18, &CMechanicalDlg::OnEnKillfocusEdit18)
  113. ON_EN_KILLFOCUS(IDC_EDIT19, &CMechanicalDlg::OnEnKillfocusEdit19)
  114. ON_EN_KILLFOCUS(IDC_EDIT20, &CMechanicalDlg::OnEnKillfocusEdit20)
  115. ON_EN_KILLFOCUS(IDC_EDIT21, &CMechanicalDlg::OnEnKillfocusEdit21)
  116. ON_EN_KILLFOCUS(IDC_EDIT22, &CMechanicalDlg::OnEnKillfocusEdit22)
  117. ON_EN_KILLFOCUS(IDC_EDIT23, &CMechanicalDlg::OnEnKillfocusEdit23)
  118. ON_EN_KILLFOCUS(IDC_EDIT24, &CMechanicalDlg::OnEnKillfocusEdit24)
  119. ON_EN_KILLFOCUS(IDC_EDIT25, &CMechanicalDlg::OnEnKillfocusEdit25)
  120. ON_EN_KILLFOCUS(IDC_EDIT26, &CMechanicalDlg::OnEnKillfocusEdit26)
  121. ON_EN_KILLFOCUS(IDC_EDIT27, &CMechanicalDlg::OnEnKillfocusEdit27)
  122. ON_EN_KILLFOCUS(IDC_EDIT35, &CMechanicalDlg::OnEnKillfocusEdit35)
  123. ON_EN_KILLFOCUS(IDC_EDIT36, &CMechanicalDlg::OnEnKillfocusEdit36)
  124. ON_EN_KILLFOCUS(IDC_EDIT37, &CMechanicalDlg::OnEnKillfocusEdit37)
  125. ON_EN_KILLFOCUS(IDC_EDIT38, &CMechanicalDlg::OnEnKillfocusEdit38)
  126. ON_EN_KILLFOCUS(IDC_EDIT39, &CMechanicalDlg::OnEnKillfocusEdit39)
  127. ON_EN_KILLFOCUS(IDC_EDIT40, &CMechanicalDlg::OnEnKillfocusEdit40)
  128. ON_EN_KILLFOCUS(IDC_EDIT41, &CMechanicalDlg::OnEnKillfocusEdit41)
  129. //启用滚动条
  130. ON_WM_MOUSEWHEEL()
  131. ON_WM_VSCROLL()
  132. //ON_WM_HSCROLL()
  133. END_MESSAGE_MAP()
  134. // CMechanicalDlg 消息处理程序
  135. //初始化配置
  136. BOOL CMechanicalDlg::OnInitDialog()
  137. {
  138. CDiosBasicDlg::OnInitDialog();
  139. return TRUE;
  140. }
  141. //设备初始化
  142. bool CMechanicalDlg::AppInitial(bool act)
  143. {
  144. CString log;
  145. return CreatMode(act);
  146. }
  147. //获取初始值
  148. bool CMechanicalDlg::GetInitData()
  149. {
  150. CString log;
  151. CString tempStr;
  152. string strTempValue;
  153. if (m_pDevice != nullptr)
  154. {
  155. m_nGRID = atoi(DevGetValue(nsMECH::AttrKey::GRIDSTATE).c_str());
  156. tempStr.Format("%d", m_nGRID);
  157. m_Edit_GRID.SetWindowText(tempStr);
  158. int AE = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_AE).c_str());
  159. tempStr.Format("%d", AE);
  160. m_Edit_AE.SetWindowText(tempStr);
  161. m_nFilter = atoi(DevGetValue(nsMECH::AttrKey::FILTER).c_str());
  162. tempStr.Format("%d", m_nFilter);
  163. m_Edit_Filter.SetWindowText(tempStr);
  164. int Thickness = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_THICKNESS).c_str());
  165. tempStr.Format("%d", Thickness);
  166. m_Edit_Thickness.SetWindowText(tempStr);
  167. int CompPressureDEC = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_CompPressureDEC).c_str());
  168. tempStr.Format("%d", CompPressureDEC);
  169. m_Edit_CompPressureDEC.SetWindowText(tempStr);
  170. m_bAutoTrackingFlag = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_DEPRESS).c_str());
  171. tempStr.Format("%d", m_bAutoTrackingFlag);
  172. m_Edit_Depress.SetWindowText(tempStr);
  173. int MechanicalHeight = atoi(DevGetValue(nsMECH::AttrKey::TUBEHEIGHT).c_str());
  174. tempStr.Format("%d", MechanicalHeight);
  175. m_Edit_MechanicalHeight.SetWindowText(tempStr);
  176. int CompPressure = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_PRESSVAL).c_str());
  177. tempStr.Format("%d", CompPressure);
  178. m_Edit_CompPressure.SetWindowText(tempStr);
  179. int MechanicalAngle = atoi(DevGetValue(nsMECH::AttrKey::TUBEANGLE).c_str());
  180. tempStr.Format("%d", MechanicalAngle);
  181. m_Edit_MechanicalAngle.SetWindowText(tempStr);
  182. int MAG = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_MAG).c_str());
  183. tempStr.Format("%d", MAG);
  184. m_Edit_MAG.SetWindowText(tempStr);
  185. CString CompressPaddle = DevGetValue("CompressPaddle").c_str();
  186. tempStr = CompressPaddle;
  187. m_Edit_CompressPaddle.SetWindowText(tempStr);
  188. int AGD = atoi(DevGetValue(nsMECH::AttrKey::MAMMO_AGD).c_str());
  189. tempStr.Format("%d", AGD);
  190. m_Edit_AGD.SetWindowText(tempStr);
  191. GetDlgItem(IDC_BUTTON16)->SetWindowText("AutoTracking?");
  192. }
  193. return true;
  194. }
  195. //设置消息对照表
  196. void CMechanicalDlg::SetMagMap()
  197. {
  198. auto HW_UNKNOWN = [this](int NotifyCode, string key, string context)
  199. {
  200. CString strNotify;
  201. strNotify.Format("MECH can not deal with Attribute[%s] \n", key.c_str());
  202. ToolsDlgLog(strNotify);
  203. };
  204. auto HW_GRID = [this](int NotifyCode, string key, string context)//GRID
  205. {
  206. m_Edit_GRID.SetWindowText(context.c_str());
  207. };
  208. auto HW_AE = [this](int NotifyCode, string key, string context)//AE
  209. {
  210. m_Edit_AE.SetWindowText(context.c_str());
  211. };
  212. auto HW_MechanicalFilter = [this](int NotifyCode, string key, string context)//Filter
  213. {
  214. m_Edit_Filter.SetWindowText(context.c_str());
  215. };
  216. auto HW_Thickness = [this](int NotifyCode, string key, string context)//Thickness
  217. {
  218. m_Edit_Thickness.SetWindowText(context.c_str());
  219. };
  220. auto HW_CompPressureDEC = [this](int NotifyCode, string key, string context)//CompPressureDEC
  221. {
  222. m_Edit_CompPressureDEC.SetWindowText(context.c_str());
  223. };
  224. auto HW_Depress = [this](int NotifyCode, string key, string context)//Depress
  225. {
  226. m_Edit_Depress.SetWindowText(context.c_str());
  227. };
  228. auto HW_MechanicalAngle = [this](int NotifyCode, string key, string context)//MechanicalAngle
  229. {
  230. m_Edit_MechanicalAngle.SetWindowText(context.c_str());
  231. };
  232. auto HW_MechanicalHeight = [this](int NotifyCode, string key, string context)//MechanicalHeight
  233. {
  234. m_Edit_MechanicalHeight.SetWindowText(context.c_str());
  235. };
  236. auto HW_CompPressure = [this](int NotifyCode, string key, string context)//CompPressure
  237. {
  238. m_Edit_CompPressure.SetWindowText(context.c_str());
  239. };
  240. auto HW_AGD = [this](int NotifyCode, string key, string context)//AGD
  241. {
  242. m_Edit_AGD.SetWindowText(context.c_str());
  243. };
  244. auto HW_MAG = [this](int NotifyCode, string key, string context)//MAG
  245. {
  246. m_Edit_MAG.SetWindowText(context.c_str());
  247. };
  248. auto HW_CompressPaddle = [this](int NotifyCode, string key, string context)//CompressPaddle
  249. {
  250. m_Edit_CompressPaddle.SetWindowText(context.c_str());
  251. };
  252. auto HW_PosX = [this](int NotifyCode, string key, string context)//tomo机架位置坐标X
  253. {
  254. m_Edit_TomoPosX.SetWindowText(context.c_str());
  255. };
  256. auto HW_PosY = [this](int NotifyCode, string key, string context)//tomo机架位置坐标Y
  257. {
  258. m_Edit_TomoPosY.SetWindowText(context.c_str());
  259. };
  260. auto HW_PosZ = [this](int NotifyCode, string key, string context)//tomo机架位置坐标Z
  261. {
  262. m_Edit_TomoPosZ.SetWindowText(context.c_str());
  263. };
  264. auto HW_PosR = [this](int NotifyCode, string key, string context)//tomo机架位置坐标R
  265. {
  266. m_Edit_TomoPosR.SetWindowText(context.c_str());
  267. };
  268. auto HW_StatusX = [this](int NotifyCode, string key, string context)//tomo机架坐标X轴状态
  269. {
  270. bool dm = atoi(context.c_str());
  271. GetDlgItem(IDC_EDIT28)->EnableWindow(dm);
  272. };
  273. auto HW_StatusY = [this](int NotifyCode, string key, string context)//tomo机架坐标Y轴状态
  274. {
  275. bool dm = atoi(context.c_str());
  276. GetDlgItem(IDC_EDIT29)->EnableWindow(dm);
  277. };
  278. auto HW_StatusZ = [this](int NotifyCode, string key, string context)//tomo机架坐标Z轴状态
  279. {
  280. bool dm = atoi(context.c_str());
  281. GetDlgItem(IDC_EDIT30)->EnableWindow(dm);
  282. };
  283. auto HW_StatusR = [this](int NotifyCode, string key, string context)//tomo机架坐标R轴状态
  284. {
  285. bool dm = atoi(context.c_str());
  286. GetDlgItem(IDC_EDIT31)->EnableWindow(dm);
  287. };
  288. auto HW_HandSwitchState = [this](int NotifyCode, string key, string context)//tomo机架手闸状态
  289. {
  290. m_Edit_TomoHandSwitchState.SetWindowText(context.c_str());
  291. };
  292. auto HW_ProjectionNumber = [this](int NotifyCode, string key, string context)//tomo机架曝光序号
  293. {
  294. m_Edit_ProjectionNumber.SetWindowText(context.c_str());
  295. };
  296. auto HW_ScanAngle = [this](int NotifyCode, string key, string context)//tomo机架曝光位置角度
  297. {
  298. m_Edit_TomoScanAngle.SetWindowText(context.c_str());
  299. };
  300. auto HW_StitchStatus = [this](int NotifyCode, string key, string context)//拼接机架状态
  301. {
  302. m_Edit_StitchStatus.SetWindowText(context.c_str());
  303. };
  304. auto HW_StitchCurrentImage = [this](int NotifyCode, string key, string context)//拼接机架当前图像号
  305. {
  306. m_Edit_StitchCurrentImage.SetWindowText(context.c_str());
  307. };
  308. auto HW_StitchTotalImage = [this](int NotifyCode, string key, string context)//拼接机架总图像数
  309. {
  310. m_Edit_StitchTotalImage.SetWindowText(context.c_str());
  311. };
  312. auto HW_StitchInfo = [this](int NotifyCode, string key, string context)//拼接机架运动信息
  313. {
  314. m_Edit_StitchInfo.SetWindowText(context.c_str());
  315. };
  316. auto HW_ErrorList = [this](int NotifyCode, string key, string context)//ErrorList
  317. {
  318. ResDataObject json;
  319. json.decode(context.c_str());
  320. CString log;
  321. string code = (string)json["CodeID"];
  322. string value = (string)json["Resouceinfo"];
  323. mLog::Info("Mech_ErrorList: CodeID[{$}], Resouceinfo[{$}]", code.c_str(), value.c_str());
  324. log.Format("%s:%s", code.c_str(), value.c_str());
  325. ToolsDlgLog(log);
  326. };
  327. //Mechanical
  328. m_mapFrame["UnKnown"] = tFrameMapItem(HW_UNKNOWN);
  329. m_mapFrame[nsMECH::AttrKey::GRIDSTATE] = tFrameMapItem(HW_GRID);
  330. m_mapFrame[nsMECH::AttrKey::MAMMO_AE] = tFrameMapItem(HW_AE);
  331. m_mapFrame[nsMECH::AttrKey::FILTER] = tFrameMapItem(HW_MechanicalFilter);
  332. m_mapFrame[nsMECH::AttrKey::MAMMO_THICKNESS] = tFrameMapItem(HW_Thickness);
  333. m_mapFrame[nsMECH::AttrKey::MAMMO_CompPressureDEC] = tFrameMapItem(HW_CompPressureDEC);
  334. m_mapFrame[nsMECH::AttrKey::MAMMO_DEPRESS] = tFrameMapItem(HW_Depress);
  335. m_mapFrame[nsMECH::AttrKey::TUBEANGLE] = tFrameMapItem(HW_MechanicalAngle);
  336. m_mapFrame[nsMECH::AttrKey::TUBEHEIGHT] = tFrameMapItem(HW_MechanicalHeight);
  337. m_mapFrame[nsMECH::AttrKey::MAMMO_PRESSVAL] = tFrameMapItem(HW_CompPressure);
  338. m_mapFrame[nsMECH::AttrKey::MAMMO_AGD] = tFrameMapItem(HW_AGD);
  339. m_mapFrame[nsMECH::AttrKey::MAMMO_MAG] = tFrameMapItem(HW_MAG);
  340. m_mapFrame[nsMECH::AttrKey::MAMMO_CompressPaddle] = tFrameMapItem(HW_CompressPaddle);
  341. m_mapFrame["PosX"] = tFrameMapItem(HW_PosX);
  342. m_mapFrame["PosY"] = tFrameMapItem(HW_PosY);
  343. m_mapFrame["PosZ"] = tFrameMapItem(HW_PosZ);
  344. m_mapFrame["PosR"] = tFrameMapItem(HW_PosR);
  345. m_mapFrame["StatusX"] = tFrameMapItem(HW_StatusX);
  346. m_mapFrame["StatusY"] = tFrameMapItem(HW_StatusY);
  347. m_mapFrame["StatusZ"] = tFrameMapItem(HW_StatusZ);
  348. m_mapFrame["StatusR"] = tFrameMapItem(HW_StatusR);
  349. m_mapFrame["HandSwitchState"] = tFrameMapItem(HW_HandSwitchState);
  350. m_mapFrame[nsMECH::AttrKey::TomoScanImageNumber] = tFrameMapItem(HW_ProjectionNumber);
  351. m_mapFrame[nsMECH::AttrKey::TomoScanAngle] = tFrameMapItem(HW_ScanAngle);
  352. m_mapFrame[nsMECH::AttrKey::STITCHINGSTATE] = tFrameMapItem(HW_StitchStatus);
  353. m_mapFrame[nsMECH::AttrKey::CURRENTIMAGENUMBER] = tFrameMapItem(HW_StitchCurrentImage);
  354. m_mapFrame[nsMECH::AttrKey::TOTALIMAGECOUNT] = tFrameMapItem(HW_StitchTotalImage);
  355. m_mapFrame[nsMECH::AttrKey::UNITINFO] = tFrameMapItem(HW_StitchInfo);
  356. m_mapFrame[UnitTool_DevErrorList] = tFrameMapItem(HW_ErrorList);
  357. }
  358. void CMechanicalDlg::InitPageElements(bool act)
  359. {
  360. if (act)
  361. {
  362. ShowPageElements(FALSE, TRUE, FALSE, FALSE);
  363. SetMagMap();
  364. GetInitData();
  365. }
  366. else
  367. {
  368. ShowPageElements(TRUE, FALSE, TRUE, FALSE);
  369. }
  370. }
  371. //设置窗口元素显示
  372. void CMechanicalDlg::ShowPageElements(bool init, bool exit, bool cfg, bool general)
  373. {
  374. __super::ShowPageElements(init, exit, cfg, general);
  375. bool dm = exit;
  376. //GRID
  377. GetDlgItem(IDC_BUTTON4)->EnableWindow(dm);
  378. GetDlgItem(IDC_EDIT1)->EnableWindow(dm);
  379. //MechHeight
  380. GetDlgItem(IDC_BUTTON5)->EnableWindow(general);
  381. GetDlgItem(IDC_EDIT2)->EnableWindow(general);
  382. //AE
  383. GetDlgItem(IDC_BUTTON6)->EnableWindow(general);
  384. GetDlgItem(IDC_EDIT3)->EnableWindow(general);
  385. //CompPressure
  386. GetDlgItem(IDC_BUTTON7)->EnableWindow(general);
  387. GetDlgItem(IDC_EDIT4)->EnableWindow(general);
  388. //Filter
  389. GetDlgItem(IDC_BUTTON8)->EnableWindow(dm);
  390. GetDlgItem(IDC_EDIT5)->EnableWindow(dm);
  391. //GlandDose
  392. GetDlgItem(IDC_BUTTON9)->EnableWindow(general);
  393. GetDlgItem(IDC_EDIT6)->EnableWindow(general);
  394. //Thickness
  395. GetDlgItem(IDC_BUTTON10)->EnableWindow(general);
  396. GetDlgItem(IDC_EDIT7)->EnableWindow(general);
  397. //Magnification
  398. GetDlgItem(IDC_BUTTON11)->EnableWindow(general);
  399. GetDlgItem(IDC_EDIT8)->EnableWindow(general);
  400. //PressureDEC
  401. GetDlgItem(IDC_BUTTON12)->EnableWindow(general);
  402. GetDlgItem(IDC_EDIT9)->EnableWindow(general);
  403. //Description
  404. GetDlgItem(IDC_BUTTON13)->EnableWindow(general);
  405. GetDlgItem(IDC_EDIT10)->EnableWindow(general);
  406. //Depress
  407. GetDlgItem(IDC_BUTTON14)->EnableWindow(dm);
  408. GetDlgItem(IDC_EDIT11)->EnableWindow(dm);
  409. //MechAngle
  410. GetDlgItem(IDC_BUTTON15)->EnableWindow(general);
  411. GetDlgItem(IDC_EDIT12)->EnableWindow(general);
  412. //to Home
  413. GetDlgItem(IDC_BUTTON17)->EnableWindow(dm);
  414. GetDlgItem(IDC_EDIT13)->EnableWindow(dm);
  415. //Stop All
  416. GetDlgItem(IDC_BUTTON18)->EnableWindow(dm);
  417. //Move distance
  418. GetDlgItem(IDC_BUTTON19)->EnableWindow(dm);
  419. GetDlgItem(IDC_EDIT14)->EnableWindow(dm);
  420. GetDlgItem(IDC_EDIT15)->EnableWindow(dm);
  421. //Move posNom
  422. GetDlgItem(IDC_BUTTON20)->EnableWindow(dm);
  423. GetDlgItem(IDC_EDIT16)->EnableWindow(dm);
  424. GetDlgItem(IDC_EDIT17)->EnableWindow(dm);
  425. //Set posNom
  426. GetDlgItem(IDC_BUTTON21)->EnableWindow(dm);
  427. GetDlgItem(IDC_EDIT18)->EnableWindow(dm);
  428. GetDlgItem(IDC_EDIT19)->EnableWindow(dm);
  429. GetDlgItem(IDC_EDIT20)->EnableWindow(dm);
  430. GetDlgItem(IDC_EDIT21)->EnableWindow(dm);
  431. GetDlgItem(IDC_EDIT22)->EnableWindow(dm);
  432. //Tomo Enable
  433. GetDlgItem(IDC_BUTTON22)->EnableWindow(dm);
  434. GetDlgItem(IDC_EDIT23)->EnableWindow(dm);
  435. //MechTomo ModeAngle
  436. GetDlgItem(IDC_BUTTON23)->EnableWindow(dm);
  437. GetDlgItem(IDC_EDIT24)->EnableWindow(dm);
  438. GetDlgItem(IDC_EDIT25)->EnableWindow(dm);
  439. GetDlgItem(IDC_EDIT26)->EnableWindow(dm);
  440. GetDlgItem(IDC_EDIT27)->EnableWindow(dm);
  441. //Get Pos
  442. GetDlgItem(IDC_BUTTON24)->EnableWindow(dm);
  443. //曝光状态
  444. GetDlgItem(IDC_EDIT32)->EnableWindow(dm);
  445. GetDlgItem(IDC_EDIT33)->EnableWindow(dm);
  446. GetDlgItem(IDC_EDIT34)->EnableWindow(dm);
  447. //stitching action
  448. GetDlgItem(IDC_BUTTON25)->EnableWindow(dm);
  449. GetDlgItem(IDC_BUTTON26)->EnableWindow(dm);
  450. GetDlgItem(IDC_BUTTON27)->EnableWindow(dm);
  451. GetDlgItem(IDC_EDIT35)->EnableWindow(dm);
  452. GetDlgItem(IDC_EDIT36)->EnableWindow(dm);
  453. GetDlgItem(IDC_EDIT37)->EnableWindow(dm);
  454. GetDlgItem(IDC_EDIT38)->EnableWindow(dm);
  455. GetDlgItem(IDC_EDIT39)->EnableWindow(dm);
  456. GetDlgItem(IDC_EDIT40)->EnableWindow(dm);
  457. GetDlgItem(IDC_EDIT41)->EnableWindow(dm);
  458. GetDlgItem(IDC_BUTTON28)->EnableWindow(dm);
  459. GetDlgItem(IDC_BUTTON29)->EnableWindow(dm);
  460. GetDlgItem(IDC_BUTTON30)->EnableWindow(dm);
  461. GetDlgItem(IDC_BUTTON31)->EnableWindow(dm);
  462. GetDlgItem(IDC_BUTTON33)->EnableWindow(dm);
  463. //stitching attribute
  464. GetDlgItem(IDC_BUTTON32)->EnableWindow(dm);
  465. GetDlgItem(IDC_EDIT42)->EnableWindow(dm);
  466. GetDlgItem(IDC_EDIT43)->EnableWindow(dm);
  467. GetDlgItem(IDC_EDIT44)->EnableWindow(dm);
  468. //InitStitching
  469. GetDlgItem(IDC_BUTTON34)->EnableWindow(dm);
  470. //PositionNumber
  471. GetDlgItem(IDC_BUTTON35)->EnableWindow(dm);
  472. GetDlgItem(IDC_EDIT46)->EnableWindow(dm);
  473. }
  474. //设置悬停提示
  475. void CMechanicalDlg::SetToolTipsMsgMap()
  476. {
  477. m_Ttc.AddTool(GetDlgItem(IDC_BUTTON14), _T("AutoTracking"));
  478. m_Ttc.AddTool(GetDlgItem(IDC_EDIT13), _T("Home Position Number"));
  479. m_Ttc.AddTool(GetDlgItem(IDC_EDIT14), _T("Axis Number"));
  480. m_Ttc.AddTool(GetDlgItem(IDC_EDIT15), _T("distance"));
  481. m_Ttc.AddTool(GetDlgItem(IDC_EDIT16), _T("Axis Number"));
  482. m_Ttc.AddTool(GetDlgItem(IDC_EDIT17), _T("Position Number"));
  483. m_Ttc.AddTool(GetDlgItem(IDC_EDIT18), _T("Position Number"));
  484. m_Ttc.AddTool(GetDlgItem(IDC_EDIT19), _T("Position X"));
  485. m_Ttc.AddTool(GetDlgItem(IDC_EDIT20), _T("Position Y"));
  486. m_Ttc.AddTool(GetDlgItem(IDC_EDIT21), _T("Position Z"));
  487. m_Ttc.AddTool(GetDlgItem(IDC_EDIT22), _T("Position R"));
  488. m_Ttc.AddTool(GetDlgItem(IDC_EDIT24), _T("Tomo Number"));
  489. m_Ttc.AddTool(GetDlgItem(IDC_EDIT25), _T("Tomo Angle"));
  490. m_Ttc.AddTool(GetDlgItem(IDC_EDIT26), _T("Total Frame Count"));
  491. m_Ttc.AddTool(GetDlgItem(IDC_EDIT27), _T("FrameRate"));
  492. m_Ttc.AddTool(GetDlgItem(IDC_EDIT35), _T("Init Height"));
  493. m_Ttc.AddTool(GetDlgItem(IDC_EDIT36), _T("Stitch Length"));
  494. m_Ttc.AddTool(GetDlgItem(IDC_EDIT37), _T("Overlap"));
  495. m_Ttc.AddTool(GetDlgItem(IDC_EDIT38), _T("SID"));
  496. m_Ttc.AddTool(GetDlgItem(IDC_EDIT39), _T("PID"));
  497. m_Ttc.AddTool(GetDlgItem(IDC_EDIT40), _T("Direction"));
  498. m_Ttc.AddTool(GetDlgItem(IDC_EDIT41), _T("Stitch Type"));
  499. }
  500. void CMechanicalDlg::OnBnClickedOk()
  501. {
  502. // TODO: 在此添加控件通知处理程序代码
  503. CDialogEx::OnOK();
  504. }
  505. void CMechanicalDlg::OnBnClickedCancel()
  506. {
  507. // TODO: 在此添加控件通知处理程序代码
  508. CDialogEx::OnCancel();
  509. }
  510. //初始化
  511. void CMechanicalDlg::OnBnClickedButton1()
  512. {
  513. CString log;
  514. if (m_pDriver == nullptr)
  515. if (!m_pDevice)
  516. {
  517. if (AppInitial(true))
  518. {
  519. ShowPageElements(FALSE, TRUE, FALSE, FALSE);
  520. SetMagMap();
  521. GetInitData();
  522. mLog::Debug("(MECH)- MECH Initial success");
  523. }
  524. else
  525. {
  526. log.Format("(MECH)- MECH Initial fail");
  527. mLog::Error(log);
  528. ToolsDlgLog(log);
  529. }
  530. }
  531. else
  532. {
  533. log.Format("(MECH)- m_pDevice not empty");
  534. mLog::Warn(log);
  535. ToolsDlgLog(log);
  536. }
  537. else
  538. {
  539. log.Format("(MECH)- m_pDriver not empty");
  540. mLog::Warn(log);
  541. ToolsDlgLog(log);
  542. }
  543. }
  544. //退出
  545. void CMechanicalDlg::OnBnClickedButton2()
  546. {
  547. if (AppInitial(false))
  548. {
  549. ShowPageElements(TRUE, FALSE, TRUE, FALSE);
  550. }
  551. }
  552. //选择配置
  553. void CMechanicalDlg::OnBnClickedButton3()
  554. {
  555. CString log;
  556. nsCFG::CConfigDlg dlgcfg(Dev_Mechanical,
  557. m_strCfgLib,
  558. m_strCfgFile);
  559. dlgcfg.DoModal();
  560. if (m_strCfgFile.empty())
  561. {
  562. log.Format("(MECH)- MECH m_strCfgFile is empty");
  563. mLog::Warn(log);
  564. ToolsDlgLog(log);
  565. }
  566. else
  567. {
  568. ShowPageElements(TRUE, FALSE, TRUE, FALSE);
  569. }
  570. }
  571. //GRID
  572. void CMechanicalDlg::OnBnClickedButton4()
  573. {
  574. DevActionValue("SetGrid", { to_string(m_nGRID) });
  575. }
  576. //MechHeight
  577. void CMechanicalDlg::OnBnClickedButton5()
  578. {
  579. // TODO: 在此添加控件通知处理程序代码
  580. }
  581. //AE
  582. void CMechanicalDlg::OnBnClickedButton6()
  583. {
  584. // TODO: 在此添加控件通知处理程序代码
  585. }
  586. //CompPressure
  587. void CMechanicalDlg::OnBnClickedButton7()
  588. {
  589. // TODO: 在此添加控件通知处理程序代码
  590. }
  591. //Filter
  592. void CMechanicalDlg::OnBnClickedButton8()
  593. {
  594. DevActionValue("SetFilter", { to_string(m_nFilter) });
  595. }
  596. //GlandDose
  597. void CMechanicalDlg::OnBnClickedButton9()
  598. {
  599. // TODO: 在此添加控件通知处理程序代码
  600. }
  601. //Thickness
  602. void CMechanicalDlg::OnBnClickedButton10()
  603. {
  604. // TODO: 在此添加控件通知处理程序代码
  605. }
  606. //Magnification
  607. void CMechanicalDlg::OnBnClickedButton11()
  608. {
  609. // TODO: 在此添加控件通知处理程序代码
  610. }
  611. //PressureDEC
  612. void CMechanicalDlg::OnBnClickedButton12()
  613. {
  614. // TODO: 在此添加控件通知处理程序代码
  615. }
  616. //Description
  617. void CMechanicalDlg::OnBnClickedButton13()
  618. {
  619. // TODO: 在此添加控件通知处理程序代码
  620. }
  621. //Depress
  622. void CMechanicalDlg::OnBnClickedButton14()
  623. {
  624. if (m_bAutoTrackingFlag)
  625. {
  626. DevActionValue(nsMECH::ActionKey::SetAutoTracking, { to_string(false) });
  627. }
  628. else
  629. {
  630. DevActionValue(nsMECH::ActionKey::SetAutoTracking, { to_string(true) });
  631. }
  632. }
  633. //MechAngle
  634. void CMechanicalDlg::OnBnClickedButton15()
  635. {
  636. // TODO: 在此添加控件通知处理程序代码
  637. }
  638. //
  639. void CMechanicalDlg::OnBnClickedButton16()
  640. {
  641. }
  642. //3D DR
  643. //to Home
  644. void CMechanicalDlg::OnBnClickedButton17()
  645. {
  646. char data[20]{ 0 };
  647. sprintf_s(data, "%d", m_nHomePos);
  648. DevActionValue(nsMECH::ActionKey::MoveToHome, { data });
  649. }
  650. //Stop All
  651. void CMechanicalDlg::OnBnClickedButton18()
  652. {
  653. DevAction("StopAllAxis");
  654. }
  655. //Move distance
  656. void CMechanicalDlg::OnBnClickedButton19()
  657. {
  658. DevActionValue("MoveToRelativeDistance", { to_string(m_nMoveDisAxis),to_string(m_nMoveDistance) });
  659. }
  660. //Move posNom
  661. void CMechanicalDlg::OnBnClickedButton20()
  662. {
  663. DevActionValue("MoveToPositionNumber", { to_string(m_nMovePosAxis),to_string(m_nMovePosNumber) });
  664. }
  665. //Set posNom
  666. void CMechanicalDlg::OnBnClickedButton21()
  667. {
  668. DevActionValue("SetAxisPosition", { to_string(m_nSetPosAxis),to_string(m_nSetPosX),to_string(m_nSetPosY),to_string(m_nSetPosZ),to_string(m_nSetPosR) });
  669. }
  670. //Tomo Enable
  671. void CMechanicalDlg::OnBnClickedButton22()
  672. {
  673. DevActionValue(nsMECH::ActionKey::SetTomoEnable, { to_string(m_nTomoEnable) });
  674. }
  675. //MechTomo ModeAngle
  676. void CMechanicalDlg::OnBnClickedButton23()
  677. {
  678. map<string, string> param;
  679. param[nsMECH::AttrKey::TomoViewId] = to_string(m_nTomoPosNum);
  680. param[nsMECH::AttrKey::TomoRotateAngle] = to_string(m_nTomoAngle);
  681. param[nsMECH::AttrKey::TomoFrameCount] = to_string(m_nTomoFrameTotal);
  682. param[nsMECH::AttrKey::TomoFrameRate] = to_string(m_nTomoFrameRate);
  683. DevActionKeyValue(nsMECH::ActionKey::SetTomoTechnical, param);
  684. }
  685. //Get Pos
  686. void CMechanicalDlg::OnBnClickedButton24()
  687. {
  688. DevAction("GetAllAxisPosition");
  689. }
  690. //stitching
  691. //BeginStitching
  692. void CMechanicalDlg::OnBnClickedButton25()
  693. {
  694. DevAction(nsMECH::ActionKey::BeginStitching);
  695. }
  696. //EndStitching
  697. void CMechanicalDlg::OnBnClickedButton26()
  698. {
  699. DevAction(nsMECH::ActionKey::EndStitching);
  700. }
  701. //SetupStitching
  702. void CMechanicalDlg::OnBnClickedButton27()
  703. {
  704. map<string, string> param;
  705. param[nsMECH::AttrKey::STITCHHEIGHT] = to_string(m_nStitchInitHeight);
  706. param[nsMECH::AttrKey::STITCHLENGTH] = to_string(m_nStitchTotalLength);
  707. param[nsMECH::AttrKey::STITCHOVERLAP] = to_string(m_nStitchOverlap);
  708. param[nsMECH::AttrKey::SID] = to_string(m_nStitchSID);
  709. param[nsMECH::AttrKey::STITCHPID] = to_string(m_nStitchPID);
  710. param[nsMECH::AttrKey::STITCHDIRECTION] = to_string(m_nStitchDirection);
  711. param[nsMECH::AttrKey::STITCHTYPE] = to_string(m_nStitchType);
  712. DevActionKeyValue(nsMECH::ActionKey::SetupStitching, param);
  713. }
  714. //AcceptImage
  715. void CMechanicalDlg::OnBnClickedButton28()
  716. {
  717. DevAction(nsMECH::ActionKey::AcceptStitchingImage);
  718. }
  719. //RejectImage
  720. void CMechanicalDlg::OnBnClickedButton29()
  721. {
  722. DevAction(nsMECH::ActionKey::RejectStitchingImage);
  723. }
  724. //StitchingCancel
  725. void CMechanicalDlg::OnBnClickedButton30()
  726. {
  727. DevAction(nsMECH::ActionKey::CancelStitching);
  728. }
  729. //StitchingComplete
  730. void CMechanicalDlg::OnBnClickedButton31()
  731. {
  732. DevAction(nsMECH::ActionKey::CompleteStitching);
  733. }
  734. //StitchingStatus
  735. void CMechanicalDlg::OnBnClickedButton32()
  736. {
  737. }
  738. //NewExtraView
  739. void CMechanicalDlg::OnBnClickedButton33()
  740. {
  741. DevAction(nsMECH::ActionKey::NewExtraView);
  742. }
  743. //InitStitching
  744. void CMechanicalDlg::OnBnClickedButton34()
  745. {
  746. DevAction("InitStitching");
  747. }
  748. //SetPositionNumber
  749. void CMechanicalDlg::OnBnClickedButton35()
  750. {
  751. CString tempStr;
  752. GetDlgItem(IDC_EDIT46)->GetWindowText(tempStr);
  753. string param = tempStr.GetBuffer();
  754. DevActionValue(nsMECH::ActionKey::SetPositionNumber, { param });
  755. }
  756. //Grid_Value
  757. void CMechanicalDlg::OnEnKillfocusEdit1()
  758. {
  759. CString tempStr;
  760. m_Edit_GRID.GetWindowText(tempStr);
  761. m_nGRID = atoi(tempStr);
  762. }
  763. //Filter_Value
  764. void CMechanicalDlg::OnEnKillfocusEdit5()
  765. {
  766. CString tempStr;
  767. m_Edit_Filter.GetWindowText(tempStr);
  768. m_nFilter = atoi(tempStr);
  769. }
  770. //Depress_Value
  771. void CMechanicalDlg::OnEnKillfocusEdit11()
  772. {
  773. CString tempStr;
  774. m_Edit_Depress.GetWindowText(tempStr);
  775. m_bAutoTrackingFlag = atoi(tempStr);
  776. }
  777. //3D DR
  778. //HomePos
  779. void CMechanicalDlg::OnEnKillfocusEdit13()
  780. {
  781. CString tempStr;
  782. m_Edit_HomePos.GetWindowText(tempStr);
  783. m_nHomePos = atoi(tempStr);
  784. }
  785. //MoveDisAxis
  786. void CMechanicalDlg::OnEnKillfocusEdit14()
  787. {
  788. CString tempStr;
  789. m_Edit_MoveDisAxis.GetWindowText(tempStr);
  790. m_nMoveDisAxis = atoi(tempStr);
  791. }
  792. //MoveDistance
  793. void CMechanicalDlg::OnEnKillfocusEdit15()
  794. {
  795. CString tempStr;
  796. m_Edit_MoveDistance.GetWindowText(tempStr);
  797. m_nMoveDistance = atoi(tempStr);
  798. }
  799. //MovePosAxis
  800. void CMechanicalDlg::OnEnKillfocusEdit16()
  801. {
  802. CString tempStr;
  803. m_Edit_MovePosAxis.GetWindowText(tempStr);
  804. m_nMovePosAxis = atoi(tempStr);
  805. }
  806. //MovePosNumber
  807. void CMechanicalDlg::OnEnKillfocusEdit17()
  808. {
  809. CString tempStr;
  810. m_Edit_MovePosNumber.GetWindowText(tempStr);
  811. m_nMovePosNumber = atoi(tempStr);
  812. }
  813. //SetPosAxis
  814. void CMechanicalDlg::OnEnKillfocusEdit18()
  815. {
  816. CString tempStr;
  817. m_Edit_SetPosAxis.GetWindowText(tempStr);
  818. m_nSetPosAxis = atoi(tempStr);
  819. }
  820. //SetPosX
  821. void CMechanicalDlg::OnEnKillfocusEdit19()
  822. {
  823. CString tempStr;
  824. m_Edit_SetPosX.GetWindowText(tempStr);
  825. m_nSetPosX = atoi(tempStr);
  826. }
  827. //SetPosY
  828. void CMechanicalDlg::OnEnKillfocusEdit20()
  829. {
  830. CString tempStr;
  831. m_Edit_SetPosY.GetWindowText(tempStr);
  832. m_nSetPosY = atoi(tempStr);
  833. }
  834. //SetPosZ
  835. void CMechanicalDlg::OnEnKillfocusEdit21()
  836. {
  837. CString tempStr;
  838. m_Edit_SetPosZ.GetWindowText(tempStr);
  839. m_nSetPosZ = atoi(tempStr);
  840. }
  841. //SetPosR
  842. void CMechanicalDlg::OnEnKillfocusEdit22()
  843. {
  844. CString tempStr;
  845. m_Edit_SetPosR.GetWindowText(tempStr);
  846. m_nSetPosR = atoi(tempStr);
  847. }
  848. //TomoEnable
  849. void CMechanicalDlg::OnEnKillfocusEdit23()
  850. {
  851. CString tempStr;
  852. m_Edit_TomoEnable.GetWindowText(tempStr);
  853. m_nTomoEnable = atoi(tempStr);
  854. }
  855. //TomoPosNum
  856. void CMechanicalDlg::OnEnKillfocusEdit24()
  857. {
  858. CString tempStr;
  859. m_Edit_TomoPosNum.GetWindowText(tempStr);
  860. m_nTomoPosNum = atoi(tempStr);
  861. }
  862. //TomoAngle
  863. void CMechanicalDlg::OnEnKillfocusEdit25()
  864. {
  865. CString tempStr;
  866. m_Edit_TomoAngle.GetWindowText(tempStr);
  867. m_nTomoAngle = atoi(tempStr);
  868. }
  869. //TomoFrameTotal
  870. void CMechanicalDlg::OnEnKillfocusEdit26()
  871. {
  872. CString tempStr;
  873. m_Edit_TomoFrameTotal.GetWindowText(tempStr);
  874. m_nTomoFrameTotal = atoi(tempStr);
  875. }
  876. //TomoFrameRate
  877. void CMechanicalDlg::OnEnKillfocusEdit27()
  878. {
  879. CString tempStr;
  880. m_Edit_TomoFrameRate.GetWindowText(tempStr);
  881. m_nTomoFrameRate = atoi(tempStr);
  882. }
  883. //InitHeight
  884. void CMechanicalDlg::OnEnKillfocusEdit35()
  885. {
  886. CString tempStr;
  887. m_Edit_StitchInitHeight.GetWindowText(tempStr);
  888. m_nStitchInitHeight = atoi(tempStr);
  889. }
  890. //StitchLength
  891. void CMechanicalDlg::OnEnKillfocusEdit36()
  892. {
  893. CString tempStr;
  894. m_Edit_StitchTotalLength.GetWindowText(tempStr);
  895. m_nStitchTotalLength = atoi(tempStr);
  896. }
  897. //Overlap
  898. void CMechanicalDlg::OnEnKillfocusEdit37()
  899. {
  900. CString tempStr;
  901. m_Edit_StitchOverlap.GetWindowText(tempStr);
  902. m_nStitchOverlap = atoi(tempStr);
  903. }
  904. //SID
  905. void CMechanicalDlg::OnEnKillfocusEdit38()
  906. {
  907. CString tempStr;
  908. m_Edit_StitchSID.GetWindowText(tempStr);
  909. m_nStitchSID = atoi(tempStr);
  910. }
  911. //TID
  912. void CMechanicalDlg::OnEnKillfocusEdit39()
  913. {
  914. CString tempStr;
  915. m_Edit_StitchTID.GetWindowText(tempStr);
  916. m_nStitchPID = atoi(tempStr);
  917. }
  918. //Direction
  919. void CMechanicalDlg::OnEnKillfocusEdit40()
  920. {
  921. CString tempStr;
  922. m_Edit_StitchDirection.GetWindowText(tempStr);
  923. m_nStitchDirection = atoi(tempStr);
  924. }
  925. //StitchType
  926. void CMechanicalDlg::OnEnKillfocusEdit41()
  927. {
  928. CString tempStr;
  929. m_Edit_StitchType.GetWindowText(tempStr);
  930. m_nStitchType = atoi(tempStr);
  931. }