DIOS.Dev.FPD.CtrlUnit.cpp 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060
  1. // CCOS.Dev.FPD.DEMO.cpp : 定义 DLL 应用程序的导出函数。
  2. //
  3. #include "stdafx.h"
  4. #include "CCOS.Dev.FPDDeviceMould.hpp"
  5. using namespace CCOS::Dev;
  6. using namespace CCOS::Dev::Detail::Detector;
  7. namespace nsFPD = CCOS::Dev::Detail::Detector;
  8. extern Log4CPP::Logger* gLogger;
  9. //-----------------------------------------------------------------------------
  10. // CtrlUnit
  11. //-----------------------------------------------------------------------------
  12. nsFPD::DetectorCtrlUnit::DetectorCtrlUnit()
  13. {
  14. m_DetectorStatus = DETECTOR_STATUS_MAX;
  15. m_DetectorConnectStatus = PANEL_CONNECT_ERROR;
  16. m_strUpdateFWStatus = "4";
  17. m_strInitialStatus = "3";
  18. m_strAttachStatus = "0";
  19. m_strAttachResult = "0";
  20. m_strShockSensor = "";
  21. ResDataObject ResRecoverImageState;
  22. ResRecoverImageState.add("DetectorName", "FPD");
  23. ResRecoverImageState.add("DetectorSN", "01");
  24. ResRecoverImageState.add("DetectorWifiSignal", "1");
  25. ResRecoverImageState.add("Result", "-1");
  26. m_strRecoverImageState = ResRecoverImageState.encode();
  27. m_strRecoverImageEvent = "0";
  28. m_strFieldofViewShape = "RECTANGLE";
  29. m_strFieldofViewDimension = "RECTANGLE";
  30. m_strDetectorType = "Zskk";
  31. m_strDescription = "FPD";
  32. m_strDetectorID = "0";
  33. m_strDateofLastDetectorCalibration = " ";
  34. m_strTimeofLastDetectorCalibration = " ";
  35. m_strDetectorConditionsNominalFlag = "1";
  36. m_strFPDSensitivity = "600";
  37. m_strFPDSensitivityResult = "0";
  38. m_strPixelData = "140";
  39. m_strTargetEXI = "5000";
  40. m_strFirmwareStatus = "4";
  41. }
  42. nsFPD::DetectorCtrlUnit:: ~DetectorCtrlUnit()
  43. {
  44. }
  45. void OEM_IF nsFPD::DetectorCtrlUnit::SetEventCenter(std::shared_ptr <CCOS::Dev::IOEventCenter> EventCenter)
  46. {
  47. m_EventCenter = EventCenter;
  48. }
  49. RET_STATUS nsFPD::DetectorCtrlUnit::JSActiveDetector(std::string in, std::string & out)
  50. {
  51. ResDataObject json;
  52. json.decode(in.c_str());
  53. bool bActive = false;
  54. try {
  55. bActive = (bool)json[0];
  56. }
  57. catch (...)
  58. {
  59. return RET_STATUS::RET_FAILED;
  60. }
  61. Info("ActiveDetector. {$}", in.c_str());
  62. ActiveDetector(bActive);
  63. out = "test@ActiveDetector";
  64. return RET_STATUS::RET_SUCCEED;
  65. }
  66. RET_STATUS nsFPD::DetectorCtrlUnit::JSWakeupDetector(std::string in, std::string & out)
  67. {
  68. // ResDataObject json (in);
  69. // int mode = json.get ("");
  70. Info("WakeupDetector. {$}", in.c_str());
  71. out = "test@WakeupDetector";
  72. return RET_STATUS::RET_SUCCEED;
  73. }
  74. RET_STATUS nsFPD::DetectorCtrlUnit::JSRESET(std::string in, std::string& out)
  75. {
  76. Info("RESET.");
  77. RESET();
  78. return RET_STATUS::RET_SUCCEED;
  79. }
  80. RET_STATUS nsFPD::DetectorCtrlUnit::JSEnterExam(std::string in, std::string & out)
  81. {
  82. ResDataObject json;
  83. json.decode(in.c_str());
  84. int mode = 0;
  85. try{
  86. mode = (int)json[0];
  87. }
  88. catch (...)
  89. {
  90. return RET_STATUS::RET_FAILED;
  91. }
  92. Info("EnterExam.{$}", in.c_str());
  93. EnterExam(mode);
  94. return RET_STATUS::RET_SUCCEED;
  95. }
  96. RET_STATUS nsFPD::DetectorCtrlUnit::JSExitExam(std::string in, std::string& out)
  97. {
  98. Info("ExitExam.");
  99. return RET_STATUS::RET_SUCCEED;
  100. }
  101. RET_STATUS nsFPD::DetectorCtrlUnit::JSAttachConnect(std::string in, std::string& out)
  102. {
  103. Info("AttachConnect.");
  104. AttachConnect();
  105. return RET_STATUS::RET_SUCCEED;
  106. }
  107. RET_STATUS nsFPD::DetectorCtrlUnit::JSCancelAttach(std::string in, std::string& out)
  108. {
  109. Info("CancelAttach.");
  110. CancelAttach();
  111. return RET_STATUS::RET_SUCCEED;
  112. }
  113. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetConnectStatus(std::string & out)
  114. {
  115. //Info("GetConnectStatus.");
  116. out = to_string(m_DetectorConnectStatus);
  117. return RET_STATUS::RET_SUCCEED;
  118. }
  119. RET_STATUS nsFPD::DetectorCtrlUnit::JSResetConnect(std::string in, std::string& out)
  120. {
  121. Info("ResetConnect.");
  122. ResetConnect();
  123. return RET_STATUS::RET_SUCCEED;
  124. }
  125. RET_STATUS nsFPD::DetectorCtrlUnit::JSDisConnectFPD(std::string in, std::string& out)
  126. {
  127. Info("DisConnectFPD.");
  128. DisConnectFPD();
  129. return RET_STATUS::RET_SUCCEED;
  130. }
  131. RET_STATUS nsFPD::DetectorCtrlUnit::JSDisConnectFPDForce(std::string in, std::string& out)
  132. {
  133. Info("DisConnectFPD.");
  134. DisConnectFPDForce();
  135. return RET_STATUS::RET_SUCCEED;
  136. }
  137. RET_STATUS nsFPD::DetectorCtrlUnit::JSUpdateFirmware(std::string in, std::string& out)
  138. {
  139. Info("UpdateFirmware.");
  140. return UpdateFirmware();
  141. }
  142. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorInfo(std::string in, std::string & out)
  143. {
  144. string strFPDinfo;
  145. GetDetectorInfo(strFPDinfo);
  146. out = strFPDinfo;
  147. return RET_STATUS::RET_SUCCEED;
  148. }
  149. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetRecoverImageState(std::string in, std::string & out)
  150. {
  151. string strFPDinfo;
  152. GetRecoverImageState(strFPDinfo);
  153. out = strFPDinfo;
  154. return RET_STATUS::RET_SUCCEED;
  155. }
  156. RET_STATUS nsFPD::DetectorCtrlUnit::JSRecoverImage(std::string in, std::string & out)
  157. {
  158. ResDataObject json;
  159. json.decode(in.c_str());
  160. bool mode = false;
  161. try{
  162. mode = (bool)json[0];
  163. }
  164. catch (...)
  165. {
  166. Error("JSRecoverImage decode failed {$}", in.c_str());
  167. return RET_STATUS::RET_FAILED;
  168. }
  169. Info("RecoverImage. {$}",in.c_str());
  170. RecoverImage(mode);
  171. return RET_STATUS::RET_SUCCEED;
  172. }
  173. RET_STATUS nsFPD::DetectorCtrlUnit::JSSaveSensitivity(std::string in, std::string& out)
  174. {
  175. Info("SaveSensitivity.");
  176. SaveSensitivity();
  177. return RET_STATUS::RET_SUCCEED;
  178. }
  179. //动态探测器先采图,后出线。出线时调用这个接口告知探测器可以取曝光图像
  180. RET_STATUS DetectorCtrlUnit::JSSetXrayOnNum(std::string in, std::string& out)
  181. {
  182. Info("SetXrayOnNum.{$}",in.c_str());
  183. SetXrayOnNum();
  184. return RET_STATUS::RET_SUCCEED;
  185. }
  186. //告知探测器序列采集图像张数,停止采集时等图使用
  187. RET_STATUS DetectorCtrlUnit::JSSetExposureTimes(std::string in, std::string& out)
  188. {
  189. Info("SetExposureTimes.{$}", in.c_str());
  190. ResDataObject json;
  191. json.decode(in.c_str());
  192. int nTimes = 0;
  193. try {
  194. nTimes = (int)json[0];
  195. }
  196. catch (...)
  197. {
  198. return RET_STATUS::RET_FAILED;
  199. }
  200. SetExposureTimes(nTimes);
  201. return RET_STATUS::RET_SUCCEED;
  202. }
  203. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetConnectStatus(DETECTOR_SHARE_STATUS nStatus)
  204. {
  205. string strStatus = "Unknown";
  206. switch (nStatus)
  207. {
  208. case PANEL_CONNECT_ERROR:
  209. strStatus = "PANEL_CONNECT_ERROR";
  210. break;
  211. case PANEL_ATTACH_START:
  212. strStatus = "PANEL_ATTACH_START";
  213. break;
  214. case PANEL_CONNECT_OK:
  215. strStatus = "PANEL_CONNECT_OK";
  216. break;
  217. case PANEL_DISCONNECT_SUCCESS:
  218. strStatus = "PANEL_DISCONNECT_SUCCESS";
  219. break;
  220. case PANEL_DISCONNECT_ERROR:
  221. strStatus = "PANEL_DISCONNECT_ERROR";
  222. break;
  223. case PANEL_ATTACH_OVER:
  224. strStatus = "PANEL_ATTACH_OVER";
  225. break;
  226. case PANEL_ATTACH_FAILED:
  227. strStatus = "PANEL_ATTACH_FAILED";
  228. break;
  229. case PANEL_ATTACH_FAILED_WITH_IMG:
  230. strStatus = "PANEL_ATTACH_FAILED_WITH_IMG";
  231. break;
  232. case PANEL_ATTACH_NULL:
  233. strStatus = "PANEL_ATTACH_NULL";
  234. break;
  235. default:
  236. break;
  237. }
  238. m_DetectorConnectStatus = nStatus;
  239. auto szFDinfo = std::to_string(nStatus);
  240. std::string str = szFDinfo;
  241. Info("CcosDetectorConnectStatus: {$}", str);
  242. m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorConnectStatus, str);
  243. Info("SetConnectStatus {$}", strStatus.c_str());
  244. return RET_STATUS::RET_SUCCEED;
  245. }
  246. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFPDStatus(std::string & out)
  247. {
  248. auto szFDinfo = std::to_string(m_DetectorStatus);
  249. out = szFDinfo;
  250. return RET_STATUS::RET_SUCCEED;
  251. }
  252. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorStatus(DETECTOR_STATUS status)
  253. {
  254. string strStatus = "Unknown";
  255. switch (status)
  256. {
  257. case DETECTOR_STATUS_SHUTDOWN:
  258. strStatus = "Shutdown";
  259. break;
  260. case DETECTOR_STATUS_INIT:
  261. strStatus = "init";
  262. break;
  263. case DETECTOR_STATUS_SLEEP:
  264. strStatus = "sleep";
  265. break;
  266. case DETECTOR_STATUS_WAKEUP:
  267. strStatus = "wakeup";
  268. break;
  269. case DETECTOR_STATUS_STANDBY:
  270. strStatus = "standby";
  271. break;
  272. case DETECTOR_STATUS_ACQ:
  273. strStatus = "acq";
  274. break;
  275. case DETECTOR_STATUS_ERROR:
  276. strStatus = "error";
  277. break;
  278. case DETECTOR_STATUS_MAX:
  279. default:
  280. break;
  281. }
  282. m_DetectorStatus = status;
  283. auto szFDinfo = std::to_string(status);
  284. std::string str = szFDinfo;
  285. m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorStatus, str);
  286. Info("SetDetectorStatus {$}",strStatus.c_str());
  287. return RET_STATUS::RET_SUCCEED;
  288. }
  289. DETECTOR_STATUS OEM_IF nsFPD::DetectorCtrlUnit::GetDetectorStatus()
  290. {
  291. return m_DetectorStatus;
  292. }
  293. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAttachResult(std::string & out)
  294. {
  295. ResDataObject json;
  296. json.add(DetectorDescription, "test");
  297. json.add(DetectorSerialNumber, "987");
  298. m_strAttachResult = json.encode();
  299. out = m_strAttachResult;
  300. return RET_STATUS::RET_SUCCEED;
  301. }
  302. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetAttachResult(bool result, const char* DetectorType, const char* DetectorSN)
  303. {
  304. ResDataObject json;
  305. json.add(DetectorDescription, DetectorType);
  306. json.add(DetectorSerialNumber, DetectorSN);
  307. json.add("IsNewSN", result);
  308. m_strAttachResult = json.encode();
  309. m_EventCenter->OnNotify((int)ATTRACTION_MSG, CcosDetectorAttach, m_strAttachResult);
  310. return RET_STATUS::RET_SUCCEED;
  311. }
  312. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAttachStatus(std::string & out)
  313. {
  314. out = m_strAttachStatus;
  315. return RET_STATUS::RET_SUCCEED;
  316. }
  317. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetAttachStatus(int nStatus)
  318. {
  319. auto szFDinfo = std::to_string(nStatus);
  320. m_strAttachStatus = szFDinfo;
  321. m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorAttachedFlag, m_strAttachStatus);
  322. return RET_STATUS::RET_SUCCEED;
  323. }
  324. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetInitialStatus(std::string & out)
  325. {
  326. out = m_strInitialStatus;
  327. return RET_STATUS::RET_SUCCEED;
  328. }
  329. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetInitialStatus(int nStatus)
  330. {
  331. auto szFDinfo = std::to_string(nStatus);
  332. m_strInitialStatus = szFDinfo;
  333. m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorInitialStatus, m_strInitialStatus);
  334. return RET_STATUS::RET_SUCCEED;
  335. }
  336. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetUpdateFWStatus(std::string & out)
  337. {
  338. out = m_strUpdateFWStatus;
  339. return RET_STATUS::RET_SUCCEED;
  340. }
  341. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetUpdateFWStatus(int nStatus)
  342. {
  343. auto szFDinfo = std::to_string(nStatus);
  344. m_strUpdateFWStatus = szFDinfo;
  345. m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosDetectorUpdateFWStatus, m_strUpdateFWStatus);
  346. return RET_STATUS::RET_SUCCEED;
  347. }
  348. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetShockSensorInfo(string strSOK)
  349. {
  350. if (strSOK == "")
  351. {
  352. return RET_STATUS::RET_FAILED;
  353. }
  354. m_strShockSensor = strSOK;
  355. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FPDShockSensorInfo", m_strShockSensor);
  356. return RET_STATUS::RET_SUCCEED;
  357. }
  358. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetShockSensorInfo(std::string & out)
  359. {
  360. out = m_strShockSensor;
  361. return RET_STATUS::RET_SUCCEED;
  362. }
  363. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetRecoverImageState(string strStatus)
  364. {
  365. if (strStatus == "")
  366. {
  367. return RET_STATUS::RET_FAILED;
  368. }
  369. m_strRecoverImageState = strStatus;
  370. m_EventCenter->OnNotify((int)ATTRACTION_SET, "RecoverImageState", m_strRecoverImageState);//20220128 防止UI重复弹窗,从ATTRACTION_MSG改成ATTRACTION_SET
  371. return RET_STATUS::RET_SUCCEED;
  372. }
  373. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetRecoverImageState(std::string& out)
  374. {
  375. out = m_strRecoverImageState;
  376. return RET_STATUS::RET_SUCCEED;
  377. }
  378. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetRecoverImageEvent(int nStatus)
  379. {
  380. auto szFDinfo = std::to_string(nStatus);
  381. m_strRecoverImageEvent = szFDinfo;
  382. m_EventCenter->OnNotify((int)ATTRACTION_MSG, "RecoverImageEvent", m_strRecoverImageEvent);
  383. return RET_STATUS::RET_SUCCEED;
  384. }
  385. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetRecoverImageEvent(std::string& out)
  386. {
  387. out = m_strRecoverImageEvent;
  388. return RET_STATUS::RET_SUCCEED;
  389. }
  390. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFieldofViewShape(string strSOK)
  391. {
  392. if (strSOK == "")
  393. {
  394. return RET_STATUS::RET_FAILED;
  395. }
  396. m_strFieldofViewShape = strSOK;
  397. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FieldofViewShape", m_strFieldofViewShape);
  398. return RET_STATUS::RET_SUCCEED;
  399. }
  400. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFieldofViewShape(std::string & out)
  401. {
  402. out = m_strFieldofViewShape;
  403. return RET_STATUS::RET_SUCCEED;
  404. }
  405. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFieldofViewDimension(string strSOK)
  406. {
  407. if (strSOK == "")
  408. {
  409. return RET_STATUS::RET_FAILED;
  410. }
  411. m_strFieldofViewDimension = strSOK;
  412. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FieldofViewDimension", m_strFieldofViewDimension);
  413. return RET_STATUS::RET_SUCCEED;
  414. }
  415. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFieldofViewDimension(std::string & out)
  416. {
  417. out = m_strFieldofViewDimension;
  418. return RET_STATUS::RET_SUCCEED;
  419. }
  420. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorType(string strSOK)
  421. {
  422. if (strSOK == "")
  423. {
  424. return RET_STATUS::RET_FAILED;
  425. }
  426. m_strDetectorType = strSOK;
  427. m_EventCenter->OnNotify((int)ATTRACTION_SET, "DetectorType", m_strDetectorType);
  428. return RET_STATUS::RET_SUCCEED;
  429. }
  430. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorType(std::string & out)
  431. {
  432. out = m_strDetectorType;
  433. return RET_STATUS::RET_SUCCEED;
  434. }
  435. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDescription(string strSOK)
  436. {
  437. if (strSOK == "")
  438. {
  439. return RET_STATUS::RET_FAILED;
  440. }
  441. m_strDescription = strSOK;
  442. m_EventCenter->OnNotify((int)ATTRACTION_SET, "Description", m_strDescription);
  443. return RET_STATUS::RET_SUCCEED;
  444. }
  445. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDescription(std::string & out)
  446. {
  447. out = m_strDescription;
  448. return RET_STATUS::RET_SUCCEED;
  449. }
  450. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorID(string strSOK)
  451. {
  452. if (strSOK == "")
  453. {
  454. return RET_STATUS::RET_FAILED;
  455. }
  456. m_strDetectorID = strSOK;
  457. m_EventCenter->OnNotify((int)ATTRACTION_SET, "DetectorID", m_strDetectorID);
  458. return RET_STATUS::RET_SUCCEED;
  459. }
  460. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorID(std::string & out)
  461. {
  462. out = m_strDetectorID;
  463. return RET_STATUS::RET_SUCCEED;
  464. }
  465. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDateofLastDetectorCalibration(string strSOK)
  466. {
  467. //if (strSOK == "")
  468. //{
  469. // return RET_STATUS::RET_FAILED;
  470. //}
  471. m_strDateofLastDetectorCalibration = strSOK;
  472. m_EventCenter->OnNotify((int)ATTRACTION_SET, "DateofLastDetectorCalibration", m_strDateofLastDetectorCalibration);
  473. return RET_STATUS::RET_SUCCEED;
  474. }
  475. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDateofLastDetectorCalibration(std::string & out)
  476. {
  477. out = m_strDateofLastDetectorCalibration;
  478. return RET_STATUS::RET_SUCCEED;
  479. }
  480. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetTimeofLastDetectorCalibration(string strSOK)
  481. {
  482. //if (strSOK == "")
  483. //{
  484. // return RET_STATUS::RET_FAILED;
  485. //}
  486. m_strTimeofLastDetectorCalibration = strSOK;
  487. m_EventCenter->OnNotify((int)ATTRACTION_SET, "TimeofLastDetectorCalibration", m_strTimeofLastDetectorCalibration);
  488. return RET_STATUS::RET_SUCCEED;
  489. }
  490. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetTimeofLastDetectorCalibration(std::string & out)
  491. {
  492. out = m_strTimeofLastDetectorCalibration;
  493. return RET_STATUS::RET_SUCCEED;
  494. }
  495. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetDetectorConditionsNominalFlag(string strSOK)
  496. {
  497. if (strSOK == "")
  498. {
  499. return RET_STATUS::RET_FAILED;
  500. }
  501. m_strDetectorConditionsNominalFlag = strSOK;
  502. m_EventCenter->OnNotify((int)ATTRACTION_SET, "DetectorConditionsNominalFlag", m_strDetectorConditionsNominalFlag);
  503. return RET_STATUS::RET_SUCCEED;
  504. }
  505. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetDetectorConditionsNominalFlag(std::string & out)
  506. {
  507. out = m_strDetectorConditionsNominalFlag;
  508. return RET_STATUS::RET_SUCCEED;
  509. }
  510. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFPDSensitivity(string strSOK)
  511. {
  512. if (strSOK == "")
  513. {
  514. return RET_STATUS::RET_FAILED;
  515. }
  516. m_strFPDSensitivity = strSOK;
  517. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FPDSensitivity", m_strFPDSensitivity);
  518. return RET_STATUS::RET_SUCCEED;
  519. }
  520. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFPDSensitivityResult(string nStatus)
  521. {
  522. if (nStatus == "")
  523. {
  524. return RET_STATUS::RET_FAILED;
  525. }
  526. m_strFPDSensitivityResult = nStatus;
  527. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FPDSensitivityResult", m_strFPDSensitivityResult);
  528. return RET_STATUS::RET_SUCCEED;
  529. }
  530. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFPDSensitivityResult(std::string& out)
  531. {
  532. out = m_strFPDSensitivityResult;
  533. return RET_STATUS::RET_SUCCEED;
  534. }
  535. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFPDSensitivity(std::string & out)
  536. {
  537. out = m_strFPDSensitivity;
  538. return RET_STATUS::RET_SUCCEED;
  539. }
  540. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetPixelData(string strSOK)
  541. {
  542. if (strSOK == "")
  543. {
  544. return RET_STATUS::RET_FAILED;
  545. }
  546. m_strPixelData = strSOK;
  547. m_EventCenter->OnNotify((int)ATTRACTION_SET, "PixelData", m_strPixelData);
  548. return RET_STATUS::RET_SUCCEED;
  549. }
  550. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetPixelData(std::string & out)
  551. {
  552. out = m_strPixelData;
  553. return RET_STATUS::RET_SUCCEED;
  554. }
  555. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetTargetEXI(string strSOK)
  556. {
  557. if (strSOK == "")
  558. {
  559. return RET_STATUS::RET_FAILED;
  560. }
  561. m_strTargetEXI = strSOK;
  562. m_EventCenter->OnNotify((int)ATTRACTION_SET, "TargetEXI", m_strTargetEXI);
  563. return RET_STATUS::RET_SUCCEED;
  564. }
  565. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetTargetEXI(std::string & out)
  566. {
  567. out = m_strTargetEXI;
  568. return RET_STATUS::RET_SUCCEED;
  569. }
  570. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetSupportDDR(std::string& out)
  571. {
  572. out = m_strSupportDDR;
  573. return RET_STATUS::RET_SUCCEED;
  574. }
  575. RET_STATUS nsFPD::DetectorCtrlUnit::SetSupportDDR(bool bFlag)
  576. {
  577. if (bFlag)
  578. {
  579. m_strSupportDDR = "YES";
  580. }
  581. else
  582. {
  583. m_strSupportDDR = "NO";
  584. }
  585. m_EventCenter->OnNotify((int)ATTRACTION_SET, SupportDDR, m_strSupportDDR);
  586. return RET_STATUS::RET_SUCCEED;
  587. }
  588. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAcqMode(std::string& out)
  589. {
  590. out = m_strAcqMode;
  591. return RET_STATUS::RET_SUCCEED;
  592. }
  593. RET_STATUS nsFPD::DetectorCtrlUnit::SetAcqMode(int nMode)
  594. {
  595. m_strAcqMode = std::to_string(nMode);
  596. m_EventCenter->OnNotify((int)ATTRACTION_SET, CcosAcqMode, m_strAcqMode);
  597. return RET_STATUS::RET_SUCCEED;
  598. }
  599. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetLastError(string nStatus)
  600. {
  601. return RET_STATUS::RET_SUCCEED;
  602. }
  603. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::JSGetLastError(std::string& out)
  604. {
  605. return RET_STATUS::RET_SUCCEED;
  606. }
  607. RET_STATUS DetectorCtrlUnit::RESET()
  608. {
  609. return RET_STATUS::RET_SUCCEED;
  610. }
  611. RET_STATUS DetectorCtrlUnit::WakeupDetector()
  612. {
  613. return RET_STATUS::RET_SUCCEED;
  614. }
  615. RET_STATUS DetectorCtrlUnit::ExitExam()
  616. {
  617. return RET_STATUS::RET_SUCCEED;
  618. }
  619. RET_STATUS DetectorCtrlUnit::AttachConnect()
  620. {
  621. return RET_STATUS::RET_SUCCEED;
  622. }
  623. RET_STATUS DetectorCtrlUnit::CancelAttach()
  624. {
  625. return RET_STATUS::RET_SUCCEED;
  626. }
  627. RET_STATUS DetectorCtrlUnit::ResetConnect()
  628. {
  629. return RET_STATUS::RET_SUCCEED;
  630. }
  631. RET_STATUS DetectorCtrlUnit::DisConnectFPD()
  632. {
  633. return RET_STATUS::RET_SUCCEED;
  634. }
  635. RET_STATUS DetectorCtrlUnit::DisConnectFPDForce()
  636. {
  637. return RET_STATUS::RET_SUCCEED;
  638. }
  639. RET_STATUS DetectorCtrlUnit::UpdateFirmware()
  640. {
  641. return RET_STATUS::RET_SUCCEED;
  642. }
  643. RET_STATUS DetectorCtrlUnit::RecoverImage(bool bRecoverIt)
  644. {
  645. return RET_STATUS::RET_SUCCEED;
  646. }
  647. RET_STATUS DetectorCtrlUnit::GetRecoverImageState(string& strREI)
  648. {
  649. strREI = "";
  650. return RET_STATUS::RET_FAILED;
  651. }
  652. RET_STATUS DetectorCtrlUnit::SaveSensitivity()
  653. {
  654. return RET_STATUS::RET_SUCCEED;
  655. }
  656. RET_STATUS DetectorCtrlUnit::SetXrayOnNum()
  657. {
  658. return RET_STATUS::RET_SUCCEED;
  659. }
  660. RET_STATUS DetectorCtrlUnit::SetExposureTimes(int nTimes)
  661. {
  662. return RET_STATUS::RET_SUCCEED;
  663. }
  664. RET_STATUS DetectorCtrlUnit::JSSetFilterType(std::string in, std::string& out)
  665. {
  666. ResDataObject json;
  667. json.decode(in.c_str());
  668. int nValue = 0;
  669. try
  670. {
  671. nValue = atoi((const char*)json[0]);
  672. }
  673. catch (ResDataObjectExption& e)
  674. {
  675. Error("JSSetFilterType exception %s\n", e.what());
  676. return RET_STATUS::RET_FAILED;
  677. }
  678. SetFilterType(nValue);
  679. return RET_STATUS::RET_SUCCEED;
  680. }
  681. RET_STATUS DetectorCtrlUnit::SetFilterType(int nFilter)
  682. {
  683. return RET_STATUS::RET_SUCCEED;
  684. }
  685. RET_STATUS OEM_IF nsFPD::DetectorCtrlUnit::SetFirmwareStatus(int nStatus)
  686. {
  687. auto fwStatus = std::to_string(nStatus);
  688. m_strFirmwareStatus = fwStatus;
  689. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FirmwareStatus", m_strFirmwareStatus);
  690. return RET_STATUS::RET_SUCCEED;
  691. }
  692. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetFirmwareStatus(std::string& out)
  693. {
  694. out = m_strFirmwareStatus;
  695. return RET_STATUS::RET_SUCCEED;
  696. }
  697. RET_STATUS nsFPD::DetectorCtrlUnit::JSSaveRawDataMode(std::string in, std::string& out)
  698. {
  699. Info("SaveRawDataMode.\n{$}", in.c_str());
  700. ResDataObject jsonInput;
  701. jsonInput.decode(in.c_str());
  702. int nSaveRawDataMode = 0;
  703. try
  704. {
  705. nSaveRawDataMode = (int)jsonInput[0];
  706. }
  707. catch (...)
  708. {
  709. Error("Get SaveRawDataMode parameter error");
  710. return RET_STATUS::RET_FAILED;
  711. }
  712. RET_STATUS nRet = SaveRawDataMode(nSaveRawDataMode);
  713. out = "test@SaveRawDataMode";
  714. return nRet;
  715. }
  716. RET_STATUS nsFPD::DetectorCtrlUnit::SaveRawDataMode(int nSaveRawDataMode)
  717. {
  718. return RET_STATUS::RET_SUCCEED;
  719. }
  720. RET_STATUS nsFPD::DetectorCtrlUnit::JSOfflineFPD(std::string in, std::string& out)
  721. {
  722. Info("OfflineFPD.\n{$}", in.c_str());
  723. ResDataObject jsonInput;
  724. jsonInput.decode(in.c_str());
  725. int nOfflineFPDMode = 0;
  726. try
  727. {
  728. nOfflineFPDMode = (int)jsonInput[0];
  729. }
  730. catch (...)
  731. {
  732. Error("Get OfflineFPD parameter error");
  733. return RET_STATUS::RET_FAILED;
  734. }
  735. RET_STATUS nRet = OfflineFPD(nOfflineFPDMode);
  736. out = "test@OfflineFPD";
  737. return nRet;
  738. }
  739. RET_STATUS nsFPD::DetectorCtrlUnit::OfflineFPD(int nOfflineFPDMode)
  740. {
  741. return RET_STATUS::RET_SUCCEED;
  742. }
  743. RET_STATUS nsFPD::DetectorCtrlUnit::JSOnlineFPD(std::string in, std::string& out)
  744. {
  745. Info("OnlineFPD.\n{$}", in.c_str());
  746. ResDataObject jsonInput;
  747. jsonInput.decode(in.c_str());
  748. int nOnlineFPDMode = 0;
  749. try
  750. {
  751. nOnlineFPDMode = (int)jsonInput[0];
  752. }
  753. catch (...)
  754. {
  755. Error("Get OnlineFPD parameter error");
  756. return RET_STATUS::RET_FAILED;
  757. }
  758. RET_STATUS nRet = OnlineFPD(nOnlineFPDMode);
  759. out = "test@OnlineFPD";
  760. return nRet;
  761. }
  762. RET_STATUS nsFPD::DetectorCtrlUnit::OnlineFPD(int nOnlineFPDMode)
  763. {
  764. return RET_STATUS::RET_SUCCEED;
  765. }
  766. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetAutonumousImageList(std::string in, std::string& out)
  767. {
  768. Info("GetAutonumousImageList.\n{$}", in.c_str());
  769. ResDataObject jsonInput;
  770. vector<string> vecAutonumousList;
  771. ResDataObject jsonAutonumousList;
  772. jsonInput.decode(in.c_str());
  773. int nDetectorID = 0;
  774. try
  775. {
  776. nDetectorID = (int)jsonInput[0];
  777. }
  778. catch (...)
  779. {
  780. Error("Get GetAutonumousImageList parameter error");
  781. return RET_STATUS::RET_FAILED;
  782. }
  783. RET_STATUS nRet = GetAutonumousImageList(nDetectorID, vecAutonumousList);
  784. size_t nPatientNum = vecAutonumousList.size();
  785. Info("Get patient number: {$}", nPatientNum);
  786. for (int i = 0; i < nPatientNum; ++i)
  787. {
  788. char tempKey[32];
  789. sprintf_s(tempKey, 32, "%d", i);
  790. jsonAutonumousList.add(tempKey, vecAutonumousList[i].c_str());
  791. }
  792. out = jsonAutonumousList.encode();
  793. Info("Out List.\n{$}", out.c_str());
  794. return RET_STATUS::RET_SUCCEED;
  795. }
  796. RET_STATUS nsFPD::DetectorCtrlUnit::GetAutonumousImageList(int nDetectorID, vector<string>& AutonumousList)
  797. {
  798. return RET_STATUS::RET_SUCCEED;
  799. }
  800. RET_STATUS nsFPD::DetectorCtrlUnit::JSRemoveAutonumousImageList(std::string in, std::string& out)
  801. {
  802. Info("RemoveAutonumousImageList.\n{$}", in.c_str());
  803. ResDataObject jsonInput;
  804. jsonInput.decode(in.c_str());
  805. string strMeta;
  806. try
  807. {
  808. strMeta = (string)jsonInput[0];
  809. }
  810. catch (...)
  811. {
  812. Error("Get RemoveAutonumousImageList parameter error");
  813. return RET_STATUS::RET_FAILED;
  814. }
  815. RET_STATUS nRet = RemoveAutonumousImageList(strMeta);
  816. out = "test@RemoveAutonumousImageList";
  817. return nRet;
  818. }
  819. RET_STATUS nsFPD::DetectorCtrlUnit::RemoveAutonumousImageList(string strMeta)
  820. {
  821. return RET_STATUS::RET_SUCCEED;
  822. }
  823. RET_STATUS nsFPD::DetectorCtrlUnit::JSRemoveAutonumousAll(std::string in, std::string& out)
  824. {
  825. Info("RemoveAutonumousAll.\n{$}", in.c_str());
  826. /*ResDataObject jsonInput;
  827. jsonInput.decode(in.c_str());
  828. int nDetectorID = 0;
  829. try
  830. {
  831. nDetectorID = (int)jsonInput[0];
  832. }
  833. catch (...)
  834. {
  835. Error("Get RemoveAutonumousAll parameter error");
  836. return RET_STATUS::RET_FAILED;
  837. }*/
  838. RET_STATUS nRet = RemoveAutonumousAll();
  839. out = "test@RemoveAutonumousAll";
  840. return nRet;
  841. }
  842. RET_STATUS nsFPD::DetectorCtrlUnit::RemoveAutonumousAll()
  843. {
  844. return RET_STATUS::RET_SUCCEED;
  845. }
  846. RET_STATUS nsFPD::DetectorCtrlUnit::JSGetImageMetaData(std::string in, std::string& out)
  847. {
  848. Info("GetImageMetaData.\n{$}", in.c_str());
  849. ResDataObject jsonInput;
  850. jsonInput.decode(in.c_str());
  851. string strMeta;
  852. try
  853. {
  854. strMeta = (string)jsonInput[0];
  855. }
  856. catch (...)
  857. {
  858. Error("Get GetImageMetaData parameter error");
  859. return RET_STATUS::RET_FAILED;
  860. }
  861. RET_STATUS nRet = GetImageMetaData(strMeta);
  862. out = "test@RemoveAutonumousImageList";
  863. return nRet;
  864. }
  865. RET_STATUS nsFPD::DetectorCtrlUnit::GetImageMetaData(string strMetaData)
  866. {
  867. return RET_STATUS::RET_SUCCEED;
  868. }
  869. RET_STATUS nsFPD::DetectorCtrlUnit::JSExportAutonumousAll(std::string in, std::string& out)
  870. {
  871. Info("ExportAutonumousAll.\n{$}", in.c_str());
  872. RET_STATUS nRet = ExportAutonumousAll();
  873. out = "test@ExportAutonumousAll";
  874. return RET_STATUS::RET_SUCCEED;
  875. }
  876. RET_STATUS nsFPD::DetectorCtrlUnit::ExportAutonumousAll()
  877. {
  878. return RET_STATUS::RET_SUCCEED;
  879. }