cgse 2024.7.0__py3-none-any.whl → 2025.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. README.md +27 -0
  2. bump.py +85 -0
  3. cgse-2025.0.2.dist-info/METADATA +38 -0
  4. cgse-2025.0.2.dist-info/RECORD +5 -0
  5. {cgse-2024.7.0.dist-info → cgse-2025.0.2.dist-info}/WHEEL +1 -2
  6. cgse-2024.7.0.dist-info/COPYING +0 -674
  7. cgse-2024.7.0.dist-info/COPYING.LESSER +0 -165
  8. cgse-2024.7.0.dist-info/METADATA +0 -144
  9. cgse-2024.7.0.dist-info/RECORD +0 -660
  10. cgse-2024.7.0.dist-info/entry_points.txt +0 -75
  11. cgse-2024.7.0.dist-info/top_level.txt +0 -2
  12. egse/__init__.py +0 -12
  13. egse/__main__.py +0 -32
  14. egse/aeu/aeu.py +0 -5238
  15. egse/aeu/aeu_awg.yaml +0 -265
  16. egse/aeu/aeu_crio.yaml +0 -273
  17. egse/aeu/aeu_cs.py +0 -627
  18. egse/aeu/aeu_devif.py +0 -321
  19. egse/aeu/aeu_main_ui.py +0 -903
  20. egse/aeu/aeu_metrics.py +0 -131
  21. egse/aeu/aeu_protocol.py +0 -463
  22. egse/aeu/aeu_psu.yaml +0 -204
  23. egse/aeu/aeu_ui.py +0 -873
  24. egse/aeu/arbdata/FccdRead.arb +0 -2
  25. egse/aeu/arbdata/FccdRead_min_points.arb +0 -2
  26. egse/aeu/arbdata/HeaterSync_FccdRead.arb +0 -2
  27. egse/aeu/arbdata/HeaterSync_ccdRead25.arb +0 -2
  28. egse/aeu/arbdata/HeaterSync_ccdRead31_25.arb +0 -2
  29. egse/aeu/arbdata/HeaterSync_ccdRead37_50.arb +0 -2
  30. egse/aeu/arbdata/HeaterSync_ccdRead43_75.arb +0 -2
  31. egse/aeu/arbdata/HeaterSync_ccdRead50.arb +0 -2
  32. egse/aeu/arbdata/Heater_FccdRead_min_points.arb +0 -2
  33. egse/aeu/arbdata/ccdRead25.arb +0 -2
  34. egse/aeu/arbdata/ccdRead25_150ms.arb +0 -2
  35. egse/aeu/arbdata/ccdRead31_25.arb +0 -2
  36. egse/aeu/arbdata/ccdRead31_25_150ms.arb +0 -2
  37. egse/aeu/arbdata/ccdRead37_50.arb +0 -2
  38. egse/aeu/arbdata/ccdRead37_50_150ms.arb +0 -2
  39. egse/aeu/arbdata/ccdRead43_75.arb +0 -2
  40. egse/aeu/arbdata/ccdRead43_75_150ms.arb +0 -2
  41. egse/aeu/arbdata/ccdRead50.arb +0 -2
  42. egse/aeu/arbdata/ccdRead50_150ms.arb +0 -2
  43. egse/alert/__init__.py +0 -1049
  44. egse/alert/alertman.yaml +0 -37
  45. egse/alert/alertman_cs.py +0 -233
  46. egse/alert/alertman_ui.py +0 -600
  47. egse/alert/gsm/beaglebone.py +0 -138
  48. egse/alert/gsm/beaglebone.yaml +0 -51
  49. egse/alert/gsm/beaglebone_cs.py +0 -108
  50. egse/alert/gsm/beaglebone_devif.py +0 -122
  51. egse/alert/gsm/beaglebone_protocol.py +0 -46
  52. egse/bits.py +0 -318
  53. egse/camera.py +0 -44
  54. egse/collimator/__init__.py +0 -0
  55. egse/collimator/fcul/__init__.py +0 -0
  56. egse/collimator/fcul/ogse.py +0 -1077
  57. egse/collimator/fcul/ogse.yaml +0 -14
  58. egse/collimator/fcul/ogse_cs.py +0 -154
  59. egse/collimator/fcul/ogse_devif.py +0 -358
  60. egse/collimator/fcul/ogse_protocol.py +0 -132
  61. egse/collimator/fcul/ogse_sim.py +0 -431
  62. egse/collimator/fcul/ogse_ui.py +0 -1108
  63. egse/command.py +0 -699
  64. egse/config.py +0 -410
  65. egse/confman/__init__.py +0 -1058
  66. egse/confman/confman.yaml +0 -70
  67. egse/confman/confman_cs.py +0 -240
  68. egse/confman/confman_ui.py +0 -381
  69. egse/confman/setup_ui.py +0 -565
  70. egse/control.py +0 -632
  71. egse/coordinates/__init__.py +0 -534
  72. egse/coordinates/avoidance.py +0 -100
  73. egse/coordinates/cslmodel.py +0 -127
  74. egse/coordinates/laser_tracker_to_dict.py +0 -122
  75. egse/coordinates/point.py +0 -707
  76. egse/coordinates/pyplot.py +0 -194
  77. egse/coordinates/referenceFrame.py +0 -1279
  78. egse/coordinates/refmodel.py +0 -737
  79. egse/coordinates/rotationMatrix.py +0 -85
  80. egse/coordinates/transform3d_addon.py +0 -419
  81. egse/csl/__init__.py +0 -50
  82. egse/csl/commanding.py +0 -78
  83. egse/csl/icons/hexapod-connected-selected.svg +0 -30
  84. egse/csl/icons/hexapod-connected.svg +0 -30
  85. egse/csl/icons/hexapod-homing-selected.svg +0 -68
  86. egse/csl/icons/hexapod-homing.svg +0 -68
  87. egse/csl/icons/hexapod-retract-selected.svg +0 -56
  88. egse/csl/icons/hexapod-retract.svg +0 -51
  89. egse/csl/icons/hexapod-zero-selected.svg +0 -56
  90. egse/csl/icons/hexapod-zero.svg +0 -56
  91. egse/csl/icons/logo-puna.svg +0 -92
  92. egse/csl/icons/stop.svg +0 -1
  93. egse/csl/initialisation.py +0 -102
  94. egse/csl/mech_pos_settings.yaml +0 -18
  95. egse/das.py +0 -1240
  96. egse/das.yaml +0 -7
  97. egse/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
  98. egse/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -69
  99. egse/data/conf/SETUP_CSL_00002_170620_151020.yaml +0 -69
  100. egse/data/conf/SETUP_CSL_00003_170620_151030.yaml +0 -69
  101. egse/data/conf/SETUP_CSL_00004_170620_151040.yaml +0 -69
  102. egse/data/conf/SETUP_CSL_00005_170620_151050.yaml +0 -69
  103. egse/data/conf/SETUP_CSL_00006_170620_151060.yaml +0 -69
  104. egse/data/conf/SETUP_CSL_00007_170620_151070.yaml +0 -69
  105. egse/data/conf/SETUP_CSL_00008_170620_151080.yaml +0 -75
  106. egse/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
  107. egse/data/conf/SETUP_INTA_00000_170620_150000.yaml +0 -4
  108. egse/data/conf/SETUP_SRON_00000_170620_150000.yaml +0 -4
  109. egse/decorators.py +0 -514
  110. egse/device.py +0 -269
  111. egse/dpu/__init__.py +0 -2698
  112. egse/dpu/ccd_ui.py +0 -514
  113. egse/dpu/dpu.py +0 -783
  114. egse/dpu/dpu.yaml +0 -153
  115. egse/dpu/dpu_cs.py +0 -272
  116. egse/dpu/dpu_ui.py +0 -671
  117. egse/dpu/fitsgen.py +0 -2096
  118. egse/dpu/fitsgen_ui.py +0 -399
  119. egse/dpu/hdf5_model.py +0 -332
  120. egse/dpu/hdf5_ui.py +0 -277
  121. egse/dpu/hdf5_viewer.py +0 -506
  122. egse/dpu/hk_ui.py +0 -468
  123. egse/dpu_commands.py +0 -81
  124. egse/dsi/__init__.py +0 -33
  125. egse/dsi/_libesl.py +0 -232
  126. egse/dsi/constants.py +0 -296
  127. egse/dsi/esl.py +0 -630
  128. egse/dsi/rmap.py +0 -444
  129. egse/dsi/rmapci.py +0 -39
  130. egse/dsi/spw.py +0 -335
  131. egse/dsi/spw_state.py +0 -29
  132. egse/dummy.py +0 -318
  133. egse/dyndummy.py +0 -179
  134. egse/env.py +0 -278
  135. egse/exceptions.py +0 -88
  136. egse/fdir/__init__.py +0 -26
  137. egse/fdir/fdir_manager.py +0 -85
  138. egse/fdir/fdir_manager.yaml +0 -37
  139. egse/fdir/fdir_manager_controller.py +0 -136
  140. egse/fdir/fdir_manager_cs.py +0 -164
  141. egse/fdir/fdir_manager_interface.py +0 -15
  142. egse/fdir/fdir_remote.py +0 -73
  143. egse/fdir/fdir_remote.yaml +0 -30
  144. egse/fdir/fdir_remote_controller.py +0 -30
  145. egse/fdir/fdir_remote_cs.py +0 -94
  146. egse/fdir/fdir_remote_interface.py +0 -9
  147. egse/fdir/fdir_remote_popup.py +0 -26
  148. egse/fee/__init__.py +0 -106
  149. egse/fee/f_fee_register.yaml +0 -43
  150. egse/fee/feesim.py +0 -914
  151. egse/fee/n_fee_hk.py +0 -768
  152. egse/fee/nfee.py +0 -188
  153. egse/filterwheel/__init__.py +0 -4
  154. egse/filterwheel/eksma/__init__.py +0 -49
  155. egse/filterwheel/eksma/fw8smc4.py +0 -657
  156. egse/filterwheel/eksma/fw8smc4.yaml +0 -121
  157. egse/filterwheel/eksma/fw8smc4_cs.py +0 -144
  158. egse/filterwheel/eksma/fw8smc4_devif.py +0 -473
  159. egse/filterwheel/eksma/fw8smc4_protocol.py +0 -82
  160. egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
  161. egse/filterwheel/eksma/fw8smc5.py +0 -115
  162. egse/filterwheel/eksma/fw8smc5.yaml +0 -105
  163. egse/filterwheel/eksma/fw8smc5_controller.py +0 -307
  164. egse/filterwheel/eksma/fw8smc5_cs.py +0 -141
  165. egse/filterwheel/eksma/fw8smc5_interface.py +0 -65
  166. egse/filterwheel/eksma/fw8smc5_simulator.py +0 -29
  167. egse/filterwheel/eksma/fw8smc5_ui.py +0 -1065
  168. egse/filterwheel/eksma/testpythonfw.py +0 -215
  169. egse/fov/__init__.py +0 -65
  170. egse/fov/fov_hk.py +0 -710
  171. egse/fov/fov_ui.py +0 -859
  172. egse/fov/fov_ui_controller.py +0 -140
  173. egse/fov/fov_ui_model.py +0 -200
  174. egse/fov/fov_ui_view.py +0 -345
  175. egse/gimbal/__init__.py +0 -32
  176. egse/gimbal/symetrie/__init__.py +0 -26
  177. egse/gimbal/symetrie/alpha.py +0 -586
  178. egse/gimbal/symetrie/generic_gimbal_ui.py +0 -1521
  179. egse/gimbal/symetrie/gimbal.py +0 -877
  180. egse/gimbal/symetrie/gimbal.yaml +0 -168
  181. egse/gimbal/symetrie/gimbal_cs.py +0 -183
  182. egse/gimbal/symetrie/gimbal_protocol.py +0 -138
  183. egse/gimbal/symetrie/gimbal_ui.py +0 -361
  184. egse/gimbal/symetrie/pmac.py +0 -1006
  185. egse/gimbal/symetrie/pmac_regex.py +0 -83
  186. egse/graph.py +0 -132
  187. egse/gui/__init__.py +0 -47
  188. egse/gui/buttons.py +0 -378
  189. egse/gui/focalplane.py +0 -1285
  190. egse/gui/formatter.py +0 -10
  191. egse/gui/led.py +0 -162
  192. egse/gui/limitswitch.py +0 -143
  193. egse/gui/mechanisms.py +0 -587
  194. egse/gui/states.py +0 -148
  195. egse/gui/stripchart.py +0 -729
  196. egse/gui/styles.qss +0 -48
  197. egse/gui/switch.py +0 -112
  198. egse/h5.py +0 -274
  199. egse/help/__init__.py +0 -0
  200. egse/help/help_ui.py +0 -126
  201. egse/hexapod/__init__.py +0 -32
  202. egse/hexapod/symetrie/__init__.py +0 -137
  203. egse/hexapod/symetrie/alpha.py +0 -874
  204. egse/hexapod/symetrie/dynalpha.py +0 -1387
  205. egse/hexapod/symetrie/hexapod_ui.py +0 -1516
  206. egse/hexapod/symetrie/pmac.py +0 -1010
  207. egse/hexapod/symetrie/pmac_regex.py +0 -83
  208. egse/hexapod/symetrie/puna.py +0 -1167
  209. egse/hexapod/symetrie/puna.yaml +0 -193
  210. egse/hexapod/symetrie/puna_cs.py +0 -195
  211. egse/hexapod/symetrie/puna_protocol.py +0 -134
  212. egse/hexapod/symetrie/puna_ui.py +0 -433
  213. egse/hexapod/symetrie/punaplus.py +0 -107
  214. egse/hexapod/symetrie/zonda.py +0 -872
  215. egse/hexapod/symetrie/zonda.yaml +0 -337
  216. egse/hexapod/symetrie/zonda_cs.py +0 -172
  217. egse/hexapod/symetrie/zonda_devif.py +0 -414
  218. egse/hexapod/symetrie/zonda_protocol.py +0 -123
  219. egse/hexapod/symetrie/zonda_ui.py +0 -449
  220. egse/hk.py +0 -791
  221. egse/icons/aeu-cs-start.svg +0 -117
  222. egse/icons/aeu-cs-stop.svg +0 -118
  223. egse/icons/aeu-cs.svg +0 -107
  224. egse/icons/aeu_cs-started.svg +0 -112
  225. egse/icons/aeu_cs-stopped.svg +0 -112
  226. egse/icons/aeu_cs.svg +0 -55
  227. egse/icons/alert.svg +0 -1
  228. egse/icons/arrow-double-left.png +0 -0
  229. egse/icons/arrow-double-right.png +0 -0
  230. egse/icons/arrow-up.svg +0 -11
  231. egse/icons/backward.svg +0 -1
  232. egse/icons/busy.svg +0 -1
  233. egse/icons/cleaning.svg +0 -115
  234. egse/icons/color-scheme.svg +0 -1
  235. egse/icons/cs-connected-alert.svg +0 -91
  236. egse/icons/cs-connected-disabled.svg +0 -43
  237. egse/icons/cs-connected.svg +0 -89
  238. egse/icons/cs-not-connected.svg +0 -44
  239. egse/icons/double-left-arrow.svg +0 -1
  240. egse/icons/double-right-arrow.svg +0 -1
  241. egse/icons/erase-disabled.svg +0 -19
  242. egse/icons/erase.svg +0 -59
  243. egse/icons/fitsgen-start.svg +0 -47
  244. egse/icons/fitsgen-stop.svg +0 -48
  245. egse/icons/fitsgen.svg +0 -1
  246. egse/icons/forward.svg +0 -1
  247. egse/icons/fov-hk-start.svg +0 -33
  248. egse/icons/fov-hk-stop.svg +0 -37
  249. egse/icons/fov-hk.svg +0 -1
  250. egse/icons/front-desk.svg +0 -1
  251. egse/icons/home-actioned.svg +0 -15
  252. egse/icons/home-disabled.svg +0 -15
  253. egse/icons/home.svg +0 -13
  254. egse/icons/info.svg +0 -1
  255. egse/icons/invalid.png +0 -0
  256. egse/icons/led-green.svg +0 -20
  257. egse/icons/led-grey.svg +0 -20
  258. egse/icons/led-orange.svg +0 -20
  259. egse/icons/led-red.svg +0 -20
  260. egse/icons/led-square-green.svg +0 -134
  261. egse/icons/led-square-grey.svg +0 -134
  262. egse/icons/led-square-orange.svg +0 -134
  263. egse/icons/led-square-red.svg +0 -134
  264. egse/icons/limit-switch-all-green.svg +0 -115
  265. egse/icons/limit-switch-all-red.svg +0 -117
  266. egse/icons/limit-switch-el+.svg +0 -116
  267. egse/icons/limit-switch-el-.svg +0 -117
  268. egse/icons/location-marker.svg +0 -1
  269. egse/icons/logo-dpu.svg +0 -48
  270. egse/icons/logo-gimbal.svg +0 -112
  271. egse/icons/logo-huber.svg +0 -23
  272. egse/icons/logo-ogse.svg +0 -31
  273. egse/icons/logo-puna.svg +0 -92
  274. egse/icons/logo-tcs.svg +0 -29
  275. egse/icons/logo-zonda.svg +0 -66
  276. egse/icons/maximize.svg +0 -1
  277. egse/icons/meter.svg +0 -1
  278. egse/icons/more.svg +0 -45
  279. egse/icons/n-fee-hk-start.svg +0 -24
  280. egse/icons/n-fee-hk-stop.svg +0 -25
  281. egse/icons/n-fee-hk.svg +0 -83
  282. egse/icons/observing-off.svg +0 -46
  283. egse/icons/observing-on.svg +0 -46
  284. egse/icons/open-document-hdf5.png +0 -0
  285. egse/icons/open-document-hdf5.svg +0 -21
  286. egse/icons/ops-mode.svg +0 -1
  287. egse/icons/play-green.svg +0 -17
  288. egse/icons/plugged-disabled.svg +0 -27
  289. egse/icons/plugged.svg +0 -21
  290. egse/icons/pm_ui.svg +0 -1
  291. egse/icons/power-button-green.svg +0 -27
  292. egse/icons/power-button-red.svg +0 -27
  293. egse/icons/power-button.svg +0 -27
  294. egse/icons/radar.svg +0 -1
  295. egse/icons/radioactive.svg +0 -2
  296. egse/icons/reload.svg +0 -1
  297. egse/icons/remote-control-off.svg +0 -28
  298. egse/icons/remote-control-on.svg +0 -28
  299. egse/icons/repeat-blue.svg +0 -15
  300. egse/icons/repeat.svg +0 -1
  301. egse/icons/settings.svg +0 -1
  302. egse/icons/shrink.svg +0 -1
  303. egse/icons/shutter.svg +0 -1
  304. egse/icons/sign-off.svg +0 -1
  305. egse/icons/sign-on.svg +0 -1
  306. egse/icons/sim-mode.svg +0 -1
  307. egse/icons/small-buttons-go.svg +0 -20
  308. egse/icons/small-buttons-minus.svg +0 -51
  309. egse/icons/small-buttons-plus.svg +0 -51
  310. egse/icons/sponge.svg +0 -220
  311. egse/icons/start-button-disabled.svg +0 -84
  312. egse/icons/start-button.svg +0 -50
  313. egse/icons/stop-button-disabled.svg +0 -84
  314. egse/icons/stop-button.svg +0 -50
  315. egse/icons/stop-red.svg +0 -17
  316. egse/icons/stop.svg +0 -1
  317. egse/icons/switch-disabled-square.svg +0 -87
  318. egse/icons/switch-disabled.svg +0 -15
  319. egse/icons/switch-off-square.svg +0 -87
  320. egse/icons/switch-off.svg +0 -72
  321. egse/icons/switch-on-square.svg +0 -87
  322. egse/icons/switch-on.svg +0 -61
  323. egse/icons/temperature-control.svg +0 -44
  324. egse/icons/th_ui_logo.svg +0 -1
  325. egse/icons/unplugged.svg +0 -23
  326. egse/icons/unvalid.png +0 -0
  327. egse/icons/user-interface.svg +0 -1
  328. egse/icons/vacuum.svg +0 -1
  329. egse/icons/valid.png +0 -0
  330. egse/icons/zoom-to-pixel-dark.svg +0 -64
  331. egse/icons/zoom-to-pixel-white.svg +0 -36
  332. egse/images/big-rotation-stage.png +0 -0
  333. egse/images/connected-100.png +0 -0
  334. egse/images/cross.svg +0 -6
  335. egse/images/disconnected-100.png +0 -0
  336. egse/images/gui-icon.png +0 -0
  337. egse/images/home.svg +0 -6
  338. egse/images/info-icon.png +0 -0
  339. egse/images/led-black.svg +0 -89
  340. egse/images/led-green.svg +0 -85
  341. egse/images/led-orange.svg +0 -85
  342. egse/images/led-red.svg +0 -85
  343. egse/images/load-icon.png +0 -0
  344. egse/images/load-setup.png +0 -0
  345. egse/images/load.png +0 -0
  346. egse/images/pause.png +0 -0
  347. egse/images/play-button.svg +0 -8
  348. egse/images/play.png +0 -0
  349. egse/images/process-status.png +0 -0
  350. egse/images/restart.png +0 -0
  351. egse/images/search.png +0 -0
  352. egse/images/sma.png +0 -0
  353. egse/images/start.png +0 -0
  354. egse/images/stop-button.svg +0 -8
  355. egse/images/stop.png +0 -0
  356. egse/images/switch-off.svg +0 -48
  357. egse/images/switch-on.svg +0 -48
  358. egse/images/undo.png +0 -0
  359. egse/images/update-button.svg +0 -11
  360. egse/imageviewer/exposureselection.py +0 -475
  361. egse/imageviewer/imageviewer.py +0 -198
  362. egse/imageviewer/matchfocalplane.py +0 -179
  363. egse/imageviewer/subfieldposition.py +0 -133
  364. egse/lampcontrol/__init__.py +0 -4
  365. egse/lampcontrol/beaglebone/beaglebone.py +0 -178
  366. egse/lampcontrol/beaglebone/beaglebone.yaml +0 -62
  367. egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -106
  368. egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -150
  369. egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -73
  370. egse/lampcontrol/energetiq/__init__.py +0 -22
  371. egse/lampcontrol/energetiq/eq99.yaml +0 -98
  372. egse/lampcontrol/energetiq/lampEQ99.py +0 -283
  373. egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -128
  374. egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -158
  375. egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -73
  376. egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -71
  377. egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -465
  378. egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
  379. egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
  380. egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
  381. egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
  382. egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
  383. egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
  384. egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
  385. egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
  386. egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
  387. egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
  388. egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
  389. egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
  390. egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
  391. egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
  392. egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
  393. egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -5510
  394. egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -42
  395. egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
  396. egse/lib/ximc/libximc.framework/libbindy.so +0 -0
  397. egse/lib/ximc/libximc.framework/libximc +0 -0
  398. egse/lib/ximc/libximc.framework/libximc.so +0 -0
  399. egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
  400. egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
  401. egse/lib/ximc/pyximc.py +0 -922
  402. egse/listener.py +0 -179
  403. egse/logger/__init__.py +0 -243
  404. egse/logger/log_cs.py +0 -321
  405. egse/metrics.py +0 -102
  406. egse/mixin.py +0 -464
  407. egse/monitoring.py +0 -95
  408. egse/ni/alarms/__init__.py +0 -26
  409. egse/ni/alarms/cdaq9375.py +0 -300
  410. egse/ni/alarms/cdaq9375.yaml +0 -89
  411. egse/ni/alarms/cdaq9375_cs.py +0 -130
  412. egse/ni/alarms/cdaq9375_devif.py +0 -183
  413. egse/ni/alarms/cdaq9375_protocol.py +0 -48
  414. egse/obs_inspection.py +0 -165
  415. egse/observer.py +0 -41
  416. egse/obsid.py +0 -163
  417. egse/powermeter/__init__.py +0 -0
  418. egse/powermeter/ni/__init__.py +0 -38
  419. egse/powermeter/ni/cdaq9184.py +0 -224
  420. egse/powermeter/ni/cdaq9184.yaml +0 -73
  421. egse/powermeter/ni/cdaq9184_cs.py +0 -130
  422. egse/powermeter/ni/cdaq9184_devif.py +0 -201
  423. egse/powermeter/ni/cdaq9184_protocol.py +0 -48
  424. egse/powermeter/ni/cdaq9184_ui.py +0 -544
  425. egse/powermeter/thorlabs/__init__.py +0 -25
  426. egse/powermeter/thorlabs/pm100a.py +0 -380
  427. egse/powermeter/thorlabs/pm100a.yaml +0 -132
  428. egse/powermeter/thorlabs/pm100a_cs.py +0 -136
  429. egse/powermeter/thorlabs/pm100a_devif.py +0 -127
  430. egse/powermeter/thorlabs/pm100a_protocol.py +0 -80
  431. egse/powermeter/thorlabs/pm100a_ui.py +0 -725
  432. egse/process.py +0 -451
  433. egse/procman/__init__.py +0 -834
  434. egse/procman/cannot_start_process_popup.py +0 -43
  435. egse/procman/procman.yaml +0 -49
  436. egse/procman/procman_cs.py +0 -201
  437. egse/procman/procman_ui.py +0 -2081
  438. egse/protocol.py +0 -605
  439. egse/proxy.py +0 -531
  440. egse/randomwalk.py +0 -140
  441. egse/reg.py +0 -585
  442. egse/reload.py +0 -122
  443. egse/reprocess.py +0 -693
  444. egse/resource.py +0 -333
  445. egse/rmap.py +0 -406
  446. egse/rst.py +0 -135
  447. egse/search.py +0 -182
  448. egse/serialdevice.py +0 -190
  449. egse/services.py +0 -247
  450. egse/services.yaml +0 -68
  451. egse/settings.py +0 -379
  452. egse/settings.yaml +0 -980
  453. egse/setup.py +0 -1181
  454. egse/shutter/__init__.py +0 -0
  455. egse/shutter/thorlabs/__init__.py +0 -19
  456. egse/shutter/thorlabs/ksc101.py +0 -205
  457. egse/shutter/thorlabs/ksc101.yaml +0 -105
  458. egse/shutter/thorlabs/ksc101_cs.py +0 -136
  459. egse/shutter/thorlabs/ksc101_devif.py +0 -201
  460. egse/shutter/thorlabs/ksc101_protocol.py +0 -71
  461. egse/shutter/thorlabs/ksc101_ui.py +0 -548
  462. egse/shutter/thorlabs/sc10.py +0 -82
  463. egse/shutter/thorlabs/sc10.yaml +0 -52
  464. egse/shutter/thorlabs/sc10_controller.py +0 -81
  465. egse/shutter/thorlabs/sc10_cs.py +0 -108
  466. egse/shutter/thorlabs/sc10_interface.py +0 -25
  467. egse/shutter/thorlabs/sc10_simulator.py +0 -30
  468. egse/simulator.py +0 -41
  469. egse/slack.py +0 -61
  470. egse/socketdevice.py +0 -218
  471. egse/sockets.py +0 -218
  472. egse/spw.py +0 -1401
  473. egse/stages/__init__.py +0 -12
  474. egse/stages/aerotech/ensemble.py +0 -245
  475. egse/stages/aerotech/ensemble.yaml +0 -205
  476. egse/stages/aerotech/ensemble_controller.py +0 -275
  477. egse/stages/aerotech/ensemble_cs.py +0 -110
  478. egse/stages/aerotech/ensemble_interface.py +0 -132
  479. egse/stages/aerotech/ensemble_parameters.py +0 -433
  480. egse/stages/aerotech/ensemble_simulator.py +0 -27
  481. egse/stages/aerotech/mgse_sim.py +0 -188
  482. egse/stages/arun/smd3.py +0 -110
  483. egse/stages/arun/smd3.yaml +0 -68
  484. egse/stages/arun/smd3_controller.py +0 -470
  485. egse/stages/arun/smd3_cs.py +0 -112
  486. egse/stages/arun/smd3_interface.py +0 -53
  487. egse/stages/arun/smd3_simulator.py +0 -27
  488. egse/stages/arun/smd3_stop.py +0 -16
  489. egse/stages/huber/__init__.py +0 -49
  490. egse/stages/huber/smc9300.py +0 -920
  491. egse/stages/huber/smc9300.yaml +0 -63
  492. egse/stages/huber/smc9300_cs.py +0 -178
  493. egse/stages/huber/smc9300_devif.py +0 -345
  494. egse/stages/huber/smc9300_protocol.py +0 -113
  495. egse/stages/huber/smc9300_sim.py +0 -547
  496. egse/stages/huber/smc9300_ui.py +0 -973
  497. egse/state.py +0 -173
  498. egse/statemachine.py +0 -274
  499. egse/storage/__init__.py +0 -1067
  500. egse/storage/persistence.py +0 -2295
  501. egse/storage/storage.yaml +0 -79
  502. egse/storage/storage_cs.py +0 -231
  503. egse/styles/dark.qss +0 -343
  504. egse/styles/default.qss +0 -48
  505. egse/synoptics/__init__.py +0 -417
  506. egse/synoptics/syn.yaml +0 -9
  507. egse/synoptics/syn_cs.py +0 -195
  508. egse/system.py +0 -1611
  509. egse/tcs/__init__.py +0 -14
  510. egse/tcs/tcs.py +0 -879
  511. egse/tcs/tcs.yaml +0 -14
  512. egse/tcs/tcs_cs.py +0 -202
  513. egse/tcs/tcs_devif.py +0 -292
  514. egse/tcs/tcs_protocol.py +0 -180
  515. egse/tcs/tcs_sim.py +0 -177
  516. egse/tcs/tcs_ui.py +0 -543
  517. egse/tdms.py +0 -171
  518. egse/tempcontrol/__init__.py +0 -23
  519. egse/tempcontrol/agilent/agilent34970.py +0 -109
  520. egse/tempcontrol/agilent/agilent34970.yaml +0 -44
  521. egse/tempcontrol/agilent/agilent34970_cs.py +0 -114
  522. egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
  523. egse/tempcontrol/agilent/agilent34970_protocol.py +0 -96
  524. egse/tempcontrol/agilent/agilent34972.py +0 -111
  525. egse/tempcontrol/agilent/agilent34972.yaml +0 -44
  526. egse/tempcontrol/agilent/agilent34972_cs.py +0 -115
  527. egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
  528. egse/tempcontrol/agilent/agilent34972_protocol.py +0 -98
  529. egse/tempcontrol/beaglebone/beaglebone.py +0 -341
  530. egse/tempcontrol/beaglebone/beaglebone.yaml +0 -110
  531. egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -117
  532. egse/tempcontrol/beaglebone/beaglebone_protocol.py +0 -134
  533. egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -674
  534. egse/tempcontrol/digalox/digalox.py +0 -115
  535. egse/tempcontrol/digalox/digalox.yaml +0 -36
  536. egse/tempcontrol/digalox/digalox_cs.py +0 -108
  537. egse/tempcontrol/digalox/digalox_protocol.py +0 -56
  538. egse/tempcontrol/keithley/__init__.py +0 -33
  539. egse/tempcontrol/keithley/daq6510.py +0 -662
  540. egse/tempcontrol/keithley/daq6510.yaml +0 -105
  541. egse/tempcontrol/keithley/daq6510_cs.py +0 -163
  542. egse/tempcontrol/keithley/daq6510_devif.py +0 -343
  543. egse/tempcontrol/keithley/daq6510_protocol.py +0 -79
  544. egse/tempcontrol/keithley/daq6510_sim.py +0 -186
  545. egse/tempcontrol/lakeshore/__init__.py +0 -33
  546. egse/tempcontrol/lakeshore/lsci.py +0 -361
  547. egse/tempcontrol/lakeshore/lsci.yaml +0 -162
  548. egse/tempcontrol/lakeshore/lsci_cs.py +0 -174
  549. egse/tempcontrol/lakeshore/lsci_devif.py +0 -292
  550. egse/tempcontrol/lakeshore/lsci_protocol.py +0 -76
  551. egse/tempcontrol/lakeshore/lsci_ui.py +0 -387
  552. egse/tempcontrol/ni/__init__.py +0 -0
  553. egse/tempcontrol/spid/spid.py +0 -109
  554. egse/tempcontrol/spid/spid.yaml +0 -81
  555. egse/tempcontrol/spid/spid_controller.py +0 -279
  556. egse/tempcontrol/spid/spid_cs.py +0 -136
  557. egse/tempcontrol/spid/spid_protocol.py +0 -107
  558. egse/tempcontrol/spid/spid_ui.py +0 -723
  559. egse/tempcontrol/srs/__init__.py +0 -22
  560. egse/tempcontrol/srs/ptc10.py +0 -867
  561. egse/tempcontrol/srs/ptc10.yaml +0 -227
  562. egse/tempcontrol/srs/ptc10_cs.py +0 -128
  563. egse/tempcontrol/srs/ptc10_devif.py +0 -116
  564. egse/tempcontrol/srs/ptc10_protocol.py +0 -39
  565. egse/tempcontrol/srs/ptc10_ui.py +0 -906
  566. egse/ups/apc/apc.py +0 -236
  567. egse/ups/apc/apc.yaml +0 -45
  568. egse/ups/apc/apc_cs.py +0 -101
  569. egse/ups/apc/apc_protocol.py +0 -125
  570. egse/user.yaml +0 -7
  571. egse/vacuum/beaglebone/beaglebone.py +0 -149
  572. egse/vacuum/beaglebone/beaglebone.yaml +0 -44
  573. egse/vacuum/beaglebone/beaglebone_cs.py +0 -108
  574. egse/vacuum/beaglebone/beaglebone_devif.py +0 -159
  575. egse/vacuum/beaglebone/beaglebone_protocol.py +0 -192
  576. egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
  577. egse/vacuum/instrutech/igm402.py +0 -91
  578. egse/vacuum/instrutech/igm402.yaml +0 -90
  579. egse/vacuum/instrutech/igm402_controller.py +0 -124
  580. egse/vacuum/instrutech/igm402_cs.py +0 -108
  581. egse/vacuum/instrutech/igm402_interface.py +0 -49
  582. egse/vacuum/instrutech/igm402_simulator.py +0 -36
  583. egse/vacuum/keller/kellerBus.py +0 -256
  584. egse/vacuum/keller/leo3.py +0 -100
  585. egse/vacuum/keller/leo3.yaml +0 -38
  586. egse/vacuum/keller/leo3_controller.py +0 -81
  587. egse/vacuum/keller/leo3_cs.py +0 -101
  588. egse/vacuum/keller/leo3_interface.py +0 -33
  589. egse/vacuum/mks/evision.py +0 -86
  590. egse/vacuum/mks/evision.yaml +0 -75
  591. egse/vacuum/mks/evision_cs.py +0 -101
  592. egse/vacuum/mks/evision_devif.py +0 -313
  593. egse/vacuum/mks/evision_interface.py +0 -60
  594. egse/vacuum/mks/evision_simulator.py +0 -24
  595. egse/vacuum/mks/evision_ui.py +0 -701
  596. egse/vacuum/pfeiffer/acp40.py +0 -87
  597. egse/vacuum/pfeiffer/acp40.yaml +0 -60
  598. egse/vacuum/pfeiffer/acp40_controller.py +0 -117
  599. egse/vacuum/pfeiffer/acp40_cs.py +0 -109
  600. egse/vacuum/pfeiffer/acp40_interface.py +0 -40
  601. egse/vacuum/pfeiffer/acp40_simulator.py +0 -37
  602. egse/vacuum/pfeiffer/tc400.py +0 -87
  603. egse/vacuum/pfeiffer/tc400.yaml +0 -83
  604. egse/vacuum/pfeiffer/tc400_controller.py +0 -136
  605. egse/vacuum/pfeiffer/tc400_cs.py +0 -109
  606. egse/vacuum/pfeiffer/tc400_interface.py +0 -70
  607. egse/vacuum/pfeiffer/tc400_simulator.py +0 -35
  608. egse/vacuum/pfeiffer/tpg261.py +0 -80
  609. egse/vacuum/pfeiffer/tpg261.yaml +0 -66
  610. egse/vacuum/pfeiffer/tpg261_controller.py +0 -150
  611. egse/vacuum/pfeiffer/tpg261_cs.py +0 -109
  612. egse/vacuum/pfeiffer/tpg261_interface.py +0 -59
  613. egse/vacuum/pfeiffer/tpg261_simulator.py +0 -23
  614. egse/version.py +0 -174
  615. egse/visitedpositions.py +0 -398
  616. egse/windowing.py +0 -213
  617. egse/zmq/__init__.py +0 -28
  618. egse/zmq/spw.py +0 -160
  619. egse/zmq_ser.py +0 -41
  620. scripts/alerts/cold.yaml +0 -278
  621. scripts/alerts/example_alerts.yaml +0 -54
  622. scripts/alerts/transition.yaml +0 -14
  623. scripts/alerts/warm.yaml +0 -49
  624. scripts/analyse_n_fee_hk_data.py +0 -52
  625. scripts/check_hdf5_files.py +0 -192
  626. scripts/check_register_sync.py +0 -47
  627. scripts/check_tcs_calib_coef.py +0 -90
  628. scripts/correct_ccd_cold_temperature_cal.py +0 -157
  629. scripts/create_hdf5_report.py +0 -293
  630. scripts/csl_model.py +0 -420
  631. scripts/csl_restore_setup.py +0 -229
  632. scripts/export-grafana-dashboards.py +0 -49
  633. scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -54
  634. scripts/fdir/fdir_table.yaml +0 -70
  635. scripts/fdir/fdir_test_recovery.py +0 -10
  636. scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
  637. scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -61
  638. scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -59
  639. scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -33
  640. scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -71
  641. scripts/fix_csv.py +0 -80
  642. scripts/ias/correct_ccd_temp_cal_elfique.py +0 -43
  643. scripts/ias/correct_ccd_temp_cal_floreffe.py +0 -43
  644. scripts/ias/correct_trp_swap_achel.py +0 -199
  645. scripts/inta/correct_ccd_temp_cal_duvel.py +0 -43
  646. scripts/inta/correct_ccd_temp_cal_gueuze.py +0 -43
  647. scripts/n_fee_supply_voltage_calculation.py +0 -92
  648. scripts/playground.py +0 -30
  649. scripts/print_hdf5_hk_data.py +0 -68
  650. scripts/print_register_map.py +0 -43
  651. scripts/remove_lines_between_matches.py +0 -188
  652. scripts/sron/commanding/control_heaters.py +0 -44
  653. scripts/sron/commanding/pumpdown.py +0 -46
  654. scripts/sron/commanding/set_pid_setpoint.py +0 -19
  655. scripts/sron/commanding/shutdown_bbb_heaters.py +0 -10
  656. scripts/sron/commanding/shutdown_pumps.py +0 -33
  657. scripts/sron/correct_mgse_coordinates_brigand_chimay.py +0 -272
  658. scripts/sron/correct_trp_swap_brigand.py +0 -204
  659. scripts/sron/gimbal_conversions.py +0 -75
  660. scripts/sron/tm_gen/tm_gen_agilent.py +0 -37
  661. scripts/sron/tm_gen/tm_gen_heaters.py +0 -4
  662. scripts/sron/tm_gen/tm_gen_spid.py +0 -13
  663. scripts/update_operational_cgse.py +0 -268
  664. scripts/update_operational_cgse_old.py +0 -273
@@ -1,337 +0,0 @@
1
- BaseClass:
2
- egse.hexapod.symetrie.zonda.AlphaPlusControllerInterface
3
-
4
- ProxyClass:
5
- egse.hexapod.symetrie.zonda.ZondaProxy
6
-
7
- ControlServerClass:
8
- egse.hexapod.symetrie.zonda_cs.ZondaControlServer
9
-
10
- ControlServer:
11
- egse.hexapod.symetrie.zonda_cs
12
-
13
- UserInterface:
14
- egse.hexapod.symetrie.zonda_ui
15
-
16
- Commands:
17
-
18
- # Each of these groups is parsed and used on both the server and the client side.
19
- #
20
- # The group name (e.g. is_simulator) will be monkey patched in the Proxy class for the device
21
- # or service.
22
- #
23
- # The other field are:
24
- # description: Used by the doc_string method to generate a help string
25
- # cmd: Command string that will eventually be send to the hardware controller for
26
- # the device. This cmd string is also used at the client side to parse and
27
- # validate the arguments.
28
- # device_method: The name of the method to be called on the device class.
29
- # These should all be defined by the interface class for the device, i.e.
30
- # PunaInterface in this case.
31
- # When the device_method is the same as the group name, it can be omitted.
32
- # response: The name of the method to be called from the device protocol.
33
- # This method should exist in the subclass of the CommandProtocol base class,
34
- # i.e. in this case it will be the PunaProtocol class.
35
- # The default (when no response is given) is 'handle_device_method'.
36
-
37
- # Definition of the the DeviceInterface
38
-
39
- is_simulator:
40
- description: Ask if the connected class is a simulator instead of the real device Controller class.
41
- returns: bool | True if the far end is a simulator instead of the real hardware
42
-
43
- is_connected:
44
- description: Check if the Hexapod hardware controller is connected.
45
-
46
- connect:
47
- description: Connect the Hexapod hardware controller
48
-
49
- reconnect:
50
- description: Reconnect the Hexapod hardware controller.
51
-
52
- This command will force a disconnect and then try to re-connect to the controller.
53
-
54
- disconnect:
55
- description: Disconnect from the hexapod controller.
56
-
57
- This command will be send to the Hexapod Control Server which will then
58
- disconnect from the hardware controller.
59
-
60
- This command does not affect the ZeroMQ connection of the Proxy to the
61
- control server. Use the service command `disconnect_cs()` to disconnect
62
- from the control server.
63
-
64
- info:
65
- description: Retrieve basic information about the Hexapod and the Controller.
66
-
67
- get_general_state:
68
- description: Retreive general state information of the hexapod.
69
-
70
- reset:
71
- description: Reboot the controller. This command reboot the controller and the Ethernet communication is
72
- closed. The controller takes about 2 minutes to initialize. The configuration changes (commands
73
- of “CFG” family) will be lost if no CFG_SAVE command were sent since last configuration
74
- modifications The system reboot command is interpreted directly by the operating system of the
75
- controller. STOP and CONTROLOFF the hexapod before sending the command.
76
-
77
- homing:
78
- description: Start the homing cycle for the Hexapod PUNA. Homing is required before performing a control
79
- movement. Without absolute encoders, the homing is performed with a hexapod movement until
80
- detecting the reference sensor on each of the actuators. The Hexapod will go to a position were
81
- the sensors are reached that signal a known calibrated position and then returns to the zero
82
- position.
83
- Whenever a homing is performed, the method will return before the actual movement is finished.
84
- The homing cycle takes about two minutes to complete, but the homing() method returns almost
85
- immediately. Therefore, to check if the homing is finished, use the is_homing_done() method.
86
-
87
- stop:
88
- description: Stop the current motion.
89
-
90
- clear_error:
91
- description: Clear all errors in the controller software.
92
-
93
- activate_control_loop:
94
- description: Activates the control loop on motors. It activates the power on the motors and release the
95
- brakes if present. The hexapod status Control on switches to true when the command is successful.
96
-
97
- deactivate_control_loop:
98
- description: Disables the control loop on the servo motors.
99
-
100
- jog:
101
- description: Starts a JOG-type movement on the actuator defined by the arguments. A JOG type movement is a
102
- movement done without using the kinematic of the hexapod. It's a relative movement along a
103
- defined actuator. The actuator number is defined by the "axis" variable. The increment "inc"
104
- can be positive to extend the actuator or negative to retract the actuator.
105
-
106
- Arguments
107
-
108
- axis(int) number of the actuator (1 to 6)
109
- inc(float) increment to achieve in mm
110
-
111
- * Note this is a maintenance feature.
112
- * Note for this command the home do not necessary has to be completed. It is important to
113
- realize that moving the actuator XX mm doesn't correspond to move XX mm in the hexapod workspace
114
-
115
- set_speed:
116
- description: Set the speed of the hexapod movements according to vt and vr arguments.
117
-
118
- vt is the translation speed of the hexapod in mm per second [mm/s]
119
- vr is the angular speed of the hexapod in deg per second [deg/s]
120
-
121
- The parameters vt and vr are automatically limited by the controller between the factory
122
- configured minimum and maximum speed
123
- cmd: "{vt} {vr}"
124
-
125
- sequence:
126
- description: Execute a sequence of several points.
127
- First, it checks if limits are enabled (get_limit_state) and if not it enables them (user_limit_enable?? or machine_limit_enable??).
128
- Secondly, it checks if all points of the sequence are reachable (not outside the limits/workspace).
129
- Eventually, it moves hexapod following the sequence step by step (and reads the step n+1 after that the step n is complete).
130
- After a step it waits for "time_sleep" seconds before reading the next step.
131
- cmd: "{file_path} {time_sleep}"
132
-
133
- get_speed:
134
- description: Retrieve the configuration of the movement speed.
135
-
136
- vt is the translation speed of the hexapod in mm per second [mm/s]
137
- vr is the angular speed of the hexapod in deg per second [deg/s]
138
- vt_min, vt_max are the limits for the translation speed [mm/s]
139
- vr_min, vr_max are the limits for the angular speed [mm/s]
140
-
141
- get_temperature:
142
- description: Retrieves the value of the 6 PT100 temperature sensors in C.
143
- The security temperature limit has been factory set to 60 C.
144
- The controller will be in error state and thus the hexapod movement will stop if the
145
- temperature limit is exceeded. In that case, clear the error before using the Hexapod again.
146
- returns: list | list of floats with the temperature values
147
-
148
- perform_maintenance:
149
- description: Starts a maintenance cycle. The mode selects the type of movement.
150
-
151
- Arguments
152
- mode = 1 Jog to zero, no other parameter is required for this mode. The Machine zero position
153
- is reached by moving each actuatorin JOG mode without inter-axis interpolation (kinematic
154
- disabled). Backlash compensation is not performed with this mode. This is a maintenance
155
- command that should be used only in case of kinematic error or failure of one/several
156
- actuators.
157
- mode = 2 Move along a single operational axis, the parameter axis is needed to define the
158
- operational axis. The movements are executed in the machine coordinate system. The sequence
159
- is (1) movement to machine zero (2) movement to axis operational negative limit (3) movement
160
- to axis operational positive limit (4) movement to machine zero). The operational limits are
161
- factory defined.
162
- mode = 3 Move allong all the operational axis one after the other, No other parameter is
163
- required for this mode. Movements are executed in the machine coordinate system. The sequence
164
- execute the sequence alon a single operational axis, one axis after another. The axis order is
165
- Tx, Ty, Tz, Rx, Ry, Rz.
166
-
167
- axis(int) defines the movement around the selected axis
168
- cmd: "{axis}"
169
-
170
- goto_specific_position:
171
- description: Ask to go to a specific position.
172
- * pos=1 User zero
173
- * pos=2 Retracted position
174
- * pos=3 Machine zero
175
- cmd: "{pos}"
176
-
177
- goto_retracted_position:
178
- description: Ask the hexapod to go to the retracted position.
179
-
180
- goto_zero_position:
181
- description: Ask the hexapod to go to the user zero position.
182
-
183
- is_homing_done:
184
- description: Check if homing is done.
185
-
186
- is_in_position:
187
- description: Check if the actuators are in position.
188
-
189
- move_absolute:
190
- description: Starts the movement defined by the arguments.
191
-
192
- tx(float) position on the X-axis [mm]
193
- ty(float) position on the Y-axis [mm]
194
- tz(float) position on the Z-axis [mm]
195
- rx(float) rotation around the X-axis [deg]
196
- ry(float) rotation around the Y-axis [deg]
197
- rz(float) rotation around the Z-axis [deg]
198
-
199
- Move/define the Object Coordinate System position and orientation expressed in the invariant
200
- user coordinate system.
201
-
202
- The rotation centre coincides with the Object Coordinates System origin and
203
- the movements are controlled with translation components at first (Tx, Ty, tZ)
204
- and then the rotation components (Rx, Ry, Rz).
205
-
206
- Will raise an error code if the following conditions are not met
207
- * there is no motion task tunning (motion task running)
208
- * home is completed (home complete),
209
- * the control loop on servo motors is activated (control on),
210
- * the hexapod is not stopping
211
- cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
212
-
213
- move_relative_object:
214
- description: Starts the movement defined by the arguments.
215
-
216
- tx(float) position on the X-axis [mm]
217
- ty(float) position on the Y-axis [mm]
218
- tz(float) position on the Z-axis [mm]
219
- rx(float) rotation around the X-axis [deg]
220
- ry(float) rotation around the Y-axis [deg]
221
- rz(float) rotation around the Z-axis [deg]
222
-
223
- Move the object relative to its current object position and orientation. The relative movement
224
- is expressed in the object coordinate system.
225
-
226
- Will raise an error code if the following conditions are not met
227
- * there is no motion task tunning (motion task running)
228
- * home is completed (home complete),
229
- * the control loop on servo motors is activated (control on),
230
- * the hexapod is not stopping
231
- cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
232
-
233
- move_relative_user:
234
- description: Starts the movement defined by the arguments.
235
-
236
- tx(float) position on the X-axis [mm]
237
- ty(float) position on the Y-axis [mm]
238
- tz(float) position on the Z-axis [mm]
239
- rx(float) rotation around the X-axis [deg]
240
- ry(float) rotation around the Y-axis [deg]
241
- rz(float) rotation around the Z-axis [deg]
242
-
243
- The object is moved relative to its current object position and orientation. The relative
244
- movement is expressed in the (invariant) user coordinate system.
245
-
246
- Will raise an error code if the following conditions are not met
247
- * there is no motion task tunning (motion task running)
248
- * home is completed (home complete),
249
- * the control loop on servo motors is activated (control on),
250
- * the hexapod is not stopping
251
- cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
252
-
253
- check_absolute_movement:
254
- description: Verifies if the movement defined by the arguments is feasible in absolute coordinate system.
255
- After command execution, when the command execution has been successful, the result of the vali-
256
- dation returns
257
- 0 when target position is valid
258
- Positive value when the validation shows limitations
259
- Negative value when the validation fails
260
- cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
261
-
262
- check_relative_object_movement:
263
- description: Verifies if the movement defined by the arguments is feasible in user coordinate system.
264
- After command execution, when the command execution has been successful, the result of the vali-
265
- dation returns
266
- 0 when target position is valid
267
- Positive value when the validation shows limitations
268
- Negative value when the validation fails
269
- cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
270
-
271
- check_relative_user_movement:
272
- description: Verifies if the movement defined by the arguments is feasible in user coordinate system.
273
- After command execution, when the command execution has been successful, the result of the vali-
274
- dation returns
275
- 0 when target position is valid
276
- Positive value when the validation shows limitations
277
- Negative value when the validation fails
278
- cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
279
-
280
- get_coordinates_systems:
281
- description: Retrieve the definition of the User Coordinate System and the Object Coordinate System.
282
- Returns tx_u, ty_u, tz_u, rx_u, ry_u, rz_u, tx_o, ty_o, tz_o, rx_o, ry_o, rz_o where the
283
- translation parameters are in [mm] and the rotation parameters are in [deg].
284
-
285
- get_actuator_length:
286
- description: Retreive the current length of the hexapod actuators in mm.
287
-
288
-
289
- get_user_positions:
290
- description: Retreive the position of the Object Coordinate System in the User Coordinate System.
291
-
292
- get_machine_positions:
293
- description: Retreive the position of the Platform Coordinate System in the Machine Coordinate System.
294
-
295
- get_actuator_state:
296
- description: Retreive general state information of the actuators. For each of the six actuators, an integer
297
- value is returned that should be interpreted as a bit field containing status bits for that
298
- actuator.
299
-
300
- get_limits_value:
301
- description: Retreive the current limits that have been set to the hexapod. The argument "lim" determines
302
- the workspace in which the limits wants to be retrieved.
303
- args:
304
- lim: int | 0 = Factory, 1 = machine cs limits, 2 = user cs limits
305
- cmd: "{lim}"
306
- returns: list | list of floats with the limits set to the selected workspace (factory, machine, user)
307
-
308
- get_limits_state:
309
- description: Return workspace limits enable state
310
- returns: dict | Limit states of the different work spaces (factory, machine and user)
311
-
312
- machine_limit_enable:
313
- description: Enables (1) or disables (0) the machine workspace limits of the hexapod.
314
-
315
- machine_limit_set:
316
- description: Sets the machine workspace limits of the hexapod.
317
-
318
- user_limit_enable:
319
- description: Enables (1) or disables (0) the user workspace limits of the hexapod.
320
-
321
- user_limit_set:
322
- description: Sets the machine workspace limits of the hexapod.
323
-
324
- set_default:
325
- description: Restores the default configuration parameters. The command can be used to restore factory
326
- default parameters. The restored configuration is not automatically saved. refer to the command
327
- CFG_SAVE to save the parameters in order to keep them after a controller power off. The
328
- calculation of the hexapod position is suspended during the command execution.
329
-
330
- configure_coordinates_systems:
331
- description: Change the definition of the User Coordinate System and the Object Coordinate System.
332
- The parameters tx_u, ty_u, tz_u, rx_u, ry_u, rz_u are used to define the user coordinate system
333
- relative to the Machine Coordinate System and the parameters tx_o, ty_o, tz_o, rx_o, ry_o, rz_o
334
- are used to define the Object Coordinate System relative to the Platform Coordinate System.
335
-
336
- No motion task shall be running when executing this parameter.
337
- cmd: "{tx_u} {ty_u} {tz_u} {rx_u} {ry_u} {rz_u} {tx_o} {ty_o} {tz_o} {rx_o} {ry_o} {rz_o}"
@@ -1,172 +0,0 @@
1
- """
2
- The Control Server that connects to the Hexapod ZONDA Hardware Controller.
3
-
4
- Start the control server from the terminal as follows:
5
-
6
- $ zonda_cs start-bg
7
-
8
- or when you don't have the device available, start the control server in simulator mode. That
9
- will make the control server connect to a device software simulator:
10
-
11
- $ zonda_cs start --sim
12
-
13
- Please note that software simulators are intended for simple test purposes and will not simulate
14
- all device behavior correctly, e.g. timing, error conditions, etc.
15
-
16
- """
17
- import logging
18
-
19
- if __name__ != "__main__":
20
- import multiprocessing
21
- multiprocessing.current_process().name = "zonda_cs"
22
-
23
- import sys
24
-
25
- import click
26
- import invoke
27
- import rich
28
- import zmq
29
-
30
- from egse.control import ControlServer
31
- from egse.control import is_control_server_active
32
- from egse.hexapod.symetrie.zonda import ZondaProxy
33
- from egse.hexapod.symetrie.zonda_protocol import ZondaProtocol
34
- from egse.settings import Settings
35
- from egse.zmq_ser import connect_address
36
- from prometheus_client import start_http_server
37
-
38
- logger = logging.getLogger(__name__)
39
-
40
- CTRL_SETTINGS = Settings.load("Hexapod ZONDA Control Server")
41
-
42
-
43
- class ZondaControlServer(ControlServer):
44
- """ZondaControlServer - Command and monitor the Hexapod ZONDA hardware.
45
-
46
- This class works as a command and monitoring server to control the Symétrie Hexapod PUNA.
47
- This control server shall be used as the single point access for controlling the hardware
48
- device. Monitoring access should be done preferably through this control server also,
49
- but can be done with a direct connection through the PunaController if needed.
50
-
51
- The sever binds to the following ZeroMQ sockets:
52
-
53
- * a REQ-REP socket that can be used as a command server. Any client can connect and
54
- send a command to the Hexapod.
55
-
56
- * a PUB-SUP socket that serves as a monitoring server. It will send out Hexapod status
57
- information to all the connected clients every five seconds.
58
-
59
- """
60
-
61
- def __init__(self):
62
- super().__init__()
63
-
64
- self.device_protocol = ZondaProtocol(self)
65
-
66
- self.logger.debug(f"Binding ZeroMQ socket to {self.device_protocol.get_bind_address()}")
67
-
68
- self.device_protocol.bind(self.dev_ctrl_cmd_sock)
69
-
70
- self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
71
-
72
- def get_communication_protocol(self):
73
- return CTRL_SETTINGS.PROTOCOL
74
-
75
- def get_commanding_port(self):
76
- return CTRL_SETTINGS.COMMANDING_PORT
77
-
78
- def get_service_port(self):
79
- return CTRL_SETTINGS.SERVICE_PORT
80
-
81
- def get_monitoring_port(self):
82
- return CTRL_SETTINGS.MONITORING_PORT
83
-
84
- def get_storage_mnemonic(self):
85
- try:
86
- return CTRL_SETTINGS.STORAGE_MNEMONIC
87
- except AttributeError:
88
- return "ZONDA"
89
-
90
- def before_serve(self):
91
- start_http_server(CTRL_SETTINGS.METRICS_PORT)
92
-
93
- @click.group()
94
- def cli():
95
- pass
96
-
97
-
98
- @cli.command()
99
- @click.option("--simulator", "--sim", is_flag=True, help="Start the Hexapod Zonda Simulator as the backend.")
100
- def start(simulator):
101
- """Start the Hexapod Zonda Control Server."""
102
-
103
- if simulator:
104
-
105
- Settings.set_simulation_mode(True)
106
-
107
- try:
108
-
109
- controller = ZondaControlServer()
110
- controller.serve()
111
-
112
- except KeyboardInterrupt:
113
-
114
- print("Shutdown requested...exiting")
115
-
116
- except SystemExit as exit_code:
117
-
118
- print("System Exit with code {}.".format(exit_code))
119
- sys.exit(exit_code)
120
-
121
- except Exception:
122
-
123
- logger.exception("Cannot start the Hexapod Zonda Control Server")
124
-
125
- # The above line does exactly the same as the traceback, but on the logger
126
- # import traceback
127
- # traceback.print_exc(file=sys.stdout)
128
-
129
- return 0
130
-
131
-
132
- @cli.command()
133
- def start_bg():
134
- """Start the ZONDA Control Server in the background."""
135
- invoke.run("zonda_cs start", disown=True)
136
-
137
-
138
- @cli.command()
139
- def stop():
140
- """Send a 'quit_server' command to the Hexapod Zonda Control Server."""
141
-
142
- try:
143
- with ZondaProxy() as proxy:
144
- sp = proxy.get_service_proxy()
145
- sp.quit_server()
146
- except ConnectionError:
147
- rich.print("[red]Couldn't connect to 'zonda_cs', process probably not running. ")
148
-
149
-
150
- @cli.command()
151
- def status():
152
- """Request status information from the Control Server."""
153
-
154
- protocol = CTRL_SETTINGS.PROTOCOL
155
- hostname = CTRL_SETTINGS.HOSTNAME
156
- port = CTRL_SETTINGS.COMMANDING_PORT
157
-
158
- endpoint = connect_address(protocol, hostname, port)
159
-
160
- if is_control_server_active(endpoint):
161
- status = "[green]active"
162
- else:
163
- status = "[red]not active"
164
-
165
- rich.print(f"ZONDA Hexapod: {status}")
166
-
167
-
168
- if __name__ == "__main__":
169
-
170
- logging.basicConfig(level=logging.DEBUG, format=Settings.LOG_FORMAT_FULL)
171
-
172
- sys.exit(cli())