DIOS.Dev.FPD.SyncUnit.cpp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  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* //mLog::gLogger;
  9. //-----------------------------------------------------------------------------
  10. // SyncUnit
  11. //-----------------------------------------------------------------------------
  12. nsFPD::SyncUnit::SyncUnit()
  13. {
  14. m_strReady4EXP = "0";
  15. m_strXwindowStatus = "0";
  16. m_strXrayON = "0";
  17. m_strConnectStatus = "0";
  18. m_strImageReadingStatus = "0";
  19. }
  20. nsFPD::SyncUnit:: ~SyncUnit()
  21. {
  22. }
  23. void OEM_IF nsFPD::SyncUnit::SetEventCenter(std::shared_ptr <CCOS::Dev::IOEventCenter> EventCenter)
  24. {
  25. m_EventCenter = EventCenter;
  26. }
  27. RET_STATUS nsFPD::SyncUnit::JSSetXwindowSize(std::string in, std::string & out)
  28. {
  29. //mLog::Info("JSSetXwindowSize. {$}",in.c_str());
  30. ResDataObject json;
  31. json.decode(in.c_str());
  32. string strXwindow = (string)json[0];
  33. float XwindowSize = stof(strXwindow.c_str());
  34. return SetXwindow(XwindowSize);
  35. }
  36. RET_STATUS nsFPD::SyncUnit::JSSetFrameRate(std::string in, std::string& out)
  37. {
  38. //mLog::Info("JSSetFrameRate. {$}",in.c_str());
  39. ResDataObject json;
  40. json.decode(in.c_str());
  41. string strFrameRate = (string)json[0];
  42. float FrameRate = stof(strFrameRate.c_str());
  43. return SetFrameRate(FrameRate);
  44. }
  45. RET_STATUS nsFPD::SyncUnit::JSSetSyncMode(std::string in, std::string & out)
  46. {
  47. //mLog::Info("JSSetSyncMode. {$}",in.c_str());
  48. ResDataObject json;
  49. json.decode(in.c_str());
  50. int mode = json[0];
  51. int trigger = json[1];
  52. SYNC_MODE syncMode;
  53. HARDWARE_TRIGGER_MODE HWtrigger;
  54. if (mode == SYNC_SOFTWARE)
  55. {
  56. syncMode = SYNC_SOFTWARE;
  57. }
  58. else if (mode == SYNC_HARDWARE)
  59. {
  60. syncMode = SYNC_HARDWARE;
  61. }
  62. else if (mode == SYNC_AED)
  63. {
  64. syncMode = SYNC_AED;
  65. }
  66. else if (mode == SYNC_HARDWARE_DIRECT)
  67. {
  68. syncMode = SYNC_HARDWARE_DIRECT;
  69. }
  70. else
  71. {
  72. return RET_STATUS::RET_INVALID;
  73. }
  74. if (trigger == HW_TRIGGER_NONE || trigger == HW_TRIGGER_MAX)
  75. {
  76. if (mode == SYNC_HARDWARE)
  77. {
  78. return RET_STATUS::RET_INVALID;
  79. }
  80. HWtrigger = HW_TRIGGER_NONE;
  81. }
  82. else if (trigger == HW_TRIGGER_INTERNAL)
  83. {
  84. HWtrigger = HW_TRIGGER_INTERNAL;
  85. }
  86. else if (trigger == HW_TRIGGER_EXTERNAL)
  87. {
  88. HWtrigger = HW_TRIGGER_EXTERNAL;
  89. }
  90. else
  91. {
  92. return RET_STATUS::RET_INVALID;
  93. }
  94. return SetSyncMode(syncMode, HWtrigger);
  95. }
  96. RET_STATUS nsFPD::SyncUnit::JSGetSyncMode(std::string& out)
  97. {
  98. SYNC_MODE syncMode = SYNC_MAX;
  99. GetSyncMode(syncMode);
  100. auto str = std::to_string(syncMode);
  101. out = str;
  102. return RET_STATUS::RET_SUCCEED;
  103. }
  104. RET_STATUS nsFPD::SyncUnit::JSPrepareAcquisition(std::string in, std::string& out)
  105. {
  106. //mLog::Info("JSPrepareAcquisition.");
  107. return PrepareAcquisition();
  108. }
  109. RET_STATUS nsFPD::SyncUnit::JSStartAcquisition(std::string in, std::string& out)
  110. {
  111. //mLog::Info("JSStartAcquisition.");
  112. ResDataObject json;
  113. json.decode(in.c_str());
  114. if (json.GetFirstOf("P0") >= 0)
  115. {
  116. string strAcqMode = json["P0"];
  117. return StartAcquisition(strAcqMode);
  118. }
  119. else
  120. {
  121. //mLog::Info("JSStartAcquisition param in is null but it's not error!");
  122. return StartAcquisition();
  123. }
  124. }
  125. RET_STATUS nsFPD::SyncUnit::JSStopAcquisition(std::string in, std::string& out)
  126. {
  127. //mLog::Info("JSStopAcquisition.");
  128. return StopAcquisition();
  129. }
  130. RET_STATUS nsFPD::SyncUnit::JSGetFPDReady(std::string & out)
  131. {
  132. out = m_strReady4EXP;
  133. return RET_STATUS::RET_SUCCEED;
  134. }
  135. RET_STATUS nsFPD::SyncUnit::JSSetFPDReady(std::string in)
  136. {
  137. //mLog::Info("JSSetFPDReady in:{$}", in);
  138. if (in == "")
  139. {
  140. return RET_STATUS::RET_FAILED;
  141. }
  142. m_strReady4EXP = in;
  143. return RET_STATUS::RET_SUCCEED;
  144. }
  145. RET_STATUS nsFPD::SyncUnit::JSGetConnectStatus(std::string& out)
  146. {
  147. out = m_strConnectStatus;
  148. return RET_STATUS::RET_SUCCEED;
  149. }
  150. RET_STATUS nsFPD::SyncUnit::JSGetXrayON(std::string& out)
  151. {
  152. out = m_strXrayON;
  153. return RET_STATUS::RET_SUCCEED;
  154. }
  155. void OEM_NOTIFY nsFPD::SyncUnit::FPDReadyNotify(bool bReady)
  156. {
  157. if (bReady)
  158. {
  159. m_strReady4EXP = "1";
  160. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::FPDReadyStatus, m_strReady4EXP);
  161. }
  162. else
  163. {
  164. m_strReady4EXP = "0";
  165. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::FPDReadyStatus, m_strReady4EXP);
  166. }
  167. }
  168. void OEM_NOTIFY nsFPD::SyncUnit::FPDConnectStatusNotify(bool bConnect)
  169. {
  170. if (bConnect)
  171. {
  172. m_strConnectStatus = "2";
  173. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::DetectorConnectStatus, m_strConnectStatus);
  174. }
  175. else
  176. {
  177. m_strConnectStatus = "0";
  178. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::DetectorConnectStatus, m_strConnectStatus);
  179. }
  180. }
  181. RET_STATUS nsFPD::SyncUnit::JSGetXWindowStatus(std::string & out)
  182. {
  183. out = m_strXwindowStatus;
  184. return RET_STATUS::RET_SUCCEED;
  185. }
  186. RET_STATUS nsFPD::SyncUnit::JSSetXWindowStatus(std::string in)
  187. {
  188. //mLog::Info("JSSetXWindowStatus in:{$}", in);
  189. if (in == "")
  190. {
  191. return RET_STATUS::RET_FAILED;
  192. }
  193. m_strXwindowStatus = in;
  194. return RET_STATUS::RET_SUCCEED;
  195. }
  196. void OEM_NOTIFY nsFPD::SyncUnit::XWindowOnNotify()
  197. {
  198. auto szFDinfo = std::to_string(XWINDOW_ON);
  199. m_strXwindowStatus = szFDinfo;
  200. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::XwindowStatus, m_strXwindowStatus);
  201. }
  202. void OEM_NOTIFY nsFPD::SyncUnit::XWindowOffNotify()
  203. {
  204. auto szFDinfo = std::to_string(XWINDOW_OFF);
  205. m_strXwindowStatus = szFDinfo;
  206. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::XwindowStatus, m_strXwindowStatus);
  207. }
  208. void OEM_NOTIFY nsFPD::SyncUnit::FakeEIPONNotify()
  209. {
  210. m_EventCenter->OnNotify((int)ATTRACTION_SET, "FakeEIPON", "1");
  211. }
  212. void OEM_NOTIFY nsFPD::SyncUnit::XrayONNotify()
  213. {
  214. m_strXrayON = "1";
  215. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::XrayON, "1");
  216. }
  217. void OEM_NOTIFY nsFPD::SyncUnit::XrayOffNNotify()
  218. {
  219. m_strXrayON = "0";
  220. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::XrayON, "0");
  221. }
  222. RET_STATUS nsFPD::SyncUnit::JSGetImageReadingStatus(std::string & out)
  223. {
  224. out = m_strImageReadingStatus;
  225. return RET_STATUS::RET_SUCCEED;
  226. }
  227. RET_STATUS nsFPD::SyncUnit::JSSetImageReadingStatus(std::string in)
  228. {
  229. //mLog::Info("JSSetImageReadingStatus in:{$}", in);
  230. if (in == "")
  231. {
  232. return RET_STATUS::RET_FAILED;
  233. }
  234. m_strImageReadingStatus = in;
  235. return RET_STATUS::RET_SUCCEED;
  236. }
  237. void OEM_NOTIFY nsFPD::SyncUnit::ImageReadingNotify()
  238. {
  239. std::string str = "0";
  240. m_EventCenter->OnNotify((int)ATTRACTION_SET, AttrKey::ImageReadingStatus, str);
  241. }
  242. RET_STATUS nsFPD::SyncUnit::GetSyncMode(SYNC_MODE& nSyncMode)
  243. {
  244. return RET_STATUS::RET_SUCCEED;
  245. }
  246. RET_STATUS nsFPD::SyncUnit::JSGetExpReadyStatus(std::string& out)
  247. {
  248. out = m_strFPDExpReady;
  249. //mLog::Info("JSGetExpReadyStatus {$}", out);
  250. return RET_STATUS::RET_SUCCEED;
  251. }
  252. void OEM_NOTIFY nsFPD::SyncUnit::ExpReadyNotify(int nMillisecond)
  253. {
  254. auto szFDinfo = std::to_string(nMillisecond);
  255. m_strFPDExpReady = szFDinfo;
  256. m_EventCenter->OnNotify((int)ATTRACTION_MSG, AttrKey::FPDExpReady, m_strFPDExpReady);
  257. }
  258. RET_STATUS nsFPD::SyncUnit::SetFrameRate(float fFrameRate)
  259. {
  260. return RET_STATUS::RET_SUCCEED;
  261. }