DIOS.Dev.FPD.CalibUnit.cpp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  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. // CalibUnit
  11. //-----------------------------------------------------------------------------
  12. nsFPD::CalibUnit::CalibUnit()
  13. {
  14. m_CalibMode = CCOS_CALIBRATION_MODE_ZSKK;
  15. m_CurrentCalibType = CCOS_CALIBRATION_TYPE_NONE;
  16. m_CalibStatus = CCOS_CALIBRATION_STATUS_MAX;
  17. m_strCalibProgress = "0";
  18. m_strUploadCalibrationFilesResult = "0";
  19. m_strSaveCalibrationFileFinish = "0";
  20. }
  21. nsFPD::CalibUnit:: ~CalibUnit()
  22. {
  23. }
  24. void OEM_IF nsFPD::CalibUnit::SetEventCenter(std::shared_ptr <CCOS::Dev::IOEventCenter> EventCenter)
  25. {
  26. m_EventCenter = EventCenter;
  27. }
  28. RET_STATUS nsFPD::CalibUnit::JSSetSID(std::string in, std::string& out)
  29. {
  30. Info("JSSetSID. {$}", in.c_str());
  31. ResDataObject json;
  32. json.decode(in.c_str());
  33. int mode = json[0];
  34. return SetSID(mode);
  35. }
  36. RET_STATUS nsFPD::CalibUnit::JSActiveCalibration(std::string in, std::string & out)
  37. {
  38. ResDataObject json;
  39. json.decode(in.c_str());
  40. int mode = json[0];
  41. Info("JSActiveCalibration. {$}", in.c_str());
  42. Info("Calibrationtype is {$}", mode);
  43. out = "test@ActiveCalibration";
  44. CCOS_CALIBRATION_TYPE type = CCOS_CALIBRATION_TYPE_NONE;
  45. if (mode == CCOS_CALIBRATION_TYPE_DARK)
  46. {
  47. type = CCOS_CALIBRATION_TYPE_DARK;
  48. }
  49. else if (mode == CCOS_CALIBRATION_TYPE_XRAY)
  50. {
  51. type = CCOS_CALIBRATION_TYPE_XRAY;
  52. }
  53. RET_STATUS bret = ActiveCalibration(type);
  54. if (RET_STATUS::RET_SUCCEED == bret)
  55. {
  56. m_CurrentCalibType = type;
  57. }
  58. return bret;
  59. }
  60. RET_STATUS nsFPD::CalibUnit::JSGetRequestedDose(std::string in, std::string& out)
  61. {
  62. Info("JSGetRequestedDose");
  63. string strDoseInfo = "";
  64. RET_STATUS bret = GetRequestedDose(strDoseInfo);
  65. if (RET_STATUS::RET_SUCCEED == bret)
  66. {
  67. out = strDoseInfo;
  68. }
  69. return bret;
  70. }
  71. RET_STATUS nsFPD::CalibUnit::JSSetRequestedDose(std::string in, std::string& out)
  72. {
  73. Info("JSSetRequestedDose. \n{$}", in.c_str());
  74. RET_STATUS nRet = SetRequestedDose(in);
  75. return nRet;
  76. }
  77. RET_STATUS nsFPD::CalibUnit::SetRequestedDose(std::string in)
  78. {
  79. return RET_STATUS::RET_SUCCEED;
  80. }
  81. RET_STATUS nsFPD::CalibUnit::JSPrepareCalibration(std::string in, std::string& out)
  82. {
  83. Info("JSPrepareCalibration.");
  84. return PrepareCalibration();
  85. }
  86. RET_STATUS nsFPD::CalibUnit::JSStartCalibration(std::string in, std::string& out)
  87. {
  88. Info("JSStartCalibration.");
  89. return StartCalibration();
  90. }
  91. RET_STATUS OEM_IF nsFPD::CalibUnit::PauseCalibration()
  92. {
  93. Info("PauseCalibration.");
  94. return RET_STATUS::RET_SUCCEED;
  95. }
  96. RET_STATUS nsFPD::CalibUnit::JSStopCalibration(std::string in, std::string& out)
  97. {
  98. Info("JSStopCalibration.");
  99. return StopCalibration();
  100. }
  101. RET_STATUS nsFPD::CalibUnit::JSSetCorrectionType(std::string in, std::string & out)
  102. {
  103. return RET_STATUS::RET_SUCCEED;
  104. }
  105. RET_STATUS nsFPD::CalibUnit::JSGetCalibStatus(std::string & out)
  106. {
  107. auto szFDinfo = std::to_string(m_CalibStatus);
  108. out = szFDinfo;
  109. return RET_STATUS::RET_SUCCEED;
  110. }
  111. RET_STATUS nsFPD::CalibUnit::SetCalibrationStatus(string in)
  112. {
  113. Info("SetCalibrationStatus in:{$}", in);
  114. if (in == "")
  115. {
  116. return RET_STATUS::RET_FAILED;
  117. }
  118. int nCalibrationStatus = atoi(in.c_str());
  119. string strTemp = "";
  120. switch (nCalibrationStatus)
  121. {
  122. case CCOS_CALIBRATION_STATUS_ERROR:
  123. strTemp = "ZSKK_FPD_STATE_ERROR";
  124. break;
  125. case CCOS_CALIBRATION_STATUS_STANDBY:
  126. strTemp = "ZSKK_FPD_STATE_STANDBY";
  127. break;
  128. case CCOS_CALIBRATION_STATUS_ACTIVE:
  129. strTemp = "ZSKK_FPD_STATE_ACTIVE";
  130. break;
  131. case CCOS_CALIBRATION_STATUS_RUNNING:
  132. strTemp = "ZSKK_FPD_STATE_RUNNING";
  133. break;
  134. case CCOS_CALIBRATION_STATUS_PAUSE:
  135. strTemp = "ZSKK_FPD_STATE_PAUSE";
  136. break;
  137. case CCOS_CALIBRATION_STATUS_PREPARE:
  138. strTemp = "ZSKK_FPD_STATE_PREPARE";
  139. break;
  140. default:
  141. break;
  142. }
  143. m_CalibStatus = (CCOS_CALIBRATION_STATUS)nCalibrationStatus;
  144. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::CalibrationStatus, in);
  145. Info("CalibrationStatus: {$}",strTemp.c_str());
  146. return RET_STATUS::RET_SUCCEED;
  147. }
  148. CCOS_CALIBRATION_STATUS OEM_IF nsFPD::CalibUnit::GetCalibrationStatus()
  149. {
  150. return m_CalibStatus;
  151. }
  152. RET_STATUS nsFPD::CalibUnit::JSGetCalibProgress(std::string & out)
  153. {
  154. out = m_strCalibProgress;
  155. return RET_STATUS::RET_SUCCEED;
  156. }
  157. RET_STATUS nsFPD::CalibUnit::SetCalibrationProgress(string in)
  158. {
  159. Info("SetCalibrationProgress in:{$}", in);
  160. if (in == "")
  161. {
  162. return RET_STATUS::RET_FAILED;
  163. }
  164. m_strCalibProgress = in;
  165. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::CalibrationProgress, m_strCalibProgress);
  166. Info("CalibrationProgress: {$}", m_strCalibProgress);
  167. return RET_STATUS::RET_SUCCEED;
  168. }
  169. CCOS_CALIBRATION_TYPE OEM_IF nsFPD::CalibUnit::GetCalibrationType()
  170. {
  171. return m_CurrentCalibType;
  172. }
  173. RET_STATUS nsFPD::CalibUnit::JSUploadCalibrationFiles(std::string in, std::string & out)
  174. {
  175. ResDataObject json;
  176. json.decode(in.c_str());
  177. string mode = "";
  178. try
  179. {
  180. mode = (string)json[0];
  181. }
  182. catch (...)
  183. {
  184. return RET_STATUS::RET_FAILED;
  185. }
  186. return UploadCalibrationFiles(mode);
  187. }
  188. RET_STATUS nsFPD::CalibUnit::JSGetUploadCalibrationFilesResult(std::string & out)
  189. {
  190. out = m_strUploadCalibrationFilesResult;
  191. return RET_STATUS::RET_SUCCEED;
  192. }
  193. RET_STATUS nsFPD::CalibUnit::SetUploadCalibrationFilesResult(string in)
  194. {
  195. Info("SetUploadCalibrationFilesResult in:{$}", in);
  196. if (in == "")
  197. {
  198. return RET_STATUS::RET_FAILED;
  199. }
  200. m_strUploadCalibrationFilesResult = in;
  201. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::UploadCalibrationFilesResult, m_strUploadCalibrationFilesResult);
  202. Info("UploadCalibrationFilesResult:{$}", m_strUploadCalibrationFilesResult);
  203. return RET_STATUS::RET_SUCCEED;
  204. }
  205. RET_STATUS nsFPD::CalibUnit::JSGetSupportCalibrationType(std::string& out)
  206. {
  207. ResDataObject tmp;
  208. if (Support_DarkCalib())
  209. {
  210. tmp.add("Offset", CCOS_CALIBRATION_TYPE_DARK);
  211. }
  212. if (Support_XrayCalib())
  213. {
  214. tmp.add("Gain", CCOS_CALIBRATION_TYPE_XRAY);
  215. }
  216. if (tmp.size() > 0)
  217. {
  218. out = tmp.encode();
  219. }
  220. else
  221. {
  222. out = "";
  223. return RET_STATUS::RET_NOSUPPORT;
  224. }
  225. return RET_STATUS::RET_SUCCEED;
  226. }
  227. bool nsFPD::CalibUnit::Support_DarkCalib()
  228. {
  229. return false;
  230. }
  231. bool nsFPD::CalibUnit::Support_XrayCalib()
  232. {
  233. return false;
  234. }
  235. RET_STATUS nsFPD::CalibUnit::JSGetHaveImgCalibration(std::string& out)
  236. {
  237. if (Support_HaveImageCalib())
  238. {
  239. out = "1";
  240. }
  241. else
  242. {
  243. out = "0";
  244. }
  245. Info("JSGetHaveImgCalibration out:{$}",out.c_str());
  246. return RET_STATUS::RET_SUCCEED;
  247. }
  248. bool nsFPD::CalibUnit::Support_HaveImageCalib()
  249. {
  250. return false;
  251. }
  252. RET_STATUS nsFPD::CalibUnit::JSGetCalibrationStep(std::string in, std::string& out)
  253. {
  254. Info("JSGetCalibrationStep. \n{$}", in.c_str());
  255. int nDetectorID = 0;
  256. string strCalibrationStepInfo;
  257. RET_STATUS nRet = GetCalibrationStep(nDetectorID, strCalibrationStepInfo);
  258. out = strCalibrationStepInfo;
  259. return nRet;
  260. }
  261. RET_STATUS nsFPD::CalibUnit::GetCalibrationStep(int nDetectorID, std::string& strCalibrationStepInfo)
  262. {
  263. return RET_STATUS::RET_SUCCEED;
  264. }
  265. RET_STATUS nsFPD::CalibUnit::JSAcceptCalibration(std::string in, std::string& out)
  266. {
  267. RET_STATUS nRet = AcceptCalibration();
  268. return nRet;
  269. }
  270. RET_STATUS nsFPD::CalibUnit::AcceptCalibration()
  271. {
  272. return RET_STATUS::RET_SUCCEED;
  273. }
  274. RET_STATUS nsFPD::CalibUnit::JSRejectCalibration(std::string in, std::string& out)
  275. {
  276. RET_STATUS nRet = RejectCalibration();
  277. return nRet;
  278. }
  279. RET_STATUS nsFPD::CalibUnit::RejectCalibration()
  280. {
  281. return RET_STATUS::RET_SUCCEED;
  282. }
  283. RET_STATUS nsFPD::CalibUnit::JSSaveCalibrationFile(std::string in, std::string& out)
  284. {
  285. Info("JSSaveCalibrationFile.\n{$}", in.c_str());
  286. ResDataObject jsonInput;
  287. jsonInput.decode(in.c_str());
  288. bool bSaveFlag = false;
  289. try
  290. {
  291. bSaveFlag = (bool)jsonInput[0];
  292. }
  293. catch (...)
  294. {
  295. Error("JSSaveCalibrationFile parameter error");
  296. return RET_STATUS::RET_FAILED;
  297. }
  298. RET_STATUS nRet = SaveCalibrationFile(bSaveFlag);
  299. return nRet;
  300. }
  301. RET_STATUS nsFPD::CalibUnit::SaveCalibrationFile(bool bSaveFlag)
  302. {
  303. return RET_STATUS::RET_SUCCEED;
  304. }
  305. RET_STATUS nsFPD::CalibUnit::JSGetSaveCalibrationFileFinish(std::string& out)
  306. {
  307. out = m_strSaveCalibrationFileFinish;
  308. return RET_STATUS::RET_SUCCEED;
  309. }
  310. void OEM_IF nsFPD::CalibUnit::SetSaveCalibrationFileFinish(bool bResult)
  311. {
  312. string strFPDInfo = std::to_string(bResult);
  313. m_strSaveCalibrationFileFinish = strFPDInfo;
  314. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::SaveCalibrationFileFinish, m_strSaveCalibrationFileFinish);
  315. Info("SetSaveCalibrationFileFinish. {$}", strFPDInfo);
  316. }
  317. RET_STATUS nsFPD::CalibUnit::JSStartOffset(std::string in, std::string& out)
  318. {
  319. FINFO("JSStartOffset: {$}", in.c_str());
  320. ResDataObject jsonInput;
  321. jsonInput.decode(in.c_str());
  322. bool isAll = false;
  323. try
  324. {
  325. isAll = (bool)jsonInput[0];
  326. }
  327. catch (...)
  328. {
  329. FERROR("JSStartOffset parameter error");
  330. return RET_STATUS::RET_FAILED;
  331. }
  332. return StartOffset(isAll);
  333. }
  334. RET_STATUS nsFPD::CalibUnit::StartOffset(bool isAll)
  335. {
  336. return RET_STATUS::RET_SUCCEED;
  337. }
  338. RET_STATUS nsFPD::CalibUnit::JSAbortOffset(std::string in, std::string& out)
  339. {
  340. FINFO("JSAbortOffset");
  341. return AbortOffset();
  342. }
  343. RET_STATUS nsFPD::CalibUnit::AbortOffset()
  344. {
  345. return RET_STATUS::RET_SUCCEED;
  346. }
  347. RET_STATUS nsFPD::CalibUnit::JSGetOffsetStatus(std::string& out)
  348. {
  349. out = m_strOffsetStatus;
  350. return RET_STATUS::RET_SUCCEED;
  351. }
  352. RET_STATUS nsFPD::CalibUnit::SetOffsetStatus(std::string in)
  353. {
  354. FINFO("SetOffsetStatus in:{$}", in);
  355. m_strOffsetStatus = in;
  356. m_EventCenter->OnNotify((int)ATTRACTION_SET, "OffsetStatus", m_strOffsetStatus);
  357. return RET_STATUS::RET_SUCCEED;
  358. }
  359. RET_STATUS nsFPD::CalibUnit::JSGetOffsetCounts(std::string& out)
  360. {
  361. out = m_strOffsetCounts;
  362. return RET_STATUS::RET_SUCCEED;
  363. }
  364. RET_STATUS nsFPD::CalibUnit::SetOffsetCounts(std::string in)
  365. {
  366. FINFO("SetOffsetCounts in:{$}", in);
  367. m_strOffsetCounts = in;
  368. m_EventCenter->OnNotify((int)ATTRACTION_SET, "OffsetCounts", m_strOffsetCounts);
  369. return RET_STATUS::RET_SUCCEED;
  370. }
  371. RET_STATUS nsFPD::CalibUnit::JSGetOffsetProgress(std::string& out)
  372. {
  373. out = m_strOffsetProgress;
  374. return RET_STATUS::RET_SUCCEED;
  375. }
  376. RET_STATUS nsFPD::CalibUnit::SetOffsetProgress(std::string in)
  377. {
  378. FINFO("SetOffsetProgress in:{$}", in);
  379. m_strOffsetProgress = in;
  380. m_EventCenter->OnNotify((int)ATTRACTION_SET, "OffsetProgress", m_strOffsetProgress);
  381. return RET_STATUS::RET_SUCCEED;
  382. }
  383. RET_STATUS nsFPD::CalibUnit::JSGetOffsetInterval(std::string& out)
  384. {
  385. out = m_strOffsetInterval;
  386. return RET_STATUS::RET_SUCCEED;
  387. }
  388. RET_STATUS nsFPD::CalibUnit::SetOffsetInterval(std::string in)
  389. {
  390. FINFO("SetOffsetInterval in:{$}", in);
  391. m_strOffsetInterval = in;
  392. return RET_STATUS::RET_SUCCEED;
  393. }
  394. RET_STATUS nsFPD::CalibUnit::JSUpdateOffsetInterval(std::string in, std::string& out)
  395. {
  396. FINFO("JSUpdateOffsetInterval in:{$}", in);
  397. m_strOffsetInterval = in;
  398. out = m_strOffsetInterval;
  399. return RET_STATUS::RET_SUCCEED;
  400. }
  401. RET_STATUS nsFPD::CalibUnit::JSGetCalibMode(std::string& out)
  402. {
  403. auto szOut = std::to_string(m_CalibMode);
  404. out = szOut;
  405. return RET_STATUS::RET_SUCCEED;
  406. }
  407. RET_STATUS nsFPD::CalibUnit::SetCalibMode(string in)
  408. {
  409. FINFO("SetCalibMode in:{$}", in);
  410. if (in == "")
  411. {
  412. return RET_STATUS::RET_FAILED;
  413. }
  414. int nCalibMode = std::stoi(in);
  415. m_CalibMode = (CCOS_CALIBRATION_MODE)nCalibMode;
  416. return RET_STATUS::RET_SUCCEED;
  417. }
  418. RET_STATUS nsFPD::CalibUnit::JSUpdateCalibMode(std::string in, std::string& out)
  419. {
  420. FINFO("JSUpdateCalibMode in:{$}", in);
  421. if (in == "")
  422. {
  423. return RET_STATUS::RET_FAILED;
  424. }
  425. int nCalibMode = std::stoi(in);
  426. m_CalibMode = (CCOS_CALIBRATION_MODE)nCalibMode;
  427. return UpdateCalibMode(m_CalibMode);
  428. }
  429. RET_STATUS nsFPD::CalibUnit::UpdateCalibMode(CCOS_CALIBRATION_MODE eCalibMode)
  430. {
  431. return RET_STATUS::RET_SUCCEED;
  432. }
  433. RET_STATUS nsFPD::CalibUnit::JSGetLastCalibrationDate(std::string& out)
  434. {
  435. out = m_strLastCalibrationDate;
  436. return RET_STATUS::RET_SUCCEED;
  437. }
  438. RET_STATUS nsFPD::CalibUnit::SetLastCalibrationDate(string in)
  439. {
  440. FINFO("SetLastCalibrationDate in:{$}", in);
  441. if (in == "")
  442. {
  443. return RET_STATUS::RET_FAILED;
  444. }
  445. m_strLastCalibrationDate = in;
  446. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::LastCalibrationDate, m_strLastCalibrationDate);
  447. return RET_STATUS::RET_SUCCEED;
  448. }
  449. RET_STATUS nsFPD::CalibUnit::JSUpdateLastCalibrationDate(std::string in, std::string& out)
  450. {
  451. FINFO("JSUpdateLastCalibrationDate in:{$}", in);
  452. if (in == "")
  453. {
  454. return RET_STATUS::RET_FAILED;
  455. }
  456. m_strLastCalibrationDate = in;
  457. return UpdateLastCalibrationDate(m_strLastCalibrationDate);
  458. }
  459. RET_STATUS nsFPD::CalibUnit::UpdateLastCalibrationDate(std::string in)
  460. {
  461. return RET_STATUS::RET_SUCCEED;
  462. }
  463. RET_STATUS nsFPD::CalibUnit::JSGetCalibrationFileExpireTime(std::string& out)
  464. {
  465. out = m_strCalibrationFileExpireTime;
  466. return RET_STATUS::RET_SUCCEED;
  467. }
  468. RET_STATUS nsFPD::CalibUnit::SetCalibrationFileExpireTime(string in)
  469. {
  470. FINFO("SetCalibrationFileExpireTime in:{$}", in);
  471. if (in == "")
  472. {
  473. return RET_STATUS::RET_FAILED;
  474. }
  475. m_strCalibrationFileExpireTime = in;
  476. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::CalibrationFileExpireTime, m_strCalibrationFileExpireTime);
  477. return RET_STATUS::RET_SUCCEED;
  478. }
  479. RET_STATUS nsFPD::CalibUnit::JSUpdateCalibrationFileExpireTime(std::string in, std::string& out)
  480. {
  481. FINFO("JSUpdateCalibrationFileExpireTime in:{$}", in);
  482. if (in == "")
  483. {
  484. return RET_STATUS::RET_FAILED;
  485. }
  486. m_strCalibrationFileExpireTime = in;
  487. return UpdateCalibrationFileExpireTime(m_strCalibrationFileExpireTime);
  488. }
  489. RET_STATUS nsFPD::CalibUnit::UpdateCalibrationFileExpireTime(std::string in)
  490. {
  491. return RET_STATUS::RET_SUCCEED;
  492. }