DIOS.Dev.FPD.CalibUnit.cpp 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  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_CurrentCalibType = CCOS_CALIBRATION_TYPE_NONE;
  15. m_CalibStatus = CCOS_CALIBRATION_STATUS_MAX;
  16. m_strCalibProgress = "0";
  17. m_strUploadCalibrationFilesResult = "0";
  18. m_strSaveCalibrationFileFinish = "0";
  19. }
  20. nsFPD::CalibUnit:: ~CalibUnit()
  21. {
  22. }
  23. void OEM_IF nsFPD::CalibUnit::SetEventCenter(std::shared_ptr <CCOS::Dev::IOEventCenter> EventCenter)
  24. {
  25. m_EventCenter = EventCenter;
  26. }
  27. RET_STATUS nsFPD::CalibUnit::JSSetSID(std::string in, std::string& out)
  28. {
  29. Info("SetSID. {$}", in.c_str());
  30. ResDataObject json;
  31. json.decode(in.c_str());
  32. int mode = json[0];
  33. return SetSID(mode);
  34. }
  35. RET_STATUS nsFPD::CalibUnit::JSActiveCalibration(std::string in, std::string & out)
  36. {
  37. ResDataObject json;
  38. json.decode(in.c_str());
  39. int mode = json[0];
  40. Info("ActiveCalibration. {$}", in.c_str());
  41. Info("Calibrationtype is {$}", mode);
  42. out = "test@ActiveCalibration";
  43. CCOS_CALIBRATION_TYPE type = CCOS_CALIBRATION_TYPE_NONE;
  44. if (mode == CCOS_CALIBRATION_TYPE_DARK)
  45. {
  46. type = CCOS_CALIBRATION_TYPE_DARK;
  47. }
  48. else if (mode == CCOS_CALIBRATION_TYPE_XRAY)
  49. {
  50. type = CCOS_CALIBRATION_TYPE_XRAY;
  51. }
  52. RET_STATUS bret = ActiveCalibration(type);
  53. if (RET_STATUS::RET_SUCCEED == bret)
  54. {
  55. m_CurrentCalibType = type;
  56. }
  57. return bret;
  58. }
  59. RET_STATUS nsFPD::CalibUnit::JSGetRequestedDose(std::string in, std::string& out)
  60. {
  61. Info("GetRequestedDose");
  62. string strDoseInfo = "";
  63. RET_STATUS bret = GetRequestedDose(strDoseInfo);
  64. if (RET_STATUS::RET_SUCCEED == bret)
  65. {
  66. out = strDoseInfo;
  67. }
  68. return bret;
  69. }
  70. RET_STATUS nsFPD::CalibUnit::JSSetRequestedDose(std::string in, std::string& out)
  71. {
  72. Info("SetRequestedDose. \n{$}", in.c_str());
  73. RET_STATUS nRet = SetRequestedDose(in);
  74. return nRet;
  75. }
  76. RET_STATUS nsFPD::CalibUnit::SetRequestedDose(std::string in)
  77. {
  78. return RET_STATUS::RET_SUCCEED;
  79. }
  80. RET_STATUS nsFPD::CalibUnit::JSPrepareCalibration(std::string in, std::string& out)
  81. {
  82. Info("PrepareCalibration.");
  83. return PrepareCalibration();
  84. }
  85. RET_STATUS nsFPD::CalibUnit::JSStartCalibration(std::string in, std::string& out)
  86. {
  87. Info("StartCalibration.");
  88. return StartCalibration();
  89. }
  90. RET_STATUS OEM_IF nsFPD::CalibUnit::PauseCalibration()
  91. {
  92. Info("PauseCalibration.");
  93. return RET_STATUS::RET_SUCCEED;
  94. }
  95. RET_STATUS nsFPD::CalibUnit::JSStopCalibration(std::string in, std::string& out)
  96. {
  97. Info("StopCalibration.");
  98. return StopCalibration();
  99. }
  100. RET_STATUS nsFPD::CalibUnit::JSSetCorrectionType(std::string in, std::string & out)
  101. {
  102. return RET_STATUS::RET_SUCCEED;
  103. }
  104. RET_STATUS nsFPD::CalibUnit::JSGetCalibStatus(std::string & out)
  105. {
  106. auto szFDinfo = std::to_string(m_CalibStatus);
  107. out = szFDinfo;
  108. return RET_STATUS::RET_SUCCEED;
  109. }
  110. void OEM_IF nsFPD::CalibUnit::SetCalibrationStatus(CCOS_CALIBRATION_STATUS Status)
  111. {
  112. string strTemp = "";
  113. switch (Status)
  114. {
  115. case CCOS_CALIBRATION_STATUS_ERROR:
  116. strTemp = "ZSKK_FPD_STATE_ERROR";
  117. break;
  118. case CCOS_CALIBRATION_STATUS_STANDBY:
  119. strTemp = "ZSKK_FPD_STATE_STANDBY";
  120. break;
  121. case CCOS_CALIBRATION_STATUS_ACTIVE:
  122. strTemp = "ZSKK_FPD_STATE_ACTIVE";
  123. break;
  124. case CCOS_CALIBRATION_STATUS_RUNNING:
  125. strTemp = "ZSKK_FPD_STATE_RUNNING";
  126. break;
  127. case CCOS_CALIBRATION_STATUS_PAUSE:
  128. strTemp = "ZSKK_FPD_STATE_PAUSE";
  129. break;
  130. case CCOS_CALIBRATION_STATUS_PREPARE:
  131. strTemp = "ZSKK_FPD_STATE_PREPARE";
  132. break;
  133. default:
  134. break;
  135. }
  136. m_CalibStatus = Status;
  137. auto szFDinfo = std::to_string(Status);
  138. std::string str = szFDinfo;
  139. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::CalibrationStatus, str);
  140. Info("SetCalibrationStatus. {$}",strTemp.c_str());
  141. return;
  142. }
  143. CCOS_CALIBRATION_STATUS OEM_IF nsFPD::CalibUnit::GetCalibrationStatus()
  144. {
  145. return m_CalibStatus;
  146. }
  147. RET_STATUS nsFPD::CalibUnit::JSGetCalibProgress(std::string & out)
  148. {
  149. out = m_strCalibProgress;
  150. return RET_STATUS::RET_SUCCEED;
  151. }
  152. void OEM_IF nsFPD::CalibUnit::SetCalibrationProgress(DWORD progress)
  153. {
  154. auto szFDinfo = std::to_string(progress);
  155. m_strCalibProgress = szFDinfo;
  156. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::CalibrationProgress, m_strCalibProgress);
  157. Info("SetCalibrationProgress. {$}",progress);
  158. return;
  159. }
  160. CCOS_CALIBRATION_TYPE OEM_IF nsFPD::CalibUnit::GetCalibrationType()
  161. {
  162. return m_CurrentCalibType;
  163. }
  164. RET_STATUS nsFPD::CalibUnit::JSUploadCalibrationFiles(std::string in, std::string & out)
  165. {
  166. ResDataObject json;
  167. json.decode(in.c_str());
  168. string mode = "";
  169. try{
  170. mode = (string)json[0];
  171. }
  172. catch (...)
  173. {
  174. return RET_STATUS::RET_FAILED;
  175. }
  176. return UploadCalibrationFiles(mode);
  177. }
  178. RET_STATUS nsFPD::CalibUnit::JSGetUploadCalibrationFilesResult(std::string & out)
  179. {
  180. out = m_strUploadCalibrationFilesResult;
  181. return RET_STATUS::RET_SUCCEED;
  182. }
  183. void OEM_IF nsFPD::CalibUnit::SetUploadCalibrationFilesResult(bool bResult)
  184. {
  185. auto szFDinfo = std::to_string(bResult);
  186. m_strUploadCalibrationFilesResult = szFDinfo;
  187. m_EventCenter->OnNotify((int)ATTRACTION_SET, "UploadCalibrationFilesResult", m_strUploadCalibrationFilesResult);
  188. Info("SetUploadCalibrationFilesResult. {$}", bResult);
  189. return;
  190. }
  191. RET_STATUS nsFPD::CalibUnit::JSGetSupportCalibrationType(std::string& out)
  192. {
  193. ResDataObject tmp;
  194. if (Support_DarkCalib())
  195. {
  196. tmp.add("Offset", CCOS_CALIBRATION_TYPE_DARK);
  197. }
  198. if (Support_XrayCalib())
  199. {
  200. tmp.add("Gain", CCOS_CALIBRATION_TYPE_XRAY);
  201. }
  202. if (tmp.size() > 0)
  203. {
  204. out = tmp.encode();
  205. }
  206. else
  207. {
  208. out = "";
  209. return RET_STATUS::RET_NOSUPPORT;
  210. }
  211. return RET_STATUS::RET_SUCCEED;
  212. }
  213. bool nsFPD::CalibUnit::Support_DarkCalib()
  214. {
  215. return false;
  216. }
  217. bool nsFPD::CalibUnit::Support_XrayCalib()
  218. {
  219. return false;
  220. }
  221. RET_STATUS nsFPD::CalibUnit::JSGetHaveImgCalibration(std::string& out)
  222. {
  223. if (Support_HaveImageCalib())
  224. {
  225. out = "1";
  226. }
  227. else
  228. {
  229. out = "0";
  230. }
  231. Info("JSGetHaveImgCalibration out:{$}",out.c_str());
  232. return RET_STATUS::RET_SUCCEED;
  233. }
  234. bool nsFPD::CalibUnit::Support_HaveImageCalib()
  235. {
  236. return false;
  237. }
  238. RET_STATUS nsFPD::CalibUnit::JSGetCalibrationStep(std::string in, std::string& out)
  239. {
  240. Info("GetCalibrationStep. \n{$}", in.c_str());
  241. ResDataObject jsonInput;
  242. jsonInput.decode(in.c_str());
  243. int nDetectorID = 0;
  244. string strCalibrationStepInfo;
  245. try
  246. {
  247. //
  248. }
  249. catch (...)
  250. {
  251. Error("GetCalibrationStep parameter error");
  252. return RET_STATUS::RET_FAILED;
  253. }
  254. RET_STATUS nRet = GetCalibrationStep(nDetectorID, strCalibrationStepInfo);
  255. out = strCalibrationStepInfo;
  256. return nRet;
  257. }
  258. RET_STATUS nsFPD::CalibUnit::GetCalibrationStep(int nDetectorID, std::string& strCalibrationStepInfo)
  259. {
  260. return RET_STATUS::RET_SUCCEED;
  261. }
  262. RET_STATUS nsFPD::CalibUnit::JSAcceptCalibration(std::string in, std::string& out)
  263. {
  264. RET_STATUS nRet = AcceptCalibration();
  265. return nRet;
  266. }
  267. RET_STATUS nsFPD::CalibUnit::AcceptCalibration()
  268. {
  269. return RET_STATUS::RET_SUCCEED;
  270. }
  271. RET_STATUS nsFPD::CalibUnit::JSRejectCalibration(std::string in, std::string& out)
  272. {
  273. RET_STATUS nRet = RejectCalibration();
  274. return nRet;
  275. }
  276. RET_STATUS nsFPD::CalibUnit::RejectCalibration()
  277. {
  278. return RET_STATUS::RET_SUCCEED;
  279. }
  280. RET_STATUS nsFPD::CalibUnit::JSSaveCalibrationFile(std::string in, std::string& out)
  281. {
  282. Info("SaveCalibrationFile.\n{$}", in.c_str());
  283. ResDataObject jsonInput;
  284. jsonInput.decode(in.c_str());
  285. bool bSaveFlag = false;
  286. try
  287. {
  288. bSaveFlag = (bool)jsonInput[0];
  289. }
  290. catch (...)
  291. {
  292. Error("SaveCalibrationFile parameter error");
  293. return RET_STATUS::RET_FAILED;
  294. }
  295. RET_STATUS nRet = SaveCalibrationFile(bSaveFlag);
  296. return nRet;
  297. }
  298. RET_STATUS nsFPD::CalibUnit::SaveCalibrationFile(bool bSaveFlag)
  299. {
  300. return RET_STATUS::RET_SUCCEED;
  301. }
  302. RET_STATUS nsFPD::CalibUnit::JSGetSaveCalibrationFileFinish(std::string& out)
  303. {
  304. out = m_strSaveCalibrationFileFinish;
  305. return RET_STATUS::RET_SUCCEED;
  306. }
  307. void OEM_IF nsFPD::CalibUnit::SetSaveCalibrationFileFinish(bool bResult)
  308. {
  309. string strFPDInfo = std::to_string(bResult);
  310. m_strSaveCalibrationFileFinish = strFPDInfo;
  311. m_EventCenter->OnNotify((int)ATTRACTION_SET, "SaveCalibrationFileFinish", m_strSaveCalibrationFileFinish);
  312. Info("SetSaveCalibrationFileFinish. {$}", strFPDInfo);
  313. return;
  314. }