DIOS.Dev.FPD.SyncUnit.cpp 6.3 KB

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