cgse 2024.7.0__py3-none-any.whl → 2025.0.1__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.1.dist-info/METADATA +38 -0
  4. cgse-2025.0.1.dist-info/RECORD +5 -0
  5. {cgse-2024.7.0.dist-info → cgse-2025.0.1.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
scripts/csl_model.py DELETED
@@ -1,420 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- """
4
- Created on Tue Dec 10 17:09:04 2019
5
-
6
- @author: pierre
7
- """
8
-
9
- """
10
- MGSE MODEL wrt Coordinate Systems
11
-
12
- Two models are necessary, representing the same MGSE, but on diff. bases
13
- * model M (for Mec)
14
- - based on GL_FIX as a master
15
- - filled progressively during the mechanical alignment of the MGSE
16
- - never used to represent any actual movement
17
- - only used to gather information, and then it is transfered to model A
18
-
19
- * model A (for Alignment, or Active)
20
- - based on HEX_MEC as a master
21
- - filled in one go from a model M once it's complete
22
- - used for the entire optical alignment
23
-
24
- """
25
-
26
- import sys
27
-
28
- sys.path
29
-
30
- import numpy as np
31
-
32
- # egse
33
- from egse.coordinates.referenceFrame import ReferenceFrame
34
-
35
- # Hexapod
36
- from egse.hexapod.symetrie.puna import PunaController
37
- from egse.hexapod.symetrie.puna import PunaSimulator
38
- from egse.hexapod.symetrie.puna import HexapodError
39
-
40
- from egse.coordinates.point import Points
41
-
42
-
43
- def printm(matrix, rounding=2):
44
- import numpy as np
45
- print(np.round(matrix, rounding))
46
-
47
-
48
- ################################################################################
49
-
50
- # PREDEFINED CONSTANTS
51
- # Rotation - identity
52
- rdef = np.identity(3)
53
- # Translation - null
54
- tdef = np.array([0, 0, 0])
55
- # Zoom - unit
56
- zdef = np.array([1, 1, 1])
57
- # Shear
58
- sdef = np.array([0, 0, 0])
59
-
60
- pi4 = np.pi / 4.
61
- I = np.identity(4)
62
-
63
- # Rotation around static axis, and around x, y and z in that order
64
- rot_config = "sxyz"
65
-
66
- try:
67
- hex = PunaController()
68
- hex.connect()
69
- except HexapodError:
70
- hex = PunaSimulator()
71
-
72
- print(f"Hexapod is a simulator: {hex.is_simulator()}")
73
-
74
- degrees = True
75
-
76
- ################################################################################
77
- # MODEL M : mechanical alignment of the MGSE
78
- ################################################################################
79
-
80
- ## TODO : READ translations and rotations FROM CALIBRATION FILE
81
- testtr = np.array([-2, -2, -2])
82
- testrot = np.array([-3, -4, -5])
83
-
84
- """
85
- ## WORKING WITH GL_FIX = master until the end of the alignment.
86
-
87
- # Master
88
- master0 = ReferenceFrame.createMaster()
89
-
90
- # GL_FIX = Identity
91
- glfix0 = ReferenceFrame(transformation=np.identity(4), ref=master0,name="glfix0", rot_config=rot_config)
92
- glfix0.addLink(master0)#,transformation=np.identity(4))
93
-
94
- #print(glfix in masterM.linkedTo)
95
-
96
- # GL_ROT --> GL_FIX -- no link
97
- glrot0 = ReferenceFrame(transformation=np.identity(4), ref=glfix0,name="glrot0", rot_config=rot_config)
98
-
99
- # GL_ISO --> GL_ROT
100
- tr_gliso = testtr
101
- rot_gliso = testrot
102
- gliso0 = ReferenceFrame.fromTranslationRotation(tr_gliso,rot_gliso,rot_config=rot_config, ref=glrot0,name="gliso0",degrees=degrees)
103
- gliso0.addLink(glrot0)#,transformation=gliso.transformation)
104
- """
105
-
106
- # Master
107
- master0fix = ReferenceFrame.createMaster()
108
-
109
- ##################
110
- # REFERENCE FRAMES ## A. MGSE ALIGNMENT : GL_FIX as a master
111
- ##################
112
-
113
- # GL_FIX = Identity
114
- glfix0fix = ReferenceFrame(transformation=np.identity(4), ref=master0fix, name="glfix0fix", rot_config=rot_config)
115
- glfix0fix.addLink(master0fix)
116
-
117
- # print(glfix in masterM.linkedTo)
118
-
119
- # GL_ROT --> GL_FIX -- no link
120
- glrot0fix = ReferenceFrame(transformation=np.identity(4), ref=glfix0fix, name="glrot0fix", rot_config=rot_config)
121
-
122
- # GL_ISO --> GL_ROT
123
- tr_gliso = testtr
124
- rot_gliso = testrot
125
- gliso0fix = ReferenceFrame.fromTranslationRotation(tr_gliso, rot_gliso, rot_config=rot_config, ref=glrot0fix,
126
- name="gliso0fix", degrees=degrees)
127
- gliso0fix.addLink(glrot0fix)
128
-
129
- ##################
130
- # CHANGE OF REFERENCE --> GL_ISO BECOMES THE MASTER
131
- ##################
132
-
133
- # Master
134
- master0 = ReferenceFrame.createMaster()
135
-
136
- gliso0 = ReferenceFrame(transformation=np.identity(4), ref=master0, name="gliso0", rot_config=rot_config)
137
- gliso0.addLink(master0)
138
-
139
- # GL_ROT --> GL_ISO
140
- transformation = glrot0fix.getActiveTransformationFrom(gliso0fix)
141
- glrot0 = ReferenceFrame(transformation=transformation, ref=gliso0, name="glrot0", rot_config=rot_config)
142
- glrot0.addLink(gliso0)
143
-
144
- # GL_FIX
145
- transformation = glfix0fix.getActiveTransformationFrom(glrot0fix)
146
- glfix0 = ReferenceFrame(transformation=transformation, ref=glrot0, name="glfix0", rot_config=rot_config)
147
-
148
- ##################
149
- # PROCEED DEFINING THE MODEL. GL_ISO IS NOW THE MASTER
150
- ##################
151
-
152
- # HEX_IS0 --> GL_ISO
153
- tr_hexiso = testtr
154
- rot_hexiso = testrot
155
- hexiso0 = ReferenceFrame.fromTranslationRotation(tr_hexiso, rot_hexiso, rot_config=rot_config, ref=gliso0,
156
- name="hexiso0", degrees=degrees)
157
- hexiso0.addLink(gliso0)
158
-
159
- # HEX_MEC --> HEX_ISO
160
- hexmec0 = ReferenceFrame(transformation=np.identity(4), ref=hexiso0, name="hexmec0", rot_config=rot_config)
161
- hexmec0.addLink(hexiso0)
162
-
163
- # HEX_PLT --> HEX_MEC -- no link
164
- tr_hexplt = testtr
165
- rot_hexplt = testrot
166
- hexplt0 = ReferenceFrame(transformation=np.identity(4), ref=hexmec0, name="hexplt0", rot_config=rot_config)
167
-
168
- # FPA_ALN --> GL_ISO -- no link
169
- tr_fpaaln = testtr
170
- rot_fpaaln = testrot
171
- fpaaln0 = ReferenceFrame.fromTranslationRotation(tr_fpaaln, rot_fpaaln, rot_config=rot_config, ref=gliso0,
172
- name="fpaaln0", degrees=degrees)
173
-
174
- # FPA_SEN --> FPA_ALN
175
- tr_fpasen = testtr
176
- rot_fpasen = testrot
177
- fpasen0 = ReferenceFrame.fromTranslationRotation(tr_fpasen, rot_fpasen, rot_config=rot_config, ref=fpaaln0,
178
- name="fpasen0", degrees=degrees)
179
- fpasen0.addLink(fpaaln0)
180
-
181
- # HEX_OBJ --> FPA_SEN
182
- transformation = fpasen0.getActiveTransformationFrom(hexplt0)
183
- hexobj0 = ReferenceFrame(transformation=transformation, ref=hexplt0, name="hexobj0", rot_config=rot_config)
184
- hexobj0.addLink(fpasen0)
185
-
186
- # FPA_MEC --> FPA_ALN
187
- tr_fpamec = testtr
188
- rot_fpamec = testrot
189
- fpamec0 = ReferenceFrame.fromTranslationRotation(tr_fpamec, rot_fpamec, rot_config=rot_config, ref=fpaaln0,
190
- name="fpamec0", degrees=degrees)
191
- fpamec0.addLink(fpaaln0)
192
-
193
- # THE FOLLOWING ARE FOR CSL PURPOSE : TOU_ALN, TOU_OPT, CAM_MEC, MARI_ALN, CAM_BOR
194
- # MARI_ALN wrt TOU_ALN and CAM_BOR wrt TOU_ALN are deliverables from CSL to the TH and the CM resp.
195
- # The order in which we get the absolute location of these systems is TBD, cos it may differ
196
- # from the order in which they are derived, because some may only positioned in orientation
197
- # to start with. TBD.
198
-
199
- # Originally TOU_ALN only measured in orientation, no abs. location wrt GL_ISO
200
- # Changed later on : will be provided wrt TOU_MEC
201
- # in order to be able to locate CAM_BOR (deliverable) and express MARI_ALN (deliverable)
202
-
203
- # TOU_MEC --> GL_ISO
204
- tr_toumec = testtr
205
- rot_toumec = testrot
206
- toumec0 = ReferenceFrame.fromTranslationRotation(tr_toumec, rot_toumec, rot_config=rot_config, ref=gliso0,
207
- name="toumec0", degrees=degrees)
208
- toumec0.addLink(gliso0)
209
-
210
- # TOU_ALN --> TOU_MEC --> here or in B.
211
- tr_toualn = testtr
212
- rot_toualn = testrot
213
- toualn0 = ReferenceFrame.fromTranslationRotation(tr_toualn, rot_toualn, rot_config=rot_config, ref=toumec0,
214
- name="toualn0", degrees=degrees)
215
- toualn0.addLink(toumec0)
216
-
217
- # MARI_ALN --> TOU_ALN --> here or in B.
218
- tr_marialn = testtr
219
- rot_marialn = testrot
220
- marialn0 = ReferenceFrame.fromTranslationRotation(tr_marialn, rot_marialn, rot_config=rot_config, ref=toualn0,
221
- name="marialn0", degrees=degrees)
222
- marialn0.addLink(toualn0)
223
-
224
- # TOU_OPT --> TOU_ALN -- optional
225
- tr_touopt = testtr
226
- rot_touopt = testrot
227
- touopt0 = ReferenceFrame.fromTranslationRotation(tr_touopt, rot_touopt, rot_config=rot_config, ref=toualn0,
228
- name="touopt0", degrees=degrees)
229
- touopt0.addLink(toualn0)
230
-
231
- # CAM_MEC --> TOU_ALN -- optional
232
- tr_cammec = testtr
233
- rot_cammec = testrot
234
- cammec0 = ReferenceFrame.fromTranslationRotation(tr_cammec, rot_cammec, rot_config=rot_config, ref=toualn0,
235
- name="cammec0", degrees=degrees)
236
- cammec0.addLink(toualn0)
237
-
238
- # Note we establish the full model and then transfer it to another master (hexmec)
239
- # In reality a number of frames could be established directly in the final master:
240
- # fpasen, fpamec, toul6, hexusr
241
- # In practice they will certainly be communicated at this stage -> more logical this way
242
-
243
- # TOU_L6 --> TOU_MEC
244
- tr_toul6 = testtr
245
- rot_toul6 = testrot
246
- toul60 = ReferenceFrame.fromTranslationRotation(tr_toul6, rot_toul6, rot_config=rot_config, ref=toumec0, name="toul60",
247
- degrees=degrees)
248
- toul60.addLink(toumec0)
249
-
250
- # HEX_USR
251
- # USR, defined in MEC --> first define a virtual frame in TOU_L6, then redefine it in HEX_MEC
252
- tr_hexusr = [0, 0, -1.65]
253
- rot_hexusr = [0, 0, 0]
254
- hexusrtou = ReferenceFrame.fromTranslationRotation(tr_hexusr, rot_hexusr, rot_config=rot_config, ref=toul60,
255
- name="hexusrtou", degrees=degrees)
256
- transformation = hexusrtou.getActiveTransformationFrom(hexmec0)
257
- hexusr0 = ReferenceFrame(transformation=transformation, ref=hexmec0, name="hexusr0", rot_config=rot_config)
258
- hexusr0.addLink(hexmec0)
259
-
260
- del hexusrtou
261
-
262
- # HEX_OBUSR
263
- transformation = hexusr0.getActiveTransformationTo(hexobj0)
264
- hexobusr0 = ReferenceFrame(transformation=transformation, rot_config=rot_config, ref=hexusr0, name="hexobusr0")
265
- hexobusr0.addLink(hexobj0)
266
-
267
- """
268
- # At this stage, hexapod movements could intervene to recenter the FPA wrt TOU
269
-
270
- # This should be delayed as long as hexusr (L6S2) and hexobj (FPA_SEN)
271
- # haven't been properly defined, the avoidance volume can't be checked
272
-
273
- # From this point on it's doable though (use is_avoidance_ok)
274
-
275
- """
276
-
277
- ##################
278
- # REFERENCE FRAMES ## B. ALIGNMENT : TRANSFER MASTER to HEX_MEC & MODEL SIMPLIFICATION
279
- ##################
280
-
281
- master = ReferenceFrame.createMaster()
282
-
283
- # HEX_MEC
284
- hexmec = ReferenceFrame(transformation=np.identity(4), ref=master, name="hexmec", rot_config=rot_config)
285
- hexmec.addLink(master)
286
-
287
- # HEX_PLT
288
- transformation = hexplt0.getActiveTransformationFrom(hexmec0)
289
- hexplt = ReferenceFrame(transformation=transformation, ref=hexmec, name="hexplt", rot_config=rot_config)
290
-
291
- # HEX_OBJ
292
- transformation = hexobj0.getActiveTransformationFrom(hexplt0)
293
- hexobj = ReferenceFrame(transformation=transformation, ref=hexplt, name="hexobj", rot_config=rot_config)
294
- hexobj.addLink(hexplt)
295
-
296
- # FPA_MEC
297
- transformation = fpamec0.getActiveTransformationFrom(hexobj0)
298
- fpamec = ReferenceFrame(transformation=transformation, ref=hexobj, name="fpamec", rot_config=rot_config)
299
- fpamec.addLink(hexobj)
300
-
301
- # TOU_MEC
302
- transformation = toumec0.getActiveTransformationFrom(hexmec0)
303
- toumec = ReferenceFrame(transformation=transformation, ref=hexmec, name="toumec", rot_config=rot_config)
304
- toumec.addLink(hexmec)
305
-
306
- # HEX_USR
307
- transformation = hexusr0.getActiveTransformationFrom(hexmec0)
308
- hexusr = ReferenceFrame(transformation=transformation, ref=hexmec, name="hexusr", rot_config=rot_config)
309
- hexusr.addLink(hexmec)
310
-
311
- # CHANGE HEX_USR DEFINITION IN THE HEXAPOD CONTROLLER
312
-
313
- # HEX_OBUSR
314
- transformation = hexobj0.getActiveTransformationFrom(hexusr0)
315
- hexobusr = ReferenceFrame(transformation=transformation, ref=hexusr, name="hexobusr", rot_config=rot_config)
316
- hexobusr.addLink(hexobj)
317
-
318
- # Deliverables : MARI_ALN & CAM_BOR --> unnecessary for the alignment
319
- # but easier to represent them and get them for free in the end
320
- # TOU_ALN --> TOU_MEC
321
- transformation = toualn0.getActiveTransformationFrom(toumec0)
322
- toualn = ReferenceFrame(transformation=transformation, ref=toumec, name="toualn", rot_config=rot_config)
323
- toualn.addLink(toumec)
324
-
325
- # MARI_ALN --> TOU_ALN
326
- transformation = marialn0.getActiveTransformationFrom(toualn0)
327
- marialn = ReferenceFrame(transformation=transformation, ref=toualn, name="marialn", rot_config=rot_config)
328
- marialn.addLink(toualn)
329
-
330
- ######
331
- # CAM_BOR is only established after the alignment. This is a "placeholder"
332
- # CAM_BOR is // TOU_OPT with its origin == that of FPA_SEN
333
- # 0. get TOU_OPT (fixed wrt TOU_ALN)
334
- # 1. Define CAM_BOR == TOU_OPT with CAM_BOR.ref = TOU_ALN
335
- # 2. Determine the translation vector from TOU_OPT.origin to FPA_SEN.origin (HEX_OBJ.origin)
336
- # 3. Apply that translation to CAM_BOR. It is now properly defined
337
- # 4. Deliverables : its translation-rotation vectors wrt TOU_ALN
338
-
339
- # 0.
340
- # TOU_OPT --> TOU_ALN
341
- transformation = touopt0.getActiveTransformationFrom(toualn0)
342
- touopt = ReferenceFrame(transformation=transformation, ref=toualn, name="touopt", rot_config=rot_config)
343
- touopt.addLink(toualn)
344
-
345
- # 1.
346
- transformation = touopt.getActiveTransformationFrom(toualn)
347
- cambor = ReferenceFrame(transformation=transformation, ref=toualn, name="cambor", rot_config=rot_config)
348
-
349
- # 2. & 3.
350
- translation = hexobj.getOrigin().expressIn(touopt)[:3]
351
- rotation = [0., 0., 0.]
352
- cambor.applyTranslationRotation(translation, rotation, rot_config=rot_config, degrees=degrees)
353
-
354
- # 4.
355
- translation, rotation = cambor.getActiveTranslationRotationVectorsFrom(toualn)
356
-
357
- csl_model = [master, hexmec, hexplt, hexobj, hexusr, hexobusr, fpamec, toumec, toualn, touopt, marialn, cambor]
358
-
359
- ##################
360
- # AVOIDANCE VOLUME
361
- ##################
362
-
363
- """
364
- # NECESSARY FIELDS IN THE SETUP
365
-
366
- setup.camera.fpa.avoidance.clearance_xy # Horizontal clearance around L6
367
- setup.camera.fpa.avoidance.clearance_z # Vertical uncertainty on teh CCD location
368
- setup.camera_fpa.avoidance.vertices_nb # nb of points to represent the avoidance volume above the FPA
369
- setup.camera_fpa.avoidance.vertices_radius # radius of the circle to represend the avoidance volume above the FPA
370
-
371
- """
372
-
373
- setup = load_setup()
374
-
375
- """
376
- A. HORIZONTAL AVOIDANCE
377
- Ensure that the center of L6, materialised by HEX_USR (incl. z-direction security wrt TOU_L6)
378
- stays within a given radius of the origin of FPA_SEN
379
- """
380
-
381
- # Clearance = the tolerance in every horizontal direction (3 mm; PLATO-KUL-PL-ICD-0001 v1.2)
382
- clearance_xy = setup.camera.fpa.avoidance.clearance_xy
383
-
384
- # l6xy = the projection of the origin of HEX_USR on the X-Y plane of FPA_SEN
385
- l6xy = hexusr.getOrigin().expressIn(hexobj)[:2]
386
-
387
- # !! This is a verification of the current situation --> need to replace by a simulation of the forthcoming movement in the building block
388
- assert ((l6xy[0] ** 2. + l6xy[1] ** 2.) < clearance_xy * clearance_xy)
389
-
390
- """
391
- B. VERTICAL AVOIDANCE
392
- Ensure that the CCD never hits L6.
393
- The definition of HEX_USR includes a tolerance below L6 (1.65 mm)
394
- We include a tolerance above FPA_SEN here (0.3 mm)
395
- We define a collection of points to act at the vertices of the avoidance volume above the FPA
396
- """
397
-
398
- # Clearance = vertical uncertainty on the CCD location (0.3 mm; PLATO-KUL-PL-ICD-0001 v1.2)
399
- clearance_z = setup.camera.fpa.avoidance.clearance_z
400
-
401
- # Vertices = Points representing the vertices of the avoidance volume above the FPA (60)
402
- vertices_nb = setup.camera.fpa.avoidance.vertices_nb
403
- # All vertices are on a circle of radius 'vertices_radius' (100 mm)
404
- vertices_radius = setup.camera.fpa.avoidance.vertices_radius
405
-
406
- angles = np.linspace(0, np.pi * 2, vertices_nb, endpoint=False)
407
- vertices_x = np.cos(angles) * vertices_radius
408
- vertices_y = np.sin(angles) * vertices_radius
409
- vertices_z = np.ones_like(angles) * clearance_z
410
-
411
- # The collection of Points defining the avoidance volume around FPA_SEN
412
- vert_obj = Points(coordinates=np.array([vertices_x, vertices_y, vertices_z]), ref=hexobj, name="vertices")
413
-
414
- # Their coordinates in HEX_USR
415
- # NB: vert_obj is a Points, vert_usr is an array
416
- vert_usr = vert_obj.expressIn(hexusr)
417
-
418
- # !! Same as above : this is verifying the current situation, not the one after a planned movement
419
- # Verify that all vertices ("protecting" FPA_SEN) are below the x-y plane of HEX_USR ("protecting" L6)
420
- assert (np.all(vert_usr[2, :] < 0.))
@@ -1,229 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- """
4
- Created on Thu Sep 10 16:54:25 2020
5
-
6
- @author: pierre
7
- """
8
-
9
- import os
10
-
11
-
12
- import numpy as np
13
-
14
- #import pandas
15
-
16
- # egse
17
- from egse.coordinates.cslmodel import CSLReferenceFrameModel
18
- from egse.state import Setup
19
- from scripts.laser_tracker_to_dict import laser_tracker_to_dict
20
-
21
- # Hexapod
22
- #from egse.hexapod.symetrie.puna import PunaController
23
- from egse.hexapod.symetrie.puna import PunaSimulator
24
- #from egse.hexapod.symetrie.puna import HexapodError
25
-
26
- #from egse.coordinates.point import Points
27
-
28
- from egse.coordinates import ref_model_to_dict, dict_to_ref_model
29
-
30
- from camtest import list_setups, load_setup
31
-
32
- from camtest.core import submit_setup
33
-
34
- # submit_setup
35
-
36
- from scripts.avoidance import is_avoidance_ok
37
-
38
-
39
- def printm(matrix,rounding=2):
40
- import numpy as np
41
- print(np.round(matrix,rounding))
42
-
43
- """
44
- def check_positions(out, expected, rel=0.0001, abs=0.0001):
45
- assert len(out) == len(expected)
46
- for idx, element in enumerate(out):
47
- assert element == approx(expected[idx], rel=rel, abs=abs)
48
- """
49
-
50
- def positions_match(hexapod,hexsim,atol=0.0001,rtol=0.0001):
51
- return np.allclose(hexapod.get_user_positions(), hexsim.get_user_positions(), atol=atol, rtol=rtol)
52
-
53
- confdir = os.getenv("PLATO_CONF_DATA_LOCATION")
54
-
55
-
56
- ################################################################################
57
-
58
- list_setups()
59
-
60
- setupnr = 9
61
-
62
- setup = load_setup(setupnr)
63
-
64
-
65
- #===================== Ingest model from xls file =============================
66
-
67
-
68
-
69
- filexls = "/Users/pierre/plato/csl_refFrames.xls"
70
-
71
-
72
- refFrames = laser_tracker_to_dict(filexls)
73
-
74
- print(refFrames)
75
-
76
- dict_model = dict_to_ref_model(refFrames)
77
-
78
- csl_model = CSLReferenceFrameModel(refFrames)
79
-
80
- transformation = csl_model.get_frame("hexusr").getActiveTransformationTo(csl_model.get_frame("hexobj"))
81
- csl_model.add_frame(name="hexobusr", transformation=transformation, ref="hexusr")
82
-
83
- # create hex_iso ?
84
-
85
- ## Add the links
86
- csl_model.add_link("hexplt","hexobj")
87
- csl_model.add_link("hexobj","hexobusr")
88
- csl_model.add_link("hexmec","hexusr")
89
-
90
- # fpa links ?
91
-
92
-
93
- #=============================== POSITION 2 ===================================
94
-
95
- # Run csl_model up to the definition of HEX_OBUSR (egse/scripts)
96
-
97
- ## Instantiate a hexapod simulator
98
-
99
- #hexsim = PunaSimulator(hex_mec=hexmec0, hex_plt=hexplt0, hex_obj=hexobj0, hex_usr=hexusr0, hex_obusr=hexobusr0)
100
-
101
-
102
-
103
-
104
-
105
- # 1. Save setup before going to retracted position == save FPA_SEN position
106
- """
107
- csl_list = [master0, gliso0, glrot0, glfix0, hexmec0,hexplt0, fpaaln0, fpasen0, \
108
- hexobj0,fpamec0,toumec0,toualn0,marialn0,touopt0,cammec0,toul60, \
109
- hexusr0,hexobusr0]
110
-
111
- csl_dict = ref_model_to_dict(csl_list)
112
-
113
- #setup.csl_model = csl_dict
114
-
115
-
116
- csl_model = CSLReferenceFrameModel(csl_dict)
117
- """
118
-
119
-
120
- csl_dict = csl_model.serialize()
121
-
122
- setup.csl_model = csl_dict
123
-
124
-
125
-
126
- #newsetupfile = confdir+f"setup_{setupnr}_cslmodel.yaml"
127
-
128
- #setup.to_yaml_file(newsetupfile)
129
-
130
- setup = submit_setup(setup, "STM - FPA in place")
131
-
132
-
133
- # 2. Goto retracted position
134
-
135
- # 2a. simulation
136
-
137
- hexsim.goto_retracted_position()
138
-
139
- # 2b. hardware
140
-
141
- execute(hexapod_puna_goto_retracted_position,wait=True)
142
-
143
- # 2c. Check that model still coincides with new HW position
144
- # MAKE SURE HEX IS NOT A SIMULATOR...
145
-
146
- print(f"Hexapod & Model match: {positions_match(hex,hexsim)}")
147
-
148
- # 3. Save setup in retracted position
149
-
150
- # 3a. Save full model, for the record
151
-
152
- csl_dict = ref_model_to_dict(csl_model)
153
-
154
- setup.csl_model = csl_dict
155
-
156
-
157
- # 3b. Save partial model, to be restored after the egse_sleep --> exclude glfix and glrot
158
- csl_model_to_restore = [master0, gliso0, hexmec0,hexplt0, fpaaln0, fpasen0, \
159
- hexobj0,fpamec0,toumec0,toualn0,marialn0,touopt0,cammec0,toul60, \
160
- hexusr0,hexobusr0]
161
-
162
- csl_dict = ref_model_to_dict(csl_model_to_restore)
163
-
164
- setup.csl_model_to_restore = csl_dict
165
-
166
- setup = submit_setup(setup, "STM - Retracted")
167
-
168
-
169
-
170
- #=============== EGSE SLEEP --> POSITION 1 --> WAKEUP ========================
171
-
172
- #=============================== POSITION 1 ===================================
173
-
174
- list_setups()
175
-
176
- # 1. Restore the retracted setup
177
-
178
- setup = load_setup(TODO) # "STM - Retracted"
179
-
180
- #setreup = Setup.from_yaml_file(newsetupfile)
181
-
182
- # 2. Extract the csl_model from the setup -- select the retracted setup, without
183
-
184
- csl_dict = setup.csl_model_to_restore
185
-
186
- csl_model = dict_to_ref_model(csl_dict)
187
-
188
- # 3. Instantiate hexapod model
189
-
190
- hexsim = PunaSimulator(hex_mec=csl_model["hexmec0"],hex_plt=csl_model["hexplt0"],hex_obj=csl_model["hexobj0"],hex_usr=csl_model["hexusr0"],hex_obusr=csl_model["hexobusr0"])
191
-
192
-
193
- # 4. Read model with FPA_SEN in position
194
-
195
- newsetupfile = confdir + "TODO.yaml"
196
-
197
- # TODO : REPLACE NEXT LINE BY get_setup(setup_id)
198
- setup_high = Setup.from_yaml_file(newsetupfile) # "STM - FPA in place"
199
-
200
-
201
- # 5. Extract model with FPA high
202
-
203
- csl_dict_high = setup_high.csl_model
204
-
205
- csl_model_high = dict_to_ref_model(csl_dict_high)
206
-
207
-
208
- # 6. Extract FPA_SEN position to be restored
209
-
210
- vtrans, vrot = csl_model_high["fpasen0"].getActiveTranslationRotationVectorsFrom(csl_model_high["hexmec0"])
211
-
212
-
213
- # 7. Command the hexapod to that same location
214
-
215
- hexsim.move_absolute(*vtrans,*vrot)
216
-
217
- avoidance_respected = is_avoidance_ok(csl_model["hexusr0"], csl_model["hexobj0"], setup=None, verbose=True)
218
-
219
- print(f"Avoidance OK after movement : {avoidance_respected}")
220
-
221
- if avoidance_respected:
222
-
223
- execute(hexapod_puna_move_absolute_user,*vtrans,*vrot,wait=True)
224
-
225
- else:
226
-
227
- print("Call your local EGSE manager")
228
-
229
-
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env python3
2
-
3
- """
4
- Grafana dashboard exporter
5
-
6
- The exported dashboards are saved in a directory 'exported-dashboards-<datetime>'
7
- """
8
-
9
- import json
10
- import os
11
- from pathlib import Path
12
-
13
- import requests
14
-
15
- from egse.system import format_datetime
16
-
17
- HOST = 'http://lin-plato-2.sron.rug.nl:3000'
18
- API_KEY = os.environ["GRAFANA_API_KEY"]
19
-
20
- DIR = f'exported-dashboards-{format_datetime(fmt="%Y%m%d%H%M%S")}'
21
-
22
-
23
- def main():
24
- headers = {'Authorization': f'Bearer {API_KEY}'}
25
- response = requests.get(f'{HOST}/api/search?query=&', headers=headers)
26
- response.raise_for_status()
27
- dashboards = response.json()
28
- # print_json(data=dashboards)
29
-
30
- if not os.path.exists(DIR):
31
- print(f"Creating folder {DIR}")
32
- os.makedirs(DIR)
33
-
34
- for dashboard in dashboards:
35
- response = requests.get(f"{HOST}/api/dashboards/uid/{dashboard['uid']}", headers=headers)
36
- # print_json(data=response.json())
37
- data = response.json()['dashboard']
38
- dash = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
39
- name = data['title'].replace(' ', '_').replace('/', '_').replace(':', '').replace('[', '').replace(']', '').replace('.', '_')
40
-
41
- print(f"Saving: {dashboard['title']} as {name}")
42
-
43
- with open(Path(DIR, name).with_suffix('.json'), 'w') as fd:
44
- fd.write(dash)
45
- fd.write('\n')
46
-
47
-
48
- if __name__ == '__main__':
49
- main()