AcqCtrl.cpp 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. // AcqCtrl.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "AcqCtrl.h"
  5. #define DEMOTIMER 1
  6. // CAcqCtrl
  7. extern CString strAppPath;
  8. extern CString strAppDYNHandleName;
  9. extern CString strAppMechCompHandleName;
  10. extern CString strAppRFDTHandleName;
  11. extern CString strAppDRDTHandleName;
  12. extern CString strAppHardwareHandleName;
  13. extern CString strAppRFOCHandleName;
  14. extern CString g_strLogFilePath;
  15. extern CString g_strHWConfFilePath;
  16. extern CString g_strConfFilePath;
  17. IMPLEMENT_DYNAMIC(CAcqCtrl, CWnd)
  18. BEGIN_MESSAGE_MAP(CAcqCtrl, CWnd)
  19. ON_WM_TIMER()
  20. END_MESSAGE_MAP()
  21. CAcqCtrl::CAcqCtrl()
  22. {
  23. logfile = NULL;
  24. m_bState = false;
  25. m_bIsHandDwn = false;
  26. m_bIsFootDwn = false;
  27. m_ImgWidth = 1000;
  28. m_ImgHeight = 1000;
  29. m_pDemoImgData = NULL;
  30. m_ntimerDemoFlu = 0;
  31. m_nFluIndex = 0;
  32. m_nDemoNum = 0;
  33. m_nDemoTimerdur = 100;
  34. m_IsExpEnable = false;
  35. m_IsFluEnable = false;
  36. for (int i = 0; i < 5; i++)
  37. {
  38. m_pDemoFluData[i] = NULL;
  39. }
  40. }
  41. CAcqCtrl::~CAcqCtrl()
  42. {
  43. if (logfile)
  44. {
  45. delete logfile;
  46. logfile = NULL;
  47. }
  48. if (m_pDemoImgData)
  49. {
  50. delete m_pDemoImgData;
  51. m_pDemoImgData = NULL;
  52. }
  53. }
  54. bool CAcqCtrl::Create()
  55. {
  56. const char * strClassName;
  57. //创建背景画刷
  58. HBRUSH m_BrushBGround;
  59. m_BrushBGround = ::CreateSolidBrush(RGB(0, 0, 0));
  60. //注册窗口类
  61. strClassName = ::AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW,
  62. ::LoadCursor(NULL, IDC_ARROW), m_BrushBGround,
  63. NULL);
  64. if (!strClassName)
  65. {
  66. // TRACE("strClassNameis null\n");
  67. return false;
  68. }
  69. //设置窗口的位置和大小
  70. CRect RectCreate;
  71. RectCreate.top = 0;
  72. RectCreate.left = 0;
  73. RectCreate.bottom = 200;
  74. RectCreate.right = 200;
  75. //创建窗口对象,注意:Create 函数只能用于创建子窗口,对于应用程序的主窗口,必须使用
  76. //CreateEx函数。
  77. if (!CreateEx(NULL, strClassName, NULL, WS_POPUP | WS_CLIPCHILDREN,
  78. RectCreate, NULL, NULL, NULL))
  79. {
  80. return false;
  81. }
  82. return true;
  83. }
  84. bool CAcqCtrl::StartMonitoring(CAcqCtrl* pCurOprCtl)
  85. {
  86. if (this->m_bState) return false;
  87. return true;
  88. }
  89. bool CAcqCtrl::StopMonitoring()
  90. {
  91. if (this->m_bState)return false;
  92. return true;
  93. }
  94. UINT CAcqCtrl::ACQThread(LPVOID pParam)
  95. {
  96. return 0;
  97. }
  98. ///////////////////////////////////////////WORKFLOW////////////////////////////
  99. bool CAcqCtrl::InitDETECTOR(HWND hWnd, bool bState)
  100. {
  101. this->m_bState = bState;
  102. this->m_hWnd = hWnd;
  103. CAppSettings logsettings(g_strConfFilePath + "\\DROCLogMode.xml");
  104. if (logfile)
  105. {
  106. delete logfile;
  107. logfile = NULL;
  108. }
  109. logfile = new CLogFile(g_strLogFilePath, _T("ImgAcq"), atoi(logsettings[("LogDays")]));
  110. logfile->SetLogMode(atoi(logsettings[_T("ImgAcq")]));
  111. if (logfile != NULL)
  112. logfile->WriteLog("===================version 1.1.1.17=====================", LOG_INFORMATION, LOG_RELEASE, false);
  113. if (!m_bState)
  114. return true;
  115. this->logfile->WriteLog("Start monitor thread!", LOG_INFORMATION, LOG_DEBUG, true);
  116. StartMonitoring(this);
  117. return false;
  118. }
  119. bool CAcqCtrl::ExitDETECTOR()
  120. {
  121. for (int i = 0; i < 5; i++)
  122. {
  123. if (m_pDemoFluData[i])
  124. {
  125. delete m_pDemoFluData[i];
  126. m_pDemoFluData[i] = NULL;
  127. }
  128. }
  129. for (int i = 0; i < 5; i++)
  130. {
  131. if (m_pDemoFluData[i])
  132. {
  133. delete m_pDemoFluData[i];
  134. m_pDemoFluData[i] = NULL;
  135. }
  136. }
  137. if (m_bState) return false;
  138. return true;
  139. }
  140. bool CAcqCtrl::BeginWorkMode(void)
  141. {
  142. if (m_bState) return false;
  143. return true;
  144. }
  145. bool CAcqCtrl::EndWorkMode(void)
  146. {
  147. if (m_bState) return false;
  148. return true;
  149. }
  150. bool CAcqCtrl::InitParameters(void)
  151. {
  152. if (m_bState) return false;
  153. return true;
  154. }
  155. bool CAcqCtrl::StartGrab()
  156. {
  157. if (m_bState) return false;
  158. return true;
  159. }
  160. bool CAcqCtrl::StopGrab(int nXRayOnNum)
  161. {
  162. if (m_bState) return false;
  163. return true;
  164. }
  165. void CAcqCtrl::setNextStepEvent()
  166. {
  167. return;
  168. }
  169. bool CAcqCtrl::DownloadCorrectionFile2Device()
  170. {
  171. return true;
  172. }
  173. bool CAcqCtrl::SetGrabMode(int nmode)//1: Spot mode, 2: pulse mode, 3: continue mode;
  174. {
  175. if (m_bState) return false;
  176. return true;
  177. }
  178. ///////////////////////////////////////////MSG Feedback////////////////////////
  179. bool CAcqCtrl::OnXrayGenStart()
  180. {
  181. if (m_bState)return false;
  182. return true;
  183. }
  184. bool CAcqCtrl::OnXrayGenStop()
  185. {
  186. if (m_bState)return false;
  187. return true;
  188. }
  189. bool CAcqCtrl::OnXrayGenSetDose()
  190. {
  191. if (m_bState)return false;
  192. return true;
  193. }
  194. bool CAcqCtrl::OnModeActive()
  195. {
  196. if (m_bState)return false;
  197. return true;
  198. }
  199. bool CAcqCtrl::OnXrayCalSuccess()
  200. {
  201. if (m_bState)return false;
  202. return true;
  203. }
  204. bool CAcqCtrl::OnXrayCalFail()
  205. {
  206. if (m_bState)return false;
  207. return true;
  208. }
  209. bool CAcqCtrl::OnSYNC()
  210. {
  211. if (m_bState)return false;
  212. return true;
  213. }
  214. bool CAcqCtrl::OnTimeOut()
  215. {
  216. if (m_bState)return false;
  217. return true;
  218. }
  219. bool CAcqCtrl::OnStatus()
  220. {
  221. if (m_bState)return false;
  222. return true;
  223. }
  224. bool CAcqCtrl::OnWarning()
  225. {
  226. if (m_bState)return false;
  227. return true;
  228. }
  229. //////////////////////////////////////////COMMANDS////////////////////////////
  230. bool CAcqCtrl::SelectRADMode(int nLogicMode, int nOffsetIndex)
  231. {
  232. if (m_bState) return false;
  233. return true;
  234. }
  235. bool CAcqCtrl::SelectFLUMode(int nLogicMode, int nOffsetIndex)
  236. {
  237. if (m_bState) return false;
  238. return true;
  239. }
  240. bool CAcqCtrl::SelectCINEMode(int nLogicMode, int nOffsetIndex)
  241. {
  242. if (m_bState) return false;
  243. return true;
  244. }
  245. bool CAcqCtrl::SetRadOffsetMode(int nLogicMode, int nOffsetIndex, int nSpeed)
  246. {
  247. if (m_bState) return false;
  248. return true;
  249. }
  250. bool CAcqCtrl::SetFluOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed)
  251. {
  252. if (m_bState) return false;
  253. return true;
  254. }
  255. bool CAcqCtrl::SetCinOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed)
  256. {
  257. if (m_bState) return false;
  258. return true;
  259. }
  260. bool CAcqCtrl::GetActiveMode(int &nLogicMode, int &nOffsetIndex)
  261. {
  262. if (m_bState) return false;
  263. return true;
  264. }
  265. bool CAcqCtrl::ActiveRADMode()
  266. {
  267. if (m_bState) return false;
  268. return true;
  269. }
  270. bool CAcqCtrl::ActiveFLUMode()
  271. {
  272. if (m_bState) return false;
  273. return true;
  274. }
  275. bool CAcqCtrl::ActiveCINEMode()
  276. {
  277. if (m_bState) return false;
  278. return true;
  279. }
  280. bool CAcqCtrl::SetSpotFrameRate(float fps)
  281. {
  282. if (m_bState) return false;
  283. return true;
  284. }
  285. bool CAcqCtrl::SetFLUFrameRate(float fps)
  286. {
  287. if (m_bState) return false;
  288. return true;
  289. }
  290. bool CAcqCtrl::SetCINEFrameRate(float fps)
  291. {
  292. if (m_bState) return false;
  293. return true;
  294. }
  295. bool CAcqCtrl::ExpEnable()
  296. {
  297. this->logfile->WriteLog("ExpEnable", LOG_INFORMATION, LOG_DEBUG, true);
  298. m_IsExpEnable = true;
  299. return true;
  300. }
  301. bool CAcqCtrl::ExpDisable()
  302. {
  303. this->logfile->WriteLog("ExpDisable", LOG_INFORMATION, LOG_DEBUG, true);
  304. m_IsExpEnable = false;
  305. return true;
  306. }
  307. bool CAcqCtrl::FluEnable()
  308. {
  309. this->logfile->WriteLog("FluEnable", LOG_INFORMATION, LOG_DEBUG, true);
  310. m_IsFluEnable = true;
  311. return true;
  312. }
  313. bool CAcqCtrl::FluDisable()
  314. {
  315. this->logfile->WriteLog("FluDisable", LOG_INFORMATION, LOG_DEBUG, true);
  316. m_IsFluEnable = false;
  317. return true;
  318. }
  319. bool CAcqCtrl::GetOffsetInfo(int nLogicMode, vector <ZSKK_PROTOCOL_OFFSET_INFO> &vecOffsetInfo)
  320. {
  321. if (m_bState) return false;
  322. return true;
  323. }
  324. bool CAcqCtrl::GetLogicModeList(vector <ZSKK_DETECTOR_MODE_INFO> &vecDetectorMode)
  325. {
  326. if (m_bState) return false;
  327. return true;
  328. }
  329. //////////////////////////////////////////MSG Process////////////////////////////
  330. bool CAcqCtrl::OnCOPYDATA_MSG_Process(WPARAM wParam, LPARAM lParam)
  331. {
  332. return true;
  333. }
  334. bool CAcqCtrl::OnMSGWORKFLOW_Process(WPARAM wParam, LPARAM lParam)
  335. {
  336. return true;
  337. }
  338. bool CAcqCtrl::OnMSGCALIBRATION_Process(WPARAM wParam, LPARAM lParam)
  339. {
  340. return true;
  341. }
  342. bool CAcqCtrl::OnMSGPARAMETER_Process(WPARAM wParam, LPARAM lParam)
  343. {
  344. return true;
  345. }
  346. bool CAcqCtrl::MSGControl(CWnd *Wnd, int nMSGType, WPARAM nMSGwParam, LPARAM nMSGpParam, int nMSGOutMode, int nTargetPosition)
  347. {
  348. CString strHandleName = strAppHardwareHandleName;
  349. switch (nTargetPosition)
  350. {
  351. case ZSKK_MSG_TARGETHANDLE_NULL:
  352. break;
  353. case ZSKK_MSG_TARGETHANDLE_RFOC:
  354. strHandleName = strAppRFOCHandleName;
  355. break;
  356. case ZSKK_MSG_TARGETHANDLE_RFHARDWARE:
  357. strHandleName = strAppHardwareHandleName;
  358. break;
  359. case ZSKK_MSG_TARGETHANDLE_RFMECHNICAL:
  360. strHandleName = strAppMechCompHandleName;
  361. break;
  362. case ZSKK_MSG_TARGETHANDLE_RFDETECTOR:
  363. strHandleName = strAppRFDTHandleName;
  364. break;
  365. case ZSKK_MSG_TARGETHANDLE_DRDETECTOR:
  366. strHandleName = strAppDRDTHandleName;
  367. break;
  368. case ZSKK_MSG_TARGETHANDLE_RFDYN:
  369. strHandleName = strAppDYNHandleName;
  370. break;
  371. default:
  372. break;
  373. }
  374. CWnd *targetWnd = CWnd::FindWindow(NULL, strHandleName);
  375. if (targetWnd != NULL)
  376. {
  377. if (nMSGOutMode == ZSKK_MSG_TYPE_SYNC_NO)
  378. {
  379. targetWnd->PostMessage(nMSGType, nMSGwParam, nMSGpParam);
  380. }
  381. else
  382. {
  383. targetWnd->SendMessage(nMSGType, nMSGwParam, nMSGpParam);
  384. }
  385. }
  386. return true;
  387. }
  388. ////CAL Mode: 1 defect, 2: Linear Gain, 4: Offset 8: Polynomial gain, 16: Blinking
  389. bool CAcqCtrl::EnterCalibration()
  390. {
  391. if (m_bState) return false;
  392. return true;
  393. }
  394. bool CAcqCtrl::BeginCalibration(int nLogicMode, int nOffsetIndex, int nCalMode)
  395. {
  396. if (m_bState) return false;
  397. return true;
  398. }
  399. bool CAcqCtrl::GetCalibrationStatus(int nLogicMode, int nOffsetIndex, ZSKK_CAL_STATUS& modeStatus)
  400. {
  401. if (m_bState) return false;
  402. return true;
  403. }
  404. bool CAcqCtrl::CalibrateAllModes()
  405. {
  406. if (m_bState) return false;
  407. return true;
  408. }
  409. bool CAcqCtrl::AbortCalibration()
  410. {
  411. if (m_bState) return false;
  412. return true;
  413. }
  414. bool CAcqCtrl::ExitCalibration()
  415. {
  416. if (m_bState) return false;
  417. return true;
  418. }
  419. bool CAcqCtrl::StartOffsetRefresh()
  420. {
  421. if (m_bState) return false;
  422. return true;
  423. }
  424. bool CAcqCtrl::StartOffsetCalibration()
  425. {
  426. if (m_bState) return false;
  427. return true;
  428. }
  429. bool CAcqCtrl::EnableAutoOffset(bool bEn)
  430. {
  431. if (m_bState) return false;
  432. return true;
  433. }
  434. bool CAcqCtrl::OffsetByUser()
  435. {
  436. if (m_bState) return false;
  437. return true;
  438. }
  439. bool CAcqCtrl::ResetConnection()
  440. {
  441. if (m_bState)
  442. {
  443. return false;
  444. }
  445. return true;
  446. }