ConfigurerMotion.cpp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. #include "stdafx.h"
  2. #include "ConfigurerMotion.h"
  3. #include "ConfigurationManager.h"
  4. using namespace DIOS::Dev::Detail::MachineryECOM;
  5. std::string ConfigurerMotion::GetPinDefineFileName()
  6. {
  7. return (const char *)ConfigurationManager::Instance()->GetMachineryConfig("PinDefineFilePath");
  8. }
  9. BOOL ConfigurerMotion::GetUseTubeHeightADLandmark()
  10. {
  11. auto status = atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("UseTubeHeightADLandmark"));
  12. return status != 0;
  13. }
  14. BOOL ConfigurerMotion::GetUseTubeAngleADLandmark()
  15. {
  16. auto status = atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("UseTubeAngleADLandmark"));
  17. return status != 0;
  18. }
  19. BOOL ConfigurerMotion::GetUseHandSwitchControlReset()
  20. {
  21. auto status = atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("UseHandSwitchControlReset"));
  22. return status != 0;
  23. }
  24. DWORD ConfigurerMotion::GetTubeHeightHighLandmarkAD()
  25. {
  26. return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightHighLandmarkAD"));
  27. }
  28. DWORD ConfigurerMotion::GetTubeHeightLowLandmarkAD()
  29. {
  30. return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightLowLandmarkAD"));
  31. }
  32. DWORD ConfigurerMotion::GetTubeAngleHighLandmarkAD()
  33. {
  34. return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAngleHighLandmarkAD"));
  35. }
  36. DWORD ConfigurerMotion::GetTubeAngleLowLandmarkAD()
  37. {
  38. return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAngleLowLandmarkAD"));
  39. }
  40. float ConfigurerMotion::GetTubeAngleLowLandmarkAngle()
  41. {
  42. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("AbsoluteValueAtTubeAngleLowLandmark"));
  43. }
  44. float ConfigurerMotion::GetTubeAngleHighLandmarkAngle()
  45. {
  46. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("AbsoluteValueAtTubeAngleHighLandmark"));
  47. }
  48. float ConfigurerMotion::GetTubeHeightLowLandmarkHeight()
  49. {
  50. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("AbsoluteValueAtTubeHeightLowLandmark"));
  51. }
  52. float ConfigurerMotion::GetTubeHeightHighLandmarkHeight()
  53. {
  54. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("AbsoluteValueAtTubeHeightHighLandmark"));
  55. }
  56. int ConfigurerMotion::GetFilterTimeHandSwitchDISignal()
  57. {
  58. int filterTime = (int)atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("HandSwitchDISignalFilterTime"));
  59. return filterTime;
  60. }
  61. int ConfigurerMotion::GetFilterTimeLimitSwitchDISignal()
  62. {
  63. int filterTime = (int)atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("LimitSwitchDISignalFilterTime"));
  64. return filterTime;
  65. }
  66. int ConfigurerMotion::GetFilterTimeMotorBrake()
  67. {
  68. int filterTime = (int)atoi((const char*)ConfigurationManager::Instance()->GetMachineryConfig("MotorBrakeFilterTime"));
  69. return filterTime;
  70. }
  71. BOOL ConfigurerMotion::GetSingleRADConfigs(ResDataObject &parms)
  72. {
  73. return TRUE;
  74. }
  75. //ALL IN STR FORMAT
  76. //TomoSID->TOMO 采集的SID
  77. //
  78. //TomoAcceleratingDistance->由静止到匀速的加速距离
  79. //
  80. //TomoDeceleratingDistance->由匀速到静止的减速距离
  81. //
  82. //TomoAlignmentDistance->对准阶段距离
  83. //
  84. //TomoResetDistance->复位阶段距离
  85. //
  86. //TomoRotateDirection->Tomo 运动球管旋转方向[=0 //逆时针,=1 //顺时针]
  87. //TomoGeometry-> Tomo 采集的几何模型
  88. BOOL ConfigurerMotion::GetTomoConfigs(ResDataObject &parms)
  89. {
  90. parms.clear();
  91. return ConfigurationManager::Instance()->GetAllTomoConfigs(parms);
  92. }
  93. BOOL ConfigurerMotion::GetModelConfigs(ResDataObject &parms)
  94. {
  95. parms.clear();
  96. return ConfigurationManager::Instance()->GetAllTomoConfigs(parms);
  97. }
  98. //ALL IN STR FORMAT
  99. //滤波时间->SignalFilterTime
  100. //球管高度轴移动速度->MotionSpeed
  101. //
  102. //球管旋转速度->
  103. //
  104. //TubeAnglePeriodP0->周期
  105. //
  106. //TubeAnglePeriodP1->有效周期
  107. //
  108. //球管高度轴上的正方向
  109. //
  110. //TubeHeightAxisPositiveDirection[= 1 //向下为正][=0 //向上为正]
  111. //
  112. //球管角度轴上的正方向
  113. //
  114. //TubeRotateAxisPositiveDirection[=1 //逆时针为正][=0 //顺时针为正]
  115. //
  116. //RAD 曝光角度
  117. //
  118. //TubeAngleOfRAD
  119. //
  120. //ResetRotatePeriod->reset 时球管旋转的工作周期
  121. //
  122. //ResetRotateEffectPeriod->reset 时球管旋转的有效工作周期
  123. //
  124. //ResetHeightPeriod->reset 时球管高度移动的工作周期
  125. //
  126. //ResetHeightEffectPeriod->reset 时球管高度移动的有效工作周期
  127. //
  128. //复位定位点角度方向->TubeRotateLandmarkDirection[=1 //逆时针终点][=0 //顺时针终点]
  129. //
  130. //复位定位点高度方向->TubeHeightLandmarkDirection[=1 //下行终点][=0 //上行终点]
  131. //
  132. //
  133. //
  134. //球管复位角度->TubeRotateResetAngle
  135. //
  136. //启用高度编码器触发曝光同步->UseHeightTriggerSyncBox
  137. //
  138. //启用高度编码器触发旋转同步->UseHeightTriggerAngleRotation
  139. //探测器至床台的距离->DetectorToTableDistance
  140. //DistanceInOneCircleOfTubeAngleMotor->球管角度控制电机旋转一周对应的球管转过的角度数(°)
  141. //
  142. //DistanceInOneCircleOfTubeHeightMotor->球管高度控制电机旋转一周对应的球管移动的距离(m)
  143. //
  144. //PulseInOneCircleOfTubeAngleMotor->球管角度控制电机旋转一周对应的脉冲数
  145. //
  146. //PulseInOneCircleOfTubeHeightMotor->球管高度控制电机旋转一周对应的脉冲数
  147. //EncoderValueInOneCircleOfTubeAngleMotor->球管角度控制电机旋转一周对应的编码器读数的偏移量
  148. //
  149. //EncoderValueInOneCircleOfTubeHeightMotor->球管角度控制电机旋转一周对应的编码器读数的偏移量
  150. //
  151. //EncoderValueAtTubeAngleOrigin->球管角度处于系统原点时的编码器读数
  152. //
  153. //EncoderValueAtTubeHeightOrigin->球管高度处于系统原点时的编码器读数
  154. BOOL ConfigurerMotion::GetMachineryConfigs(ResDataObject &parms)
  155. {
  156. parms.clear();
  157. return ConfigurationManager::Instance()->GetAllMachineryConfigs(parms);
  158. }
  159. float ConfigurerMotion::GetTomoSID()
  160. {
  161. return (float)atof((const char *)ConfigurationManager::Instance()->GetTomoConfig("TomoSID"));
  162. }
  163. float ConfigurerMotion::GetTomoTID()
  164. {
  165. return (float)atof((const char *)ConfigurationManager::Instance()->GetMachineryConfig("DetectorToTableDistance"));
  166. }
  167. float ConfigurerMotion::GetTomoSID_Wall()
  168. {
  169. return (float)atof((const char*)ConfigurationManager::Instance()->GetTomoConfig("TomoSID_Wall"));
  170. }
  171. float ConfigurerMotion::GetTomoTID_Wall()
  172. {
  173. return (float)atof((const char*)ConfigurationManager::Instance()->GetMachineryConfig("DetectorToTableDistance_Wall"));
  174. }
  175. float ConfigurerMotion::GetTomoSID_Table()
  176. {
  177. return (float)atof((const char*)ConfigurationManager::Instance()->GetTomoConfig("TomoSID_Table"));
  178. }
  179. float ConfigurerMotion::GetTomoTID_Table()
  180. {
  181. return (float)atof((const char*)ConfigurationManager::Instance()->GetMachineryConfig("DetectorToTableDistance_Table"));
  182. }
  183. float ConfigurerMotion::GetMotionToleranceLine()
  184. {
  185. float tolerance = (float)atof((const char*)ConfigurationManager::Instance()->GetMachineryConfig("MotionToleranceLine"));
  186. if (tolerance > 0.0001 && tolerance < 0.01)//误差设置在0.1mm到1cm之间
  187. {
  188. return tolerance;
  189. }
  190. else
  191. {
  192. return 0.002;//误差默认为2mm
  193. }
  194. }
  195. std::string ConfigurerMotion::GetTomoGeometry()
  196. {
  197. return (const char *)ConfigurationManager::Instance()->GetTomoConfig("TomoGeometry");
  198. }
  199. float ConfigurerMotion::GetEncoderValueInOneCircleOfTubeAngleMotor()
  200. {
  201. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("EncoderValueInOneCircleOfTubeAngleMotor"));
  202. }
  203. float ConfigurerMotion::GetAbsoluteValueAtTubeAngleOrigin()
  204. {
  205. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("AbsoluteValueAtTubeAngleOrigin"));
  206. }
  207. float ConfigurerMotion::GetDistanceInOneCircleOfTubeHeightMotor()
  208. {
  209. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("DistanceInOneCircleOfTubeHeightMotor"));
  210. }
  211. float ConfigurerMotion::GetEncoderValueInOneCircleOfTubeHeightMotor()
  212. {
  213. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("EncoderValueInOneCircleOfTubeHeightMotor"));
  214. }
  215. float ConfigurerMotion::GetAbsoluteValueAtTubeHeightOrigin()
  216. {
  217. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("AbsoluteValueAtTubeHeightOrigin"));
  218. }
  219. DWORD ConfigurerMotion::GetPulseInOneCircleOfTubeHeightMotor()
  220. {
  221. return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("PulseInOneCircleOfTubeHeightMotor"));
  222. }
  223. float ConfigurerMotion::GetDistanceInOneCircleOfTubeAngleMotor()
  224. {
  225. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("DistanceInOneCircleOfTubeAngleMotor"));
  226. }
  227. DWORD ConfigurerMotion::GetPulseInOneCircleOfTubeAngleMotor()
  228. {
  229. return (DWORD)atoi((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("PulseInOneCircleOfTubeAngleMotor"));
  230. }
  231. int ConfigurerMotion::GetSoftwareChainInterfaceATriggerLevel()
  232. {
  233. return atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("SoftwareChainInterfaceATriggerLevel"));
  234. }
  235. int ConfigurerMotion::GetSoftwareChainInterfaceBTriggerLevel()
  236. {
  237. return atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("SoftwareChainInterfaceBTriggerLevel"));
  238. }
  239. float ConfigurerMotion::GetPulseDutyCycleOfTubeHeightMotor()
  240. {
  241. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeVertical("PulseDutyCycleOfTubeHeightMotor"));
  242. }
  243. float ConfigurerMotion::GetPulseDutyCycleOfTubeAngleMoror()
  244. {
  245. return (float)atof((const char *)ConfigurationManager::Instance()->GetConfigTubeRotation("PulseDutyCycleOfTubeAngleMotor"));
  246. }
  247. BOOL ConfigurerMotion::GetUseSwingScanning()
  248. {
  249. auto status = atoi((const char *)ConfigurationManager::Instance()->GetMachineryConfig("UseCArmRotationScanning"));
  250. return status != 0;
  251. }
  252. DWORD ConfigurerMotion::GetPulseInOneCircleOfTubeHorizontalMotor()
  253. {
  254. return (DWORD)atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("PulseInOneCircleOfTubeHorizontalMotor"));
  255. }
  256. float ConfigurerMotion::GetPulseDutyCycleOfTubeHorizontalMoror()
  257. {
  258. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("PulseDutyCycleOfTubeHorizontalMotor"));
  259. }
  260. float ConfigurerMotion::GetDistanceInOneCircleOfTubeHorizontalMotor()
  261. {
  262. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("DistanceInOneCircleOfTubeHorizontalMotor"));
  263. }
  264. float ConfigurerMotion::GetEncoderValueInOneCircleOfTubeHorizontalMotor()
  265. {
  266. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("EncoderValueInOneCircleOfTubeHorizontalMotor"));
  267. }
  268. float ConfigurerMotion::GetAbsoluteValueAtTubeHorizontalOrigin()
  269. {
  270. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalOrigin"));
  271. }
  272. float ConfigurerMotion::GetTubeHorizontalLeftLandmark()
  273. {
  274. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalLeftLandmark"));
  275. }
  276. float ConfigurerMotion::GetTubeHorizontalRightLandmark()
  277. {
  278. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalRightLandmark"));
  279. }
  280. float ConfigurerMotion::GetTubeHeightLowPositionofReset()
  281. {
  282. return (float)atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("AbsoluteValueAtTubeHeightLowPositionofReset"));
  283. }
  284. BOOL ConfigurerMotion::GetUseTubeHorizontalADLandmark()
  285. {
  286. auto status = atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("UseTubeHorizontalADLandmark"));
  287. return status != 0;
  288. }
  289. int ConfigurerMotion::GetTubeRotateResetPeriod()
  290. {
  291. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("ResetRotatePeriod"));
  292. }
  293. int ConfigurerMotion::GetTubeRotateNormalPeriod()
  294. {
  295. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAnglePeriodP0"));
  296. }
  297. int ConfigurerMotion::GetTubeRotateLandmarkDirection()
  298. {
  299. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeRotateLandmarkDirection"));
  300. }
  301. int ConfigurerMotion::GetTubeRotateAxisPositiveDirection()
  302. {
  303. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeRotateAxisPositiveDirection"));
  304. }
  305. float ConfigurerMotion::GetTubeRotateResetAngle()
  306. {
  307. return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeRotateResetAngle"));
  308. }
  309. int ConfigurerMotion::GetTubeHeightResetPeriod()
  310. {
  311. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("ResetHeightPeriod"));
  312. }
  313. int ConfigurerMotion::GetTubeHeightNormalPeriod()
  314. {
  315. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("NormalHeightPeriod"));
  316. }
  317. int ConfigurerMotion::GetTubeHeightLandmarkDirection()
  318. {
  319. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightLandmarkDirection"));
  320. }
  321. int ConfigurerMotion::GetTubeHeightAxisPositiveDirection()
  322. {
  323. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightAxisPositiveDirection"));
  324. }
  325. int ConfigurerMotion::GetTubeHorizontalResetPeriod()
  326. {
  327. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("ResetHorizontalPeriod"));
  328. }
  329. int ConfigurerMotion::GetTubeHorizontalLandmarkDirection()
  330. {
  331. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("TubeHorizontalLandmarkDirection"));
  332. }
  333. int ConfigurerMotion::GetTubeHorizontalAxisPositiveDirection()
  334. {
  335. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("TubeHorizontalAxisPositiveDirection"));
  336. }
  337. int ConfigurerMotion::GetTubeHorizontalNormalPeriod()
  338. {
  339. return atoi((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("NormalHorizontalPeriod"));
  340. }
  341. float ConfigurerMotion::GetTubeHeightLowLandmarkPos()
  342. {
  343. return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeVertical("TubeHeightLowLandmarkPos"));
  344. }
  345. float ConfigurerMotion::GetTubeAngleLowLandmarkPos()
  346. {
  347. return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeRotation("TubeAngleLowLandmarkPos"));
  348. }
  349. float ConfigurerMotion::GetTubeHorizontalLowLandmarkPos()
  350. {
  351. return atof((const char*)ConfigurationManager::Instance()->GetConfigTubeHorizontal("TubeHorizontalLeftLandmarkPos"));
  352. }
  353. void ConfigurerMotion::UpdateResetLowPositionTubleAngle(string lowposition)
  354. {
  355. ResDataObject param;
  356. param.add("TubeAngleLowLandmarkPos", lowposition.c_str());
  357. ConfigurationManager::Instance()->UpdateMotionConfigTubeAngle("TubeAngleLowLandmarkPos", param);
  358. }
  359. void ConfigurerMotion::UpdateResetEncoderZeroPositionTubeAngle(string encoderzeroposition)
  360. {
  361. ResDataObject param;
  362. param.add("AbsoluteValueAtTubeAngleOrigin", encoderzeroposition.c_str());
  363. ConfigurationManager::Instance()->UpdateMotionConfigTubeAngle("AbsoluteValueAtTubeAngleOrigin", param);
  364. }
  365. void ConfigurerMotion::UpdateResetLowPositionTubleHeight(string lowposition)
  366. {
  367. ResDataObject param;
  368. param.add("TubeHeightLowLandmarkPos", lowposition.c_str());
  369. ConfigurationManager::Instance()->UpdateMotionConfigTubeHeight("TubeHeightLowLandmarkPos", param);
  370. }
  371. void ConfigurerMotion::UpdateResetEncoderZeroPositionTubeHeight(string encoderzeroposition)
  372. {
  373. ResDataObject param;
  374. param.add("AbsoluteValueAtTubeHeightOrigin", encoderzeroposition.c_str());
  375. ConfigurationManager::Instance()->UpdateMotionConfigTubeHeight("AbsoluteValueAtTubeHeightOrigin", param);
  376. }
  377. void ConfigurerMotion::UpdateResetLowPositionTubleHorizontal(string lowposition)
  378. {
  379. ResDataObject param;
  380. param.add("TubeHorizontalLeftLandmarkPos", lowposition.c_str());
  381. ConfigurationManager::Instance()->UpdateMotionConfigTubeHorizontal("TubeHorizontalLeftLandmarkPos", param);
  382. }
  383. void ConfigurerMotion::UpdateResetEncoderZeroPositionTubeHorizontal(string encoderzeroposition)
  384. {
  385. ResDataObject param;
  386. param.add("AbsoluteValueAtTubeHorizontalOrigin", encoderzeroposition.c_str());
  387. ConfigurationManager::Instance()->UpdateMotionConfigTubeHorizontal("AbsoluteValueAtTubeHorizontalOrigin", param);
  388. }