DIOS.Dev.Machinery.Model.cpp 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022
  1. #include "stdafx.h"
  2. #include "DIOS.Dev.Machinery.Model.h"
  3. #include "Helper.JSON.hpp"
  4. using namespace DIOS::Dev::Detail;
  5. using namespace DIOS::Dev::Detail::MachineryECOM;
  6. namespace nsMach = DIOS::Dev::Detail::MachineryECOM;
  7. //-----------------------------------------------------------------------------
  8. // CollimatorUnit
  9. //-----------------------------------------------------------------------------
  10. CollimatorUnit::CollimatorUnit()
  11. :m_pMachineryDriver(nullptr)
  12. {
  13. }
  14. CollimatorUnit::CollimatorUnit(MachineryECOMDriver* pMachineryDriver)
  15. :m_pMachineryDriver(pMachineryDriver)
  16. {
  17. }
  18. CollimatorUnit:: ~CollimatorUnit()
  19. {
  20. }
  21. //-----------------------------------------------------------------------------
  22. // ExposureSwitchUnit
  23. //-----------------------------------------------------------------------------
  24. ExposureSwitchUnit::ExposureSwitchUnit()
  25. :m_pMachineryDriver(nullptr)
  26. {
  27. m_bOneHSWStatus = new BaseJsonDataObject<bool>;
  28. m_bTwoHSWStatus = new BaseJsonDataObject<bool>;
  29. m_MachineryHandSwtichState.add(AttrKey::MachineryHandSwitchState, 0);
  30. }
  31. ExposureSwitchUnit::ExposureSwitchUnit(MachineryECOMDriver* pMachineryDriver)
  32. :m_pMachineryDriver(pMachineryDriver)
  33. {
  34. m_bOneHSWStatus = new BaseJsonDataObject<bool>;
  35. m_bTwoHSWStatus = new BaseJsonDataObject<bool>;
  36. m_MachineryHandSwtichState.add(AttrKey::MachineryHandSwitchState, 0);
  37. }
  38. ExposureSwitchUnit::~ExposureSwitchUnit()
  39. {
  40. }
  41. ResDataObject ExposureSwitchUnit::GetMachineryHandSwtichState()
  42. {
  43. return m_MachineryHandSwtichState;
  44. }
  45. //-----------------------------------------------------------------------------
  46. // MotionControlUnit
  47. //-----------------------------------------------------------------------------
  48. MotionControlUnit::MotionControlUnit()
  49. :m_pMachineryDriver(nullptr)
  50. {
  51. m_MachineryReady.add(AttrKey::MachineryReady, false);
  52. m_MachineryAlignStatus.add(AttrKey::MachineryAlignStatus, false);
  53. m_MachineryProjectionNumber.add(AttrKey::MachineryProjectionNumber, 1);
  54. m_MachineryTID.add(AttrKey::MachineryTID, 0);
  55. m_MachinerySID.add(AttrKey::MachinerySID, 120.0);
  56. m_MachineryScanAngle.add(AttrKey::MachineryScanAngle, 30);
  57. m_MachineryScanDirection.add(AttrKey::MachineryScanDirection, -1);
  58. m_MachineryScanGeometry.add(AttrKey::MachineryScanGeometry, "linear");
  59. m_MachineryTomoMotionLimitation.add(AttrKey::MachineryTomoMotionLimitation, 0);
  60. }
  61. MotionControlUnit::MotionControlUnit(MachineryECOMDriver* pMachineryDriver)
  62. : m_pMachineryDriver(pMachineryDriver)
  63. {
  64. m_MachineryReady.add(AttrKey::MachineryReady, false);
  65. m_MachineryAlignStatus.add(AttrKey::MachineryAlignStatus, false);
  66. m_MachineryProjectionNumber.add(AttrKey::MachineryProjectionNumber, 1);
  67. m_MachineryTID.add(AttrKey::MachineryTID, 0);
  68. m_MachinerySID.add(AttrKey::MachinerySID, 120.0);
  69. m_MachineryScanAngle.add(AttrKey::MachineryScanAngle, 30);
  70. m_MachineryScanDirection.add(AttrKey::MachineryScanDirection, -1);
  71. m_MachineryScanGeometry.add(AttrKey::MachineryScanGeometry, "linear");
  72. m_MachineryTomoMotionLimitation.add(AttrKey::MachineryTomoMotionLimitation, 0);
  73. }
  74. MotionControlUnit::~MotionControlUnit()
  75. {
  76. }
  77. ResDataObject MotionControlUnit::GetMachineryReadyStatus()
  78. {
  79. return m_MachineryReady[AttrKey::MachineryReady];
  80. }
  81. ResDataObject MotionControlUnit::GetMachineryAlignStatus()
  82. {
  83. return m_MachineryAlignStatus[AttrKey::MachineryAlignStatus];
  84. }
  85. ResDataObject MotionControlUnit::GetMachineryProjectionNumber()
  86. {
  87. return m_MachineryProjectionNumber[AttrKey::MachineryProjectionNumber];
  88. }
  89. ResDataObject MotionControlUnit::GetMachineryTID()
  90. {
  91. return m_MachineryTID[AttrKey::MachineryTID];
  92. }
  93. ResDataObject MotionControlUnit::GetMachinerySID()
  94. {
  95. return m_MachinerySID[AttrKey::MachinerySID];
  96. }
  97. ResDataObject MotionControlUnit::GetMachineryScanAngle()
  98. {
  99. return m_MachineryScanAngle[AttrKey::MachineryScanAngle];
  100. }
  101. ResDataObject MotionControlUnit::GetMachineryScanDirection()
  102. {
  103. return m_MachineryScanDirection[AttrKey::MachineryScanDirection];
  104. }
  105. ResDataObject MotionControlUnit::GetMachineryScanGeometry()
  106. {
  107. return m_MachineryScanGeometry[AttrKey::MachineryScanGeometry];
  108. }
  109. ResDataObject MotionControlUnit::GetMachineryTomoMotionLimitationStatus()
  110. {
  111. return m_MachineryTomoMotionLimitation[AttrKey::MachineryTomoMotionLimitation];
  112. }
  113. //-----------------------------------------------------------------------------
  114. // MachineryModel
  115. //-----------------------------------------------------------------------------
  116. MachineryModel::MachineryModel()
  117. :m_pUnitMotionControl(nullptr),
  118. m_pUnitCollimator(nullptr),
  119. m_pUnitExposureSwitch(nullptr)
  120. {
  121. }
  122. MachineryModel::~MachineryModel()
  123. {
  124. }
  125. void MachineryModel::SetCollimatorUnit(CollimatorUnit* pCollimatorUnit)
  126. {
  127. m_pUnitCollimator = pCollimatorUnit;
  128. }
  129. void MachineryModel::SetExposureSwitchUnit(ExposureSwitchUnit* pExposureSwitchUnit)
  130. {
  131. m_pUnitExposureSwitch = pExposureSwitchUnit;
  132. }
  133. void MachineryModel::SetMotionControlUnit(MotionControlUnit* pMotionControlUnit)
  134. {
  135. m_pUnitMotionControl = pMotionControlUnit;
  136. }
  137. void MachineryModel::Register(Dispatch* Dispatch)
  138. {
  139. Dispatch->Get.Push(AttrKey::MachineryReady, this, &MachineryModel::JSGetMachineryReadyStatus);
  140. Dispatch->Get.Push(AttrKey::MachineryAlignStatus, this, &MachineryModel::JSGetMachineryAlignStatus);
  141. Dispatch->Get.Push(AttrKey::MachineryProjectionNumber, this, &MachineryModel::JSGetMachineryProjectionNumber);
  142. Dispatch->Get.Push(AttrKey::MachineryTID, this, &MachineryModel::JSGetMachineryTID);
  143. Dispatch->Get.Push(AttrKey::MachinerySID, this, &MachineryModel::JSGetMachinerySID);
  144. Dispatch->Get.Push(AttrKey::MachineryScanAngle, this, &MachineryModel::JSGetMachineryScanAngle);
  145. Dispatch->Get.Push(AttrKey::MachineryScanDirection, this, &MachineryModel::JSGetMachineryScanDirection);
  146. Dispatch->Get.Push(AttrKey::MachineryScanGeometry, this, &MachineryModel::JSGetMachineryScanGeometry);
  147. Dispatch->Get.Push(AttrKey::MachineryHandSwitchState, this, &MachineryModel::JSGetMachineryHandSwitchState);
  148. Dispatch->Get.Push(AttrKey::MachineryTomoMotionLimitation, this, &MachineryModel::JSGetMachineryTomoMotionLimitationStatus);
  149. Dispatch->Action.Push(ActionKey::MachinerySetExpMode, this, &MachineryModel::JSMachinerySetExpMode);
  150. Dispatch->Action.Push(ActionKey::MachinerySetWorkstation, this, &MachineryModel::JSMachinerySetWorkstation);
  151. Dispatch->Action.Push(ActionKey::MachineryFramePrep, this, &MachineryModel::JSMachineryFramePrep);
  152. Dispatch->Action.Push(ActionKey::MachineryFrameReady, this, &MachineryModel::JSMachineryFrameReady);
  153. Dispatch->Action.Push(ActionKey::MachineryFrameAcq, this, &MachineryModel::JSMachineryFrameAcq);
  154. Dispatch->Action.Push(ActionKey::MachineryFrameStart, this, &MachineryModel::JSMachineryFrameStart);
  155. Dispatch->Action.Push(ActionKey::MachineryFrameIn, this, &MachineryModel::JSMachineryFrameIn);
  156. Dispatch->Action.Push(ActionKey::MachineryFrameEnd, this, &MachineryModel::JSMachineryFrameEnd);
  157. Dispatch->Action.Push(ActionKey::MachineryFramePost, this, &MachineryModel::JSMachineryFramePost);
  158. Dispatch->Action.Push(ActionKey::MachineryFrameError, this, &MachineryModel::JSMachineryFrameError);
  159. Dispatch->Action.Push(ActionKey::MachinerySeqError, this, &MachineryModel::JSMachinerySeqError);
  160. Dispatch->Action.Push(ActionKey::MachinerySeqEnd, this, &MachineryModel::JSMachinerySeqEnd);
  161. Dispatch->Action.Push(ActionKey::MachinerySetTechParamsInfo, this, &MachineryModel::JSMachinerySetTechParamsInfo);
  162. Dispatch->Action.Push(ActionKey::MachinerySetFrameRate, this, &MachineryModel::JSMachinerySetFrameRate);
  163. Dispatch->Action.Push(ActionKey::MachineryReset, this, &MachineryModel::JSMachineryReset);
  164. Dispatch->Action.Push(ActionKey::MachineryGetReadyState, this, &MachineryModel::JSMachineryGetReadyState);
  165. Dispatch->Action.Push(ActionKey::MachineryEnterCalibration, this, &MachineryModel::JSMachineryEnterCalibration);
  166. Dispatch->Action.Push(ActionKey::MachineryExitCalibration, this, &MachineryModel::JSMachineryExitCalibration);
  167. Dispatch->Action.Push(ActionKey::MachineryCalMotionTubeLineV, this, &MachineryModel::JSMachineryCalMotionTubeLineV);
  168. Dispatch->Action.Push(ActionKey::MachineryCalMotionTubeAngleRotate, this, &MachineryModel::JSMachineryCalMotionTubeAngleRotate);
  169. Dispatch->Action.Push(ActionKey::MachineryCalMotionTubeAngleFindeAxisZ, this, &MachineryModel::JSMachineryCalMotionTubeAngleFindeAxisZ);
  170. Dispatch->Action.Push(ActionKey::MachineryCalGetADofTubeLineV, this, &MachineryModel::JSMachineryCalGetADofTubeLineV);
  171. Dispatch->Action.Push(ActionKey::MachineryCalGetADofDetector, this, &MachineryModel::JSMachineryCalGetADofDetector);
  172. Dispatch->Action.Push(ActionKey::MachineryCalGetADofTubeAngle, this, &MachineryModel::JSMachineryCalGetADofTubeAngle);
  173. Dispatch->Action.Push(ActionKey::MachineryCalGetEncoderofTubeLineV, this, &MachineryModel::JSMachineryCalGetEncoderofTubeLineV);
  174. Dispatch->Action.Push(ActionKey::MachineryCalGetEncoderOfTubeAngle, this, &MachineryModel::JSMachineryCalGetEncoderOfTubeAngle);
  175. Dispatch->Action.Push(ActionKey::MachineryCalSaveParamsofTubeLiveV, this, &MachineryModel::JSMachineryCalSaveParamsofTubeLiveV);
  176. Dispatch->Action.Push(ActionKey::MachineryCalSaveParamsofTubeAngle, this, &MachineryModel::JSMachineryCalSaveParamsofTubeAngle);
  177. Dispatch->Action.Push(ActionKey::MachineryCalSaveParamsofDetector, this, &MachineryModel::JSMachineryCalSaveParamsofDetector);
  178. Dispatch->Action.Push(ActionKey::MachineryCalSaveEncoderCorrectonofTubeLiveV, this, &MachineryModel::JSMachineryCalSaveEncoderCorrectonofTubeLiveV);
  179. Dispatch->Action.Push(ActionKey::MachineryCalSetADLimitationofEncoder, this, &MachineryModel::JSMachineryCalSetADLimitationofEncoder);
  180. Dispatch->Action.Push(ActionKey::MachinerySetSvoStatus, this, &MachineryModel::JSMachinerySetSvoStatus);
  181. Dispatch->Action.Push(ActionKey::MachineryAutoADCalibration, this, &MachineryModel::JSMachineryAutoADCalibration);
  182. Dispatch->Action.Push(ActionKey::MachineryCenterAdjust, this, &MachineryModel::JSMachineryCenterAdjust);
  183. Dispatch->Action.Push(ActionKey::MachineryQueryAlignStatus, this, &MachineryModel::JSMachineryQueryAlignStatus);
  184. Dispatch->Action.Push(ActionKey::MachineryGetSEQResource, this, &MachineryModel::JSMachineryGetSEQResource);
  185. Dispatch->Action.Push(ActionKey::MachineryEnterMechnicalSelfTest, this, &MachineryModel::JSMachineryEnterMechnicalSelfTest);
  186. Dispatch->Action.Push(ActionKey::MachineryExitMechnicalSelfTest, this, &MachineryModel::JSMachineryExitMechnicalSelfTest);
  187. Dispatch->Action.Push(ActionKey::MachineryStartMechnicalSelfTest, this, &MachineryModel::JSMachineryStartMechnicalSelfTest);
  188. Dispatch->Action.Push(ActionKey::MachineryParkingTo, this, &MachineryModel::JSMachineryParkingTo);
  189. Dispatch->Action.Push(ActionKey::MachineryActiveTubeAngleZAxisClear, this, &MachineryModel::JSMachineryActiveTubeAngleZAxisClear);
  190. Dispatch->Action.Push(ActionKey::MachineryCancelTubeAngleZAxisClear, this, &MachineryModel::JSMachineryCancelTubeAngleZAxisClear);
  191. Dispatch->Action.Push(ActionKey::MachineryActiveTubeHeightZAxisClear, this, &MachineryModel::JSMachineryActiveTubeHeightZAxisClear);
  192. Dispatch->Action.Push(ActionKey::MachineryCancelTubeHeightZAxisClear, this, &MachineryModel::JSMachineryCancelTubeHeightZAxisClear);
  193. Dispatch->Action.Push(ActionKey::MachineryTubeAngleRotateToZAxis, this, &MachineryModel::JSMachineryTubeAngleRotateToZAxis);
  194. Dispatch->Action.Push(ActionKey::MachineryTubeHeightMoveToZAxis, this, &MachineryModel::JSMachineryTubeHeightMoveToZAxis);
  195. Dispatch->Action.Push(ActionKey::MachineryForceStopAllMotion, this, &MachineryModel::JSMachineryForceStopAllMotion);
  196. Dispatch->Action.Push(ActionKey::MachineryGetTomoResult, this, &MachineryModel::JSMachineryGetTomoResult);
  197. Dispatch->Action.Push(ActionKey::MachineryRecalculateTomoMotionParam, this, &MachineryModel::JSMachineryRecalculateTomoMotionParam);
  198. Dispatch->Action.Push(ActionKey::MachineryCalMotionTubeLineH, this, &MachineryModel::JSMachineryCalMotionTubeLineH);
  199. Dispatch->Action.Push(ActionKey::MachineryCalGetADofTubeLineH, this, &MachineryModel::JSMachineryCalGetADofTubeLineH);
  200. Dispatch->Action.Push(ActionKey::MachineryCalGetEncoderofTubeLineH, this, &MachineryModel::JSMachineryCalGetEncoderofTubeLineH);
  201. Dispatch->Action.Push(ActionKey::MachineryCalGetADofHorizontalDetector, this, &MachineryModel::JSMachineryCalGetADofHorizontalDetector);
  202. Dispatch->Action.Push(ActionKey::MachineryCalSaveParamsofTubeLiveH, this, &MachineryModel::JSMachineryCalSaveParamsofTubeLiveH);
  203. Dispatch->Action.Push(ActionKey::MachineryCalSaveParamsofDetectorHorizontal, this, &MachineryModel::JSMachineryCalSaveParamsofDetectorHorizontal);
  204. Dispatch->Action.Push(ActionKey::MachineryCalSaveResetLowPosition, this, &MachineryModel::JSMachineryCalSaveResetLowPosition);
  205. Dispatch->Action.Push(ActionKey::MachineryCalSaveResetEcoderZeroPosition, this, &MachineryModel::JSMachineryCalSaveResetEcoderZeroPosition);
  206. Dispatch->Action.Push(ActionKey::MachineryCalGetResetPosParam, this, &MachineryModel::JSMachineryCalGetResetPosParam);
  207. }
  208. ResDataObject MachineryModel::GetDataObj(string in)
  209. {
  210. ResDataObject json;
  211. json.decode(in.c_str());
  212. if (json.size() > 0)
  213. {
  214. return json[0];
  215. }
  216. else
  217. {
  218. return json;
  219. }
  220. }
  221. void MachineryModel::ResObjectToJson(ResDataObject obj, std::string& out)
  222. {
  223. ResDataObject json;
  224. json.add("P0", obj);
  225. out = json.encode();
  226. }
  227. //nDev::RET_STATUS MachineryModel::JSMachinerySelectExamMode(std::string in, std::string& out)
  228. //{
  229. // if (m_pUnitMotionControl)
  230. // {
  231. // return m_pUnitMotionControl->SelectExamMode(GetDataObj(in));
  232. // }
  233. //
  234. // return RET_STATUS::RET_FAILED;
  235. //}
  236. //
  237. //nDev::RET_STATUS MachineryModel::JSMachinerySetExamInfo(std::string in, std::string& out)
  238. //{
  239. // if (m_pUnitMotionControl)
  240. // {
  241. // return m_pUnitMotionControl->SetExamInfo(GetDataObj(in));
  242. // }
  243. //
  244. // return RET_STATUS::RET_FAILED;
  245. //}
  246. nDev::RET_STATUS MachineryModel::JSMachinerySetExpMode(std::string in, std::string& out)
  247. {
  248. if (m_pUnitMotionControl)
  249. {
  250. return m_pUnitMotionControl->SetExpMode((const char*)GetDataObj(in));
  251. }
  252. return RET_STATUS::RET_FAILED;
  253. }
  254. nDev::RET_STATUS MachineryModel::JSMachinerySetWorkstation(std::string in, std::string& out)
  255. {
  256. if (m_pUnitMotionControl)
  257. {
  258. return m_pUnitMotionControl->SetWorkStation((const char*)GetDataObj(in));
  259. }
  260. return RET_STATUS::RET_FAILED;
  261. }
  262. nDev::RET_STATUS MachineryModel::JSMachineryFramePrep(std::string in, std::string& out)
  263. {
  264. if (m_pUnitMotionControl)
  265. {
  266. return m_pUnitMotionControl->FramePrep();
  267. }
  268. return RET_STATUS::RET_FAILED;
  269. }
  270. nDev::RET_STATUS MachineryModel::JSMachineryFrameReady(std::string in, std::string& out)
  271. {
  272. if (m_pUnitMotionControl)
  273. {
  274. return m_pUnitMotionControl->FrameReady();
  275. }
  276. return RET_STATUS::RET_FAILED;
  277. }
  278. nDev::RET_STATUS MachineryModel::JSMachineryFrameAcq(std::string in, std::string& out)
  279. {
  280. if (m_pUnitMotionControl)
  281. {
  282. return m_pUnitMotionControl->FrameAcq();
  283. }
  284. return RET_STATUS::RET_FAILED;
  285. }
  286. nDev::RET_STATUS MachineryModel::JSMachineryFrameStart(std::string in, std::string& out)
  287. {
  288. if (m_pUnitMotionControl)
  289. {
  290. return m_pUnitMotionControl->FrameStart();
  291. }
  292. return RET_STATUS::RET_FAILED;
  293. }
  294. nDev::RET_STATUS MachineryModel::JSMachineryFrameIn(std::string in, std::string& out)
  295. {
  296. if (m_pUnitMotionControl)
  297. {
  298. return m_pUnitMotionControl->FrameIn();
  299. }
  300. return RET_STATUS::RET_FAILED;
  301. }
  302. nDev::RET_STATUS MachineryModel::JSMachineryFrameEnd(std::string in, std::string& out)
  303. {
  304. if (m_pUnitMotionControl)
  305. {
  306. return m_pUnitMotionControl->FrameEnd();
  307. }
  308. return RET_STATUS::RET_FAILED;
  309. }
  310. nDev::RET_STATUS MachineryModel::JSMachineryFramePost(std::string in, std::string& out)
  311. {
  312. if (m_pUnitMotionControl)
  313. {
  314. return m_pUnitMotionControl->FramePost();
  315. }
  316. return RET_STATUS::RET_FAILED;
  317. }
  318. nDev::RET_STATUS MachineryModel::JSMachineryFrameError(std::string in, std::string& out)
  319. {
  320. if (m_pUnitMotionControl)
  321. {
  322. return m_pUnitMotionControl->FrameError();
  323. }
  324. return RET_STATUS::RET_FAILED;
  325. }
  326. nDev::RET_STATUS MachineryModel::JSMachinerySeqError(std::string in, std::string& out)
  327. {
  328. if (m_pUnitMotionControl)
  329. {
  330. return m_pUnitMotionControl->SeqError();
  331. }
  332. return RET_STATUS::RET_FAILED;
  333. }
  334. nDev::RET_STATUS MachineryModel::JSMachinerySeqEnd(std::string in, std::string& out)
  335. {
  336. if (m_pUnitMotionControl)
  337. {
  338. return m_pUnitMotionControl->SeqEnd();
  339. }
  340. return RET_STATUS::RET_FAILED;
  341. }
  342. nDev::RET_STATUS MachineryModel::JSMachinerySetTechParamsInfo(std::string in, std::string& out)
  343. {
  344. if (m_pUnitMotionControl)
  345. {
  346. return m_pUnitMotionControl->SetTechParamsInfo(GetDataObj(in));
  347. }
  348. return RET_STATUS::RET_FAILED;
  349. }
  350. nDev::RET_STATUS MachineryModel::JSMachinerySetFrameRate(std::string in, std::string& out)
  351. {
  352. if (m_pUnitMotionControl)
  353. {
  354. float fFramerate = (FLOAT)GetDataObj(in);
  355. return m_pUnitMotionControl->SetFrameRate(fFramerate);
  356. }
  357. return RET_STATUS::RET_FAILED;
  358. }
  359. nDev::RET_STATUS MachineryModel::JSMachineryReset(std::string in, std::string& out)
  360. {
  361. if (m_pUnitMotionControl)
  362. {
  363. return m_pUnitMotionControl->Reset();
  364. }
  365. return RET_STATUS::RET_FAILED;
  366. }
  367. nDev::RET_STATUS MachineryModel::JSMachineryGetReadyState(std::string in, std::string& out)
  368. {
  369. if (m_pUnitMotionControl)
  370. {
  371. bool bReady = m_pUnitMotionControl->GetMachineryReadyState();
  372. out = ToJSON(bReady);
  373. }
  374. return RET_STATUS::RET_SUCCEED;
  375. }
  376. nDev::RET_STATUS MachineryModel::JSGetMachineryTomoMotionLimitationStatus(std::string& out)
  377. {
  378. if (m_pUnitMotionControl)
  379. {
  380. ResDataObject res;
  381. res = m_pUnitMotionControl->GetMachineryTomoMotionLimitationState();
  382. out = (const char*)res;
  383. }
  384. return nDev::RET_STATUS::RET_SUCCEED;
  385. }
  386. nDev::RET_STATUS MachineryModel::JSMachineryEnterCalibration(std::string in, std::string& out)
  387. {
  388. if (m_pUnitMotionControl)
  389. {
  390. return m_pUnitMotionControl->EnterCalibration();
  391. }
  392. return RET_STATUS::RET_FAILED;
  393. }
  394. nDev::RET_STATUS MachineryModel::JSMachineryExitCalibration(std::string in, std::string& out)
  395. {
  396. if (m_pUnitMotionControl)
  397. {
  398. return m_pUnitMotionControl->ExitCalibration();
  399. }
  400. return RET_STATUS::RET_FAILED;
  401. }
  402. nDev::RET_STATUS MachineryModel::JSMachineryCalMotionTubeLineV(std::string in, std::string& out)
  403. {
  404. if (m_pUnitMotionControl)
  405. {
  406. return m_pUnitMotionControl->CalMotionTubeLineV(GetDataObj(in));
  407. }
  408. return RET_STATUS::RET_FAILED;
  409. }
  410. nDev::RET_STATUS MachineryModel::JSMachineryCalMotionTubeLineH(std::string in, std::string& out)
  411. {
  412. if (m_pUnitMotionControl)
  413. {
  414. return m_pUnitMotionControl->CalMotionTubeLineH(GetDataObj(in));
  415. }
  416. return RET_STATUS::RET_FAILED;
  417. }
  418. nDev::RET_STATUS MachineryModel::JSMachineryCalGetADofTubeLineH(std::string in, std::string& out)
  419. {
  420. if (m_pUnitMotionControl)
  421. {
  422. ResDataObject res;
  423. m_pUnitMotionControl->CalGetADofTubeLineH(res);
  424. ResObjectToJson(res, out);
  425. }
  426. return nDev::RET_STATUS::RET_SUCCEED;
  427. }
  428. nDev::RET_STATUS MachineryModel::JSMachineryCalGetEncoderofTubeLineH(std::string in, std::string& out)
  429. {
  430. if (m_pUnitMotionControl)
  431. {
  432. ResDataObject res;
  433. m_pUnitMotionControl->CalGetEncoderofTubeLineH(res);
  434. ResObjectToJson(res, out);
  435. }
  436. return RET_STATUS::RET_SUCCEED;
  437. }
  438. nDev::RET_STATUS MachineryModel::JSMachineryCalGetADofHorizontalDetector(std::string in, std::string& out)
  439. {
  440. if (m_pUnitMotionControl)
  441. {
  442. ResDataObject res;
  443. m_pUnitMotionControl->CalGetADofHorizontalDetector(res);
  444. ResObjectToJson(res, out);
  445. }
  446. return nDev::RET_STATUS::RET_SUCCEED;
  447. }
  448. nDev::RET_STATUS MachineryModel::JSMachineryCalMotionTubeAngleRotate(std::string in, std::string& out)
  449. {
  450. if (m_pUnitMotionControl)
  451. {
  452. return m_pUnitMotionControl->CalMotionTubeAngleRotate(GetDataObj(in));
  453. }
  454. return nDev::RET_STATUS::RET_FAILED;
  455. }
  456. nDev::RET_STATUS MachineryModel::JSMachineryCalMotionTubeAngleFindeAxisZ(std::string in, std::string& out)
  457. {
  458. if (m_pUnitMotionControl)
  459. {
  460. return m_pUnitMotionControl->CalMotionTubeAngleFindeAxisZ(GetDataObj(in));
  461. }
  462. return nDev::RET_STATUS::RET_FAILED;
  463. }
  464. nDev::RET_STATUS MachineryModel::JSMachineryCalGetADofTubeLineV(std::string in, std::string& out)
  465. {
  466. if (m_pUnitMotionControl)
  467. {
  468. ResDataObject res;
  469. m_pUnitMotionControl->CalGetADofTubeLineV(res);
  470. ResObjectToJson(res, out);
  471. }
  472. return nDev::RET_STATUS::RET_SUCCEED;
  473. }
  474. nDev::RET_STATUS MachineryModel::JSMachineryCalGetADofDetector(std::string in, std::string& out)
  475. {
  476. if (m_pUnitMotionControl)
  477. {
  478. ResDataObject res;
  479. m_pUnitMotionControl->CalGetADofDetector(res);
  480. ResObjectToJson(res, out);
  481. }
  482. return nDev::RET_STATUS::RET_SUCCEED;
  483. }
  484. nDev::RET_STATUS MachineryModel::JSMachineryCalGetADofTubeAngle(std::string in, std::string& out)
  485. {
  486. if (m_pUnitMotionControl)
  487. {
  488. ResDataObject res;
  489. m_pUnitMotionControl->CalGetADofTubeAngle(res);
  490. ResObjectToJson(res, out);
  491. }
  492. return nDev::RET_STATUS::RET_SUCCEED;
  493. }
  494. nDev::RET_STATUS MachineryModel::JSMachineryCalGetEncoderofTubeLineV(std::string in, std::string& out)
  495. {
  496. if (m_pUnitMotionControl)
  497. {
  498. ResDataObject res;
  499. m_pUnitMotionControl->CalGetEncoderofTubeLineV(res);
  500. ResObjectToJson(res, out);
  501. }
  502. return nDev::RET_STATUS::RET_SUCCEED;
  503. }
  504. nDev::RET_STATUS MachineryModel::JSMachineryCalGetEncoderOfTubeAngle(std::string in, std::string& out)
  505. {
  506. if (m_pUnitMotionControl)
  507. {
  508. ResDataObject res;
  509. m_pUnitMotionControl->CalGetEncoderofTubeAngle(res);
  510. ResObjectToJson(res, out);
  511. }
  512. return nDev::RET_STATUS::RET_SUCCEED;
  513. }
  514. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveParamsofTubeLiveV(std::string in, std::string& out)
  515. {
  516. if (m_pUnitMotionControl)
  517. {
  518. ResDataObject res;
  519. m_pUnitMotionControl->CalSaveParamsofTubeLiveV(GetDataObj(in), res);
  520. ResObjectToJson(res, out);
  521. }
  522. return nDev::RET_STATUS::RET_SUCCEED;
  523. }
  524. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveParamsofTubeAngle(std::string in, std::string& out)
  525. {
  526. if (m_pUnitMotionControl)
  527. {
  528. ResDataObject res;
  529. m_pUnitMotionControl->CalSaveParamsofTubeAngle(GetDataObj(in), res);
  530. ResObjectToJson(res, out);
  531. }
  532. return nDev::RET_STATUS::RET_SUCCEED;
  533. }
  534. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveParamsofDetector(std::string in, std::string& out)
  535. {
  536. if (m_pUnitMotionControl)
  537. {
  538. ResDataObject res;
  539. m_pUnitMotionControl->CalSaveParamsofDetector(GetDataObj(in), res);
  540. ResObjectToJson(res, out);
  541. }
  542. return nDev::RET_STATUS::RET_SUCCEED;
  543. }
  544. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveEncoderCorrectonofTubeLiveV(std::string in, std::string& out)
  545. {
  546. if (m_pUnitMotionControl)
  547. {
  548. ResDataObject res;
  549. m_pUnitMotionControl->CalSaveEncoderCorrectonofTubeLiveV(GetDataObj(in), res);
  550. ResObjectToJson(res, out);
  551. }
  552. return nDev::RET_STATUS::RET_SUCCEED;
  553. }
  554. nDev::RET_STATUS MachineryModel::JSMachineryCalSetADLimitationofEncoder(std::string in, std::string& out)
  555. {
  556. if (m_pUnitMotionControl)
  557. {
  558. return m_pUnitMotionControl->CalSetADLimitationofEncoder(GetDataObj(in));
  559. }
  560. return nDev::RET_STATUS::RET_FAILED;
  561. }
  562. nDev::RET_STATUS MachineryModel::JSMachinerySetSvoStatus(std::string in, std::string& out)
  563. {
  564. if (m_pUnitMotionControl)
  565. {
  566. return m_pUnitMotionControl->SetSvoStatus(GetDataObj(in));
  567. }
  568. return nDev::RET_STATUS::RET_FAILED;
  569. }
  570. nDev::RET_STATUS MachineryModel::JSMachineryAutoADCalibration(std::string in, std::string& out)
  571. {
  572. if (m_pUnitMotionControl)
  573. {
  574. return m_pUnitMotionControl->AutoADCalibration(GetDataObj(in));
  575. }
  576. return nDev::RET_STATUS::RET_FAILED;
  577. }
  578. nDev::RET_STATUS MachineryModel::JSMachineryCenterAdjust(std::string in, std::string& out)
  579. {
  580. if (m_pUnitMotionControl)
  581. {
  582. return m_pUnitMotionControl->CenterAdjust(GetDataObj(in));
  583. }
  584. return nDev::RET_STATUS::RET_FAILED;
  585. }
  586. nDev::RET_STATUS MachineryModel::JSMachineryQueryAlignStatus(std::string in, std::string& out)
  587. {
  588. if (m_pUnitMotionControl)
  589. {
  590. return m_pUnitMotionControl->QueryAlignStatus(GetDataObj(in));
  591. }
  592. return nDev::RET_STATUS::RET_FAILED;
  593. }
  594. nDev::RET_STATUS MachineryModel::JSMachineryGetSEQResource(std::string in, std::string& out)
  595. {
  596. return nDev::RET_STATUS::RET_FAILED;
  597. }
  598. nDev::RET_STATUS MachineryModel::JSMachineryEnterMechnicalSelfTest(std::string in, std::string& out)
  599. {
  600. return nDev::RET_STATUS::RET_FAILED;
  601. }
  602. nDev::RET_STATUS MachineryModel::JSMachineryExitMechnicalSelfTest(std::string in, std::string& out)
  603. {
  604. return nDev::RET_STATUS::RET_FAILED;
  605. }
  606. nDev::RET_STATUS MachineryModel::JSMachineryStartMechnicalSelfTest(std::string in, std::string& out)
  607. {
  608. return nDev::RET_STATUS::RET_FAILED;
  609. }
  610. nDev::RET_STATUS MachineryModel::JSMachineryParkingTo(std::string in, std::string& out)
  611. {
  612. if (m_pUnitMotionControl)
  613. {
  614. return m_pUnitMotionControl->ParkingTo(GetDataObj(in));
  615. }
  616. return nDev::RET_STATUS::RET_FAILED;
  617. }
  618. nDev::RET_STATUS MachineryModel::JSMachineryActiveTubeAngleZAxisClear(std::string in, std::string& out)
  619. {
  620. if (m_pUnitMotionControl)
  621. {
  622. return m_pUnitMotionControl->ActiveTubeAngleZAxisClear();
  623. }
  624. return nDev::RET_STATUS::RET_FAILED;
  625. }
  626. nDev::RET_STATUS MachineryModel::JSMachineryCancelTubeAngleZAxisClear(std::string in, std::string& out)
  627. {
  628. if (m_pUnitMotionControl)
  629. {
  630. return m_pUnitMotionControl->CancelTubeAngleZAxisClear();
  631. }
  632. return nDev::RET_STATUS::RET_FAILED;
  633. }
  634. nDev::RET_STATUS MachineryModel::JSMachineryActiveTubeHeightZAxisClear(std::string in, std::string& out)
  635. {
  636. if (m_pUnitMotionControl)
  637. {
  638. return m_pUnitMotionControl->ActiveTubeHeightZAxisClear();
  639. }
  640. return nDev::RET_STATUS::RET_FAILED;
  641. }
  642. nDev::RET_STATUS MachineryModel::JSMachineryCancelTubeHeightZAxisClear(std::string in, std::string& out)
  643. {
  644. if (m_pUnitMotionControl)
  645. {
  646. return m_pUnitMotionControl->CancelTubeHeightZAxisClear();
  647. }
  648. return nDev::RET_STATUS::RET_FAILED;
  649. }
  650. nDev::RET_STATUS MachineryModel::JSMachineryTubeAngleRotateToZAxis(std::string in, std::string& out)
  651. {
  652. if (m_pUnitMotionControl)
  653. {
  654. return m_pUnitMotionControl->TubeAngleRotateToZAxis();
  655. }
  656. return nDev::RET_STATUS::RET_FAILED;
  657. }
  658. nDev::RET_STATUS MachineryModel::JSMachineryTubeHeightMoveToZAxis(std::string in, std::string& out)
  659. {
  660. if (m_pUnitMotionControl)
  661. {
  662. return m_pUnitMotionControl->TubeHeightMoveToZAxis();
  663. }
  664. return nDev::RET_STATUS::RET_FAILED;
  665. }
  666. nDev::RET_STATUS MachineryModel::JSMachineryForceStopAllMotion(std::string in, std::string& out)
  667. {
  668. if (m_pUnitMotionControl)
  669. {
  670. return m_pUnitMotionControl->ForceStopAllMotion();
  671. }
  672. return nDev::RET_STATUS::RET_FAILED;
  673. }
  674. nDev::RET_STATUS MachineryModel::JSMachineryGetTomoResult(std::string in, std::string& out)
  675. {
  676. if (m_pUnitMotionControl)
  677. {
  678. ResDataObject resAngle, resHeight;
  679. m_pUnitMotionControl->GetTomoResult(resAngle, resHeight);
  680. ResDataObject res;
  681. res.add("P0", resAngle);
  682. res.add("P1", resHeight);
  683. out = res.encode();
  684. }
  685. return nDev::RET_STATUS::RET_SUCCEED;
  686. }
  687. nDev::RET_STATUS MachineryModel::JSGetMachineryReadyStatus(std::string& out)
  688. {
  689. if (m_pUnitMotionControl)
  690. {
  691. ResDataObject res;
  692. res = m_pUnitMotionControl->GetMachineryReadyStatus();
  693. out = (const char*)res;
  694. }
  695. return nDev::RET_STATUS::RET_SUCCEED;
  696. }
  697. nDev::RET_STATUS MachineryModel::JSGetMachineryAlignStatus(std::string& out)
  698. {
  699. if (m_pUnitMotionControl)
  700. {
  701. ResDataObject res;
  702. res = m_pUnitMotionControl->GetMachineryAlignStatus();
  703. out = (const char*)res;
  704. }
  705. return nDev::RET_STATUS::RET_SUCCEED;
  706. }
  707. nDev::RET_STATUS MachineryModel::JSGetMachineryProjectionNumber(std::string& out)
  708. {
  709. if (m_pUnitMotionControl)
  710. {
  711. ResDataObject res;
  712. res = m_pUnitMotionControl->GetMachineryProjectionNumber();
  713. out = (const char*)res;
  714. }
  715. return nDev::RET_STATUS::RET_SUCCEED;
  716. }
  717. nDev::RET_STATUS MachineryModel::JSGetMachineryTID(std::string& out)
  718. {
  719. if (m_pUnitMotionControl)
  720. {
  721. ResDataObject res;
  722. res = m_pUnitMotionControl->GetMachineryTID();
  723. out = (const char*)res;
  724. }
  725. return nDev::RET_STATUS::RET_SUCCEED;
  726. }
  727. nDev::RET_STATUS MachineryModel::JSGetMachinerySID(std::string& out)
  728. {
  729. if (m_pUnitMotionControl)
  730. {
  731. ResDataObject res;
  732. res = m_pUnitMotionControl->GetMachinerySID();
  733. out = (const char*)res;
  734. }
  735. return nDev::RET_STATUS::RET_SUCCEED;
  736. }
  737. nDev::RET_STATUS MachineryModel::JSGetMachineryScanAngle(std::string& out)
  738. {
  739. if (m_pUnitMotionControl)
  740. {
  741. ResDataObject res;
  742. res = m_pUnitMotionControl->GetMachineryScanAngle();
  743. out = (const char*)res;
  744. }
  745. return nDev::RET_STATUS::RET_SUCCEED;
  746. }
  747. nDev::RET_STATUS MachineryModel::JSGetMachineryScanDirection(std::string& out)
  748. {
  749. if (m_pUnitMotionControl)
  750. {
  751. ResDataObject res;
  752. res = m_pUnitMotionControl->GetMachineryScanDirection();
  753. out = (const char*)res;
  754. }
  755. return nDev::RET_STATUS::RET_SUCCEED;
  756. }
  757. nDev::RET_STATUS MachineryModel::JSGetMachineryScanGeometry(std::string& out)
  758. {
  759. if (m_pUnitMotionControl)
  760. {
  761. ResDataObject res;
  762. res = m_pUnitMotionControl->GetMachineryScanGeometry();
  763. out = (const char*)res;
  764. }
  765. return nDev::RET_STATUS::RET_SUCCEED;
  766. }
  767. nDev::RET_STATUS MachineryModel::JSGetMachineryHandSwitchState(std::string& out)
  768. {
  769. if (m_pUnitExposureSwitch)
  770. {
  771. ResDataObject res;
  772. res = m_pUnitExposureSwitch->GetMachineryHandSwtichState();
  773. out = (const char*)res;
  774. }
  775. return nDev::RET_STATUS::RET_SUCCEED;
  776. }
  777. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveParamsofTubeLiveH(std::string in, std::string& out)
  778. {
  779. if (m_pUnitMotionControl)
  780. {
  781. ResDataObject res;
  782. m_pUnitMotionControl->CalSaveParamsofTubeLiveH(GetDataObj(in), res);
  783. ResObjectToJson(res, out);
  784. }
  785. return nDev::RET_STATUS::RET_SUCCEED;
  786. }
  787. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveParamsofDetectorHorizontal(std::string in, std::string& out)
  788. {
  789. if (m_pUnitMotionControl)
  790. {
  791. ResDataObject res;
  792. m_pUnitMotionControl->CalSaveParamsofDetectorHorizontal(GetDataObj(in), res);
  793. ResObjectToJson(res, out);
  794. }
  795. return nDev::RET_STATUS::RET_SUCCEED;
  796. }
  797. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveResetLowPosition(std::string in, std::string& out)
  798. {
  799. if (m_pUnitMotionControl)
  800. {
  801. ResDataObject res;
  802. m_pUnitMotionControl->CalSaveResetLowPosition(GetDataObj(in), res);
  803. ResObjectToJson(res, out);
  804. }
  805. return nDev::RET_STATUS::RET_SUCCEED;
  806. }
  807. nDev::RET_STATUS MachineryModel::JSMachineryCalSaveResetEcoderZeroPosition(std::string in, std::string& out)
  808. {
  809. if (m_pUnitMotionControl)
  810. {
  811. ResDataObject res;
  812. m_pUnitMotionControl->CalSaveResetEcoderZeroPosition(GetDataObj(in), res);
  813. ResObjectToJson(res, out);
  814. }
  815. return nDev::RET_STATUS::RET_SUCCEED;
  816. }
  817. nDev::RET_STATUS MachineryModel::JSMachineryCalGetResetPosParam(std::string in, std::string& out)
  818. {
  819. if (m_pUnitMotionControl)
  820. {
  821. ResDataObject res;
  822. m_pUnitMotionControl->CalGetResetPosParam(GetDataObj(in), res);
  823. ResObjectToJson(res, out);
  824. }
  825. return nDev::RET_STATUS::RET_SUCCEED;
  826. }
  827. nDev::RET_STATUS MachineryModel::JSMachineryRecalculateTomoMotionParam(std::string in, std::string& out)
  828. {
  829. if (m_pUnitMotionControl)
  830. {
  831. ResDataObject res;
  832. m_pUnitMotionControl->RecalculateTomoMotionParam();
  833. ResObjectToJson(res, out);
  834. }
  835. return nDev::RET_STATUS::RET_SUCCEED;
  836. }
  837. //-----------------------------------------------------------------------------
  838. // MachineryDriverModel
  839. //-----------------------------------------------------------------------------
  840. MachineryDriverModel::MachineryDriverModel()
  841. {
  842. }
  843. MachineryDriverModel::~MachineryDriverModel()
  844. {
  845. }
  846. std::string MachineryDriverModel::GetGUID() const
  847. {
  848. return MachineryDriverGUID;
  849. }