cgse 2023.38.0__py3-none-any.whl → 2024.1.3__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 (653) hide show
  1. README.md +27 -0
  2. bump.py +77 -0
  3. cgse-2024.1.3.dist-info/METADATA +41 -0
  4. cgse-2024.1.3.dist-info/RECORD +5 -0
  5. {cgse-2023.38.0.dist-info → cgse-2024.1.3.dist-info}/WHEEL +1 -2
  6. cgse-2023.38.0.dist-info/COPYING +0 -674
  7. cgse-2023.38.0.dist-info/COPYING.LESSER +0 -165
  8. cgse-2023.38.0.dist-info/METADATA +0 -144
  9. cgse-2023.38.0.dist-info/RECORD +0 -649
  10. cgse-2023.38.0.dist-info/entry_points.txt +0 -75
  11. cgse-2023.38.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 -5235
  15. egse/aeu/aeu_awg.yaml +0 -265
  16. egse/aeu/aeu_crio.yaml +0 -273
  17. egse/aeu/aeu_cs.py +0 -626
  18. egse/aeu/aeu_devif.py +0 -321
  19. egse/aeu/aeu_main_ui.py +0 -912
  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 -234
  46. egse/alert/alertman_ui.py +0 -603
  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 -130
  51. egse/alert/gsm/beaglebone_protocol.py +0 -48
  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 -129
  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 -1015
  66. egse/confman/confman.yaml +0 -67
  67. egse/confman/confman_cs.py +0 -239
  68. egse/confman/confman_ui.py +0 -381
  69. egse/confman/setup_ui.py +0 -565
  70. egse/control.py +0 -442
  71. egse/coordinates/__init__.py +0 -531
  72. egse/coordinates/avoidance.py +0 -103
  73. egse/coordinates/cslmodel.py +0 -127
  74. egse/coordinates/laser_tracker_to_dict.py +0 -120
  75. egse/coordinates/point.py +0 -707
  76. egse/coordinates/pyplot.py +0 -195
  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 -1247
  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 -415
  110. egse/device.py +0 -269
  111. egse/dpu/__init__.py +0 -2681
  112. egse/dpu/ccd_ui.py +0 -508
  113. egse/dpu/dpu.py +0 -786
  114. egse/dpu/dpu.yaml +0 -153
  115. egse/dpu/dpu_cs.py +0 -272
  116. egse/dpu/dpu_ui.py +0 -668
  117. egse/dpu/fitsgen.py +0 -2077
  118. egse/dpu/fitsgen_test.py +0 -752
  119. egse/dpu/fitsgen_ui.py +0 -399
  120. egse/dpu/hdf5_model.py +0 -332
  121. egse/dpu/hdf5_ui.py +0 -277
  122. egse/dpu/hdf5_viewer.py +0 -506
  123. egse/dpu/hk_ui.py +0 -468
  124. egse/dpu_commands.py +0 -81
  125. egse/dsi/constants.py +0 -220
  126. egse/dsi/esl.py +0 -870
  127. egse/dsi/rmap.py +0 -1042
  128. egse/dsi/rmapci.py +0 -37
  129. egse/dsi/spw.py +0 -154
  130. egse/dsi/spw_state.py +0 -29
  131. egse/dummy.py +0 -258
  132. egse/dyndummy.py +0 -179
  133. egse/env.py +0 -278
  134. egse/exceptions.py +0 -88
  135. egse/fdir/__init__.py +0 -28
  136. egse/fdir/fdir_manager.py +0 -85
  137. egse/fdir/fdir_manager.yaml +0 -51
  138. egse/fdir/fdir_manager_controller.py +0 -228
  139. egse/fdir/fdir_manager_cs.py +0 -164
  140. egse/fdir/fdir_manager_interface.py +0 -25
  141. egse/fdir/fdir_remote.py +0 -73
  142. egse/fdir/fdir_remote.yaml +0 -37
  143. egse/fdir/fdir_remote_controller.py +0 -50
  144. egse/fdir/fdir_remote_cs.py +0 -97
  145. egse/fdir/fdir_remote_interface.py +0 -14
  146. egse/fdir/fdir_remote_popup.py +0 -31
  147. egse/fee/__init__.py +0 -114
  148. egse/fee/f_fee_register.yaml +0 -43
  149. egse/fee/fee.py +0 -631
  150. egse/fee/feesim.py +0 -750
  151. egse/fee/n_fee_hk.py +0 -761
  152. egse/fee/nfee.py +0 -187
  153. egse/filterwheel/__init__.py +0 -4
  154. egse/filterwheel/eksma/__init__.py +0 -24
  155. egse/filterwheel/eksma/fw8smc4.py +0 -661
  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 -81
  160. egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
  161. egse/filterwheel/eksma/fw8smc5.py +0 -111
  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 -1068
  168. egse/filterwheel/eksma/testpythonfw.py +0 -215
  169. egse/fov/__init__.py +0 -65
  170. egse/fov/fov_hk.py +0 -712
  171. egse/fov/fov_ui.py +0 -861
  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 -135
  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 -1281
  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 -588
  194. egse/gui/states.py +0 -148
  195. egse/gui/stripchart.py +0 -729
  196. egse/gui/switch.py +0 -112
  197. egse/h5.py +0 -274
  198. egse/help/__init__.py +0 -0
  199. egse/help/help_ui.py +0 -126
  200. egse/hexapod/__init__.py +0 -32
  201. egse/hexapod/symetrie/__init__.py +0 -138
  202. egse/hexapod/symetrie/alpha.py +0 -874
  203. egse/hexapod/symetrie/dynalpha.py +0 -1387
  204. egse/hexapod/symetrie/hexapod_ui.py +0 -1516
  205. egse/hexapod/symetrie/pmac.py +0 -1010
  206. egse/hexapod/symetrie/pmac_regex.py +0 -83
  207. egse/hexapod/symetrie/puna.py +0 -1167
  208. egse/hexapod/symetrie/puna.yaml +0 -193
  209. egse/hexapod/symetrie/puna_cs.py +0 -196
  210. egse/hexapod/symetrie/puna_protocol.py +0 -131
  211. egse/hexapod/symetrie/puna_ui.py +0 -434
  212. egse/hexapod/symetrie/punaplus.py +0 -107
  213. egse/hexapod/symetrie/zonda.py +0 -872
  214. egse/hexapod/symetrie/zonda.yaml +0 -337
  215. egse/hexapod/symetrie/zonda_cs.py +0 -172
  216. egse/hexapod/symetrie/zonda_devif.py +0 -415
  217. egse/hexapod/symetrie/zonda_protocol.py +0 -119
  218. egse/hexapod/symetrie/zonda_ui.py +0 -449
  219. egse/hk.py +0 -765
  220. egse/icons/aeu-cs-start.svg +0 -117
  221. egse/icons/aeu-cs-stop.svg +0 -118
  222. egse/icons/aeu-cs.svg +0 -107
  223. egse/icons/aeu_cs-started.svg +0 -112
  224. egse/icons/aeu_cs-stopped.svg +0 -112
  225. egse/icons/aeu_cs.svg +0 -55
  226. egse/icons/alert.svg +0 -1
  227. egse/icons/arrow-double-left.png +0 -0
  228. egse/icons/arrow-double-right.png +0 -0
  229. egse/icons/arrow-up.svg +0 -11
  230. egse/icons/backward.svg +0 -1
  231. egse/icons/busy.svg +0 -1
  232. egse/icons/cleaning.svg +0 -115
  233. egse/icons/color-scheme.svg +0 -1
  234. egse/icons/cs-connected-alert.svg +0 -91
  235. egse/icons/cs-connected-disabled.svg +0 -43
  236. egse/icons/cs-connected.svg +0 -89
  237. egse/icons/cs-not-connected.svg +0 -44
  238. egse/icons/double-left-arrow.svg +0 -1
  239. egse/icons/double-right-arrow.svg +0 -1
  240. egse/icons/erase-disabled.svg +0 -19
  241. egse/icons/erase.svg +0 -59
  242. egse/icons/fitsgen-start.svg +0 -47
  243. egse/icons/fitsgen-stop.svg +0 -48
  244. egse/icons/fitsgen.svg +0 -1
  245. egse/icons/forward.svg +0 -1
  246. egse/icons/fov-hk-start.svg +0 -33
  247. egse/icons/fov-hk-stop.svg +0 -37
  248. egse/icons/fov-hk.svg +0 -1
  249. egse/icons/front-desk.svg +0 -1
  250. egse/icons/home-actioned.svg +0 -15
  251. egse/icons/home-disabled.svg +0 -15
  252. egse/icons/home.svg +0 -13
  253. egse/icons/info.svg +0 -1
  254. egse/icons/invalid.png +0 -0
  255. egse/icons/led-green.svg +0 -20
  256. egse/icons/led-grey.svg +0 -20
  257. egse/icons/led-orange.svg +0 -20
  258. egse/icons/led-red.svg +0 -20
  259. egse/icons/led-square-green.svg +0 -134
  260. egse/icons/led-square-grey.svg +0 -134
  261. egse/icons/led-square-orange.svg +0 -134
  262. egse/icons/led-square-red.svg +0 -134
  263. egse/icons/limit-switch-all-green.svg +0 -115
  264. egse/icons/limit-switch-all-red.svg +0 -117
  265. egse/icons/limit-switch-el+.svg +0 -116
  266. egse/icons/limit-switch-el-.svg +0 -117
  267. egse/icons/location-marker.svg +0 -1
  268. egse/icons/logo-dpu.svg +0 -48
  269. egse/icons/logo-gimbal.svg +0 -112
  270. egse/icons/logo-huber.svg +0 -23
  271. egse/icons/logo-ogse.svg +0 -31
  272. egse/icons/logo-puna.svg +0 -92
  273. egse/icons/logo-tcs.svg +0 -29
  274. egse/icons/logo-zonda.svg +0 -66
  275. egse/icons/maximize.svg +0 -1
  276. egse/icons/meter.svg +0 -1
  277. egse/icons/more.svg +0 -45
  278. egse/icons/n-fee-hk-start.svg +0 -24
  279. egse/icons/n-fee-hk-stop.svg +0 -25
  280. egse/icons/n-fee-hk.svg +0 -83
  281. egse/icons/observing-off.svg +0 -46
  282. egse/icons/observing-on.svg +0 -46
  283. egse/icons/open-document-hdf5.png +0 -0
  284. egse/icons/open-document-hdf5.svg +0 -21
  285. egse/icons/ops-mode.svg +0 -1
  286. egse/icons/play-green.svg +0 -17
  287. egse/icons/plugged-disabled.svg +0 -27
  288. egse/icons/plugged.svg +0 -21
  289. egse/icons/pm_ui.svg +0 -1
  290. egse/icons/power-button-green.svg +0 -27
  291. egse/icons/power-button-red.svg +0 -27
  292. egse/icons/power-button.svg +0 -27
  293. egse/icons/radar.svg +0 -1
  294. egse/icons/radioactive.svg +0 -2
  295. egse/icons/reload.svg +0 -1
  296. egse/icons/remote-control-off.svg +0 -28
  297. egse/icons/remote-control-on.svg +0 -28
  298. egse/icons/repeat-blue.svg +0 -15
  299. egse/icons/repeat.svg +0 -1
  300. egse/icons/settings.svg +0 -1
  301. egse/icons/shrink.svg +0 -1
  302. egse/icons/shutter.svg +0 -1
  303. egse/icons/sign-off.svg +0 -1
  304. egse/icons/sign-on.svg +0 -1
  305. egse/icons/sim-mode.svg +0 -1
  306. egse/icons/small-buttons-go.svg +0 -20
  307. egse/icons/small-buttons-minus.svg +0 -51
  308. egse/icons/small-buttons-plus.svg +0 -51
  309. egse/icons/sponge.svg +0 -220
  310. egse/icons/start-button-disabled.svg +0 -84
  311. egse/icons/start-button.svg +0 -50
  312. egse/icons/stop-button-disabled.svg +0 -84
  313. egse/icons/stop-button.svg +0 -50
  314. egse/icons/stop-red.svg +0 -17
  315. egse/icons/stop.svg +0 -1
  316. egse/icons/switch-disabled-square.svg +0 -87
  317. egse/icons/switch-disabled.svg +0 -15
  318. egse/icons/switch-off-square.svg +0 -87
  319. egse/icons/switch-off.svg +0 -72
  320. egse/icons/switch-on-square.svg +0 -87
  321. egse/icons/switch-on.svg +0 -61
  322. egse/icons/temperature-control.svg +0 -44
  323. egse/icons/th_ui_logo.svg +0 -1
  324. egse/icons/unplugged.svg +0 -23
  325. egse/icons/unvalid.png +0 -0
  326. egse/icons/user-interface.svg +0 -1
  327. egse/icons/vacuum.svg +0 -1
  328. egse/icons/valid.png +0 -0
  329. egse/icons/zoom-to-pixel-dark.svg +0 -64
  330. egse/icons/zoom-to-pixel-white.svg +0 -36
  331. egse/images/big-rotation-stage.png +0 -0
  332. egse/images/connected-100.png +0 -0
  333. egse/images/cross.svg +0 -6
  334. egse/images/disconnected-100.png +0 -0
  335. egse/images/gui-icon.png +0 -0
  336. egse/images/home.svg +0 -6
  337. egse/images/info-icon.png +0 -0
  338. egse/images/led-black.svg +0 -89
  339. egse/images/led-green.svg +0 -85
  340. egse/images/led-orange.svg +0 -85
  341. egse/images/led-red.svg +0 -85
  342. egse/images/load-icon.png +0 -0
  343. egse/images/load-setup.png +0 -0
  344. egse/images/load.png +0 -0
  345. egse/images/pause.png +0 -0
  346. egse/images/play-button.svg +0 -8
  347. egse/images/play.png +0 -0
  348. egse/images/process-status.png +0 -0
  349. egse/images/restart.png +0 -0
  350. egse/images/search.png +0 -0
  351. egse/images/sma.png +0 -0
  352. egse/images/start.png +0 -0
  353. egse/images/stop-button.svg +0 -8
  354. egse/images/stop.png +0 -0
  355. egse/images/switch-off.svg +0 -48
  356. egse/images/switch-on.svg +0 -48
  357. egse/images/undo.png +0 -0
  358. egse/images/update-button.svg +0 -11
  359. egse/imageviewer/exposureselection.py +0 -475
  360. egse/imageviewer/imageviewer.py +0 -198
  361. egse/imageviewer/matchfocalplane.py +0 -179
  362. egse/imageviewer/subfieldposition.py +0 -133
  363. egse/lampcontrol/__init__.py +0 -4
  364. egse/lampcontrol/beaglebone/beaglebone.py +0 -178
  365. egse/lampcontrol/beaglebone/beaglebone.yaml +0 -62
  366. egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -106
  367. egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -150
  368. egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -73
  369. egse/lampcontrol/energetiq/__init__.py +0 -22
  370. egse/lampcontrol/energetiq/eq99.yaml +0 -98
  371. egse/lampcontrol/energetiq/lampEQ99.py +0 -283
  372. egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -128
  373. egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -158
  374. egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -73
  375. egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -69
  376. egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -465
  377. egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
  378. egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
  379. egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
  380. egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
  381. egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
  382. egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
  383. egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
  384. egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
  385. egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
  386. egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
  387. egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
  388. egse/lib/macOS/ESL-RMAP_v34_86.dylib +0 -0
  389. egse/lib/macOS/EtherSpaceLink_v34_86.dylib +0 -0
  390. egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
  391. egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
  392. egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
  393. egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
  394. egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -5510
  395. egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -42
  396. egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
  397. egse/lib/ximc/libximc.framework/libbindy.so +0 -0
  398. egse/lib/ximc/libximc.framework/libximc +0 -0
  399. egse/lib/ximc/libximc.framework/libximc.so +0 -0
  400. egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
  401. egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
  402. egse/lib/ximc/pyximc.py +0 -922
  403. egse/listener.py +0 -73
  404. egse/logger/__init__.py +0 -243
  405. egse/logger/log_cs.py +0 -321
  406. egse/metrics.py +0 -98
  407. egse/mixin.py +0 -464
  408. egse/monitoring.py +0 -95
  409. egse/ni/alarms/__init__.py +0 -26
  410. egse/ni/alarms/cdaq9375.py +0 -300
  411. egse/ni/alarms/cdaq9375.yaml +0 -89
  412. egse/ni/alarms/cdaq9375_cs.py +0 -130
  413. egse/ni/alarms/cdaq9375_devif.py +0 -183
  414. egse/ni/alarms/cdaq9375_protocol.py +0 -48
  415. egse/obs_inspection.py +0 -163
  416. egse/observer.py +0 -41
  417. egse/obsid.py +0 -163
  418. egse/powermeter/__init__.py +0 -0
  419. egse/powermeter/ni/__init__.py +0 -38
  420. egse/powermeter/ni/cdaq9184.py +0 -224
  421. egse/powermeter/ni/cdaq9184.yaml +0 -73
  422. egse/powermeter/ni/cdaq9184_cs.py +0 -130
  423. egse/powermeter/ni/cdaq9184_devif.py +0 -201
  424. egse/powermeter/ni/cdaq9184_protocol.py +0 -48
  425. egse/powermeter/ni/cdaq9184_ui.py +0 -544
  426. egse/powermeter/thorlabs/__init__.py +0 -25
  427. egse/powermeter/thorlabs/pm100a.py +0 -380
  428. egse/powermeter/thorlabs/pm100a.yaml +0 -132
  429. egse/powermeter/thorlabs/pm100a_cs.py +0 -136
  430. egse/powermeter/thorlabs/pm100a_devif.py +0 -127
  431. egse/powermeter/thorlabs/pm100a_protocol.py +0 -80
  432. egse/powermeter/thorlabs/pm100a_ui.py +0 -725
  433. egse/process.py +0 -451
  434. egse/procman/__init__.py +0 -811
  435. egse/procman/cannot_start_process_popup.py +0 -43
  436. egse/procman/procman.yaml +0 -49
  437. egse/procman/procman_cs.py +0 -201
  438. egse/procman/procman_ui.py +0 -2081
  439. egse/protocol.py +0 -603
  440. egse/proxy.py +0 -522
  441. egse/randomwalk.py +0 -140
  442. egse/reg.py +0 -585
  443. egse/reload.py +0 -122
  444. egse/reprocess.py +0 -675
  445. egse/resource.py +0 -333
  446. egse/rst.py +0 -135
  447. egse/search.py +0 -182
  448. egse/serialdevice.py +0 -190
  449. egse/services.py +0 -212
  450. egse/services.yaml +0 -51
  451. egse/settings.py +0 -379
  452. egse/settings.yaml +0 -980
  453. egse/setup.py +0 -1180
  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 -69
  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 -1479
  473. egse/stages/__init__.py +0 -12
  474. egse/stages/aerotech/ensemble.py +0 -247
  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 -193
  482. egse/stages/arun/smd3.py +0 -111
  483. egse/stages/arun/smd3.yaml +0 -68
  484. egse/stages/arun/smd3_controller.py +0 -472
  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 -904
  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 -111
  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 -1004
  500. egse/storage/persistence.py +0 -2295
  501. egse/storage/storage.yaml +0 -72
  502. egse/storage/storage_cs.py +0 -214
  503. egse/styles/dark.qss +0 -343
  504. egse/styles/default.qss +0 -48
  505. egse/synoptics/__init__.py +0 -412
  506. egse/synoptics/syn.yaml +0 -9
  507. egse/synoptics/syn_cs.py +0 -195
  508. egse/system.py +0 -1408
  509. egse/tcs/__init__.py +0 -14
  510. egse/tcs/tcs.py +0 -874
  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 -177
  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 -116
  522. egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
  523. egse/tempcontrol/agilent/agilent34970_protocol.py +0 -99
  524. egse/tempcontrol/agilent/agilent34972.py +0 -111
  525. egse/tempcontrol/agilent/agilent34972.yaml +0 -44
  526. egse/tempcontrol/agilent/agilent34972_cs.py +0 -117
  527. egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
  528. egse/tempcontrol/agilent/agilent34972_protocol.py +0 -101
  529. egse/tempcontrol/beaglebone/beaglebone.py +0 -342
  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 -135
  533. egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -681
  534. egse/tempcontrol/digalox/digalox.py +0 -107
  535. egse/tempcontrol/digalox/digalox.yaml +0 -36
  536. egse/tempcontrol/digalox/digalox_cs.py +0 -112
  537. egse/tempcontrol/digalox/digalox_protocol.py +0 -55
  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 -78
  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 -73
  551. egse/tempcontrol/lakeshore/lsci_ui.py +0 -389
  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 -727
  559. egse/tempcontrol/srs/__init__.py +0 -22
  560. egse/tempcontrol/srs/ptc10.py +0 -875
  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 -118
  564. egse/tempcontrol/srs/ptc10_protocol.py +0 -42
  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 -164
  575. egse/vacuum/beaglebone/beaglebone_protocol.py +0 -193
  576. egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
  577. egse/vacuum/instrutech/igm402.py +0 -92
  578. egse/vacuum/instrutech/igm402.yaml +0 -90
  579. egse/vacuum/instrutech/igm402_controller.py +0 -128
  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 -102
  585. egse/vacuum/keller/leo3.yaml +0 -38
  586. egse/vacuum/keller/leo3_controller.py +0 -83
  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 -316
  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 -704
  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 -39
  602. egse/vacuum/pfeiffer/tc400.py +0 -113
  603. egse/vacuum/pfeiffer/tc400.yaml +0 -83
  604. egse/vacuum/pfeiffer/tc400_controller.py +0 -140
  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 -24
  608. egse/vacuum/pfeiffer/tpg261.py +0 -81
  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 -60
  613. egse/vacuum/pfeiffer/tpg261_simulator.py +0 -24
  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 -44
  625. scripts/check_hdf5_files.py +0 -192
  626. scripts/check_register_sync.py +0 -47
  627. scripts/create_hdf5_report.py +0 -295
  628. scripts/csl_model.py +0 -436
  629. scripts/csl_restore_setup.py +0 -230
  630. scripts/export-grafana-dashboards.py +0 -50
  631. scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -59
  632. scripts/fdir/fdir_table.yaml +0 -70
  633. scripts/fdir/fdir_test_recovery.py +0 -11
  634. scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
  635. scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -64
  636. scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -61
  637. scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -33
  638. scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -71
  639. scripts/fix_csv.py +0 -80
  640. scripts/n_fee_supply_voltage_calculation.py +0 -92
  641. scripts/playground.py +0 -30
  642. scripts/print_hdf5_hk_data.py +0 -68
  643. scripts/print_register_map.py +0 -43
  644. scripts/sron/commanding/control_heaters.py +0 -44
  645. scripts/sron/commanding/pumpdown.py +0 -46
  646. scripts/sron/commanding/set_pid_setpoint.py +0 -19
  647. scripts/sron/commanding/shutdown_bbb_heaters.py +0 -10
  648. scripts/sron/commanding/shutdown_pumps.py +0 -33
  649. scripts/sron/tm_gen/tm_gen_agilent.py +0 -38
  650. scripts/sron/tm_gen/tm_gen_heaters.py +0 -4
  651. scripts/sron/tm_gen/tm_gen_spid.py +0 -13
  652. scripts/update_operational_cgse.py +0 -268
  653. scripts/update_operational_cgse_old.py +0 -273
scripts/csl_model.py DELETED
@@ -1,436 +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
-
27
- import sys
28
- #sys.path.append("/Users/pierre/plato/plato-common-egse/src")
29
- sys.path
30
-
31
-
32
- import numpy as np
33
-
34
- # egse
35
- from egse.coordinates.referenceFrame import ReferenceFrame
36
- from egse.state import GlobalState
37
-
38
- # Hexapod
39
- from egse.hexapod.symetrie.puna import PunaController
40
- from egse.hexapod.symetrie.puna import PunaSimulator
41
- from egse.hexapod.symetrie.puna import HexapodError
42
-
43
- from egse.coordinates.point import Points
44
-
45
- def printm(matrix,rounding=2):
46
- import numpy as np
47
- print(np.round(matrix,rounding))
48
-
49
-
50
- ################################################################################
51
-
52
- # PREDEFINED CONSTANTS
53
- # Rotation - identity
54
- rdef = np.identity(3)
55
- # Translation - null
56
- tdef = np.array([0,0,0])
57
- # Zoom - unit
58
- zdef = np.array([1,1,1])
59
- # Shear
60
- sdef = np.array([0,0,0])
61
-
62
- pi4 = np.pi/4.
63
- I = np.identity(4)
64
-
65
- # Rotation around static axis, and around x, y and z in that order
66
- rot_config = "sxyz"
67
-
68
- try:
69
- hex = PunaController()
70
- hex.connect()
71
- except HexapodError:
72
- hex = PunaSimulator()
73
-
74
-
75
- print(f"Hexapod is a simulator: {hex.is_simulator()}")
76
-
77
-
78
- degrees=True
79
-
80
- ################################################################################
81
- # MODEL M : mechanical alignment of the MGSE
82
- ################################################################################
83
-
84
- ## TODO : READ translations and rotations FROM CALIBRATION FILE
85
- testtr = np.array([-2,-2,-2])
86
- testrot = np.array([-3,-4,-5])
87
-
88
-
89
- """
90
- ## WORKING WITH GL_FIX = master until the end of the alignment.
91
-
92
- # Master
93
- master0 = ReferenceFrame.createMaster()
94
-
95
- # GL_FIX = Identity
96
- glfix0 = ReferenceFrame(transformation=np.identity(4), ref=master0,name="glfix0", rot_config=rot_config)
97
- glfix0.addLink(master0)#,transformation=np.identity(4))
98
-
99
- #print(glfix in masterM.linkedTo)
100
-
101
- # GL_ROT --> GL_FIX -- no link
102
- glrot0 = ReferenceFrame(transformation=np.identity(4), ref=glfix0,name="glrot0", rot_config=rot_config)
103
-
104
- # GL_ISO --> GL_ROT
105
- tr_gliso = testtr
106
- rot_gliso = testrot
107
- gliso0 = ReferenceFrame.fromTranslationRotation(tr_gliso,rot_gliso,rot_config=rot_config, ref=glrot0,name="gliso0",degrees=degrees)
108
- gliso0.addLink(glrot0)#,transformation=gliso.transformation)
109
- """
110
-
111
-
112
-
113
- # Master
114
- master0fix = ReferenceFrame.createMaster()
115
-
116
- ##################
117
- # REFERENCE FRAMES ## A. MGSE ALIGNMENT : GL_FIX as a master
118
- ##################
119
-
120
- # GL_FIX = Identity
121
- glfix0fix = ReferenceFrame(transformation=np.identity(4), ref=master0fix, name="glfix0fix", rot_config=rot_config)
122
- glfix0fix.addLink(master0fix)
123
-
124
- #print(glfix in masterM.linkedTo)
125
-
126
- # GL_ROT --> GL_FIX -- no link
127
- glrot0fix = ReferenceFrame(transformation=np.identity(4), ref=glfix0fix, name="glrot0fix", rot_config=rot_config)
128
-
129
- # GL_ISO --> GL_ROT
130
- tr_gliso = testtr
131
- rot_gliso = testrot
132
- gliso0fix = ReferenceFrame.fromTranslationRotation(tr_gliso,rot_gliso,rot_config=rot_config, ref=glrot0fix, name="gliso0fix",degrees=degrees)
133
- gliso0fix.addLink(glrot0fix)
134
-
135
-
136
- ##################
137
- # CHANGE OF REFERENCE --> GL_ISO BECOMES THE MASTER
138
- ##################
139
-
140
- # Master
141
- master0 = ReferenceFrame.createMaster()
142
-
143
- gliso0 = ReferenceFrame(transformation=np.identity(4), ref=master0, name="gliso0", rot_config=rot_config)
144
- gliso0.addLink(master0)
145
-
146
-
147
- # GL_ROT --> GL_ISO
148
- transformation = glrot0fix.getActiveTransformationFrom(gliso0fix)
149
- glrot0 = ReferenceFrame(transformation=transformation,ref=gliso0, name="glrot0", rot_config=rot_config)
150
- glrot0.addLink(gliso0)
151
-
152
-
153
- # GL_FIX
154
- transformation = glfix0fix.getActiveTransformationFrom(glrot0fix)
155
- glfix0 = ReferenceFrame(transformation=transformation,ref=glrot0, name="glfix0", rot_config=rot_config)
156
-
157
-
158
- ##################
159
- # PROCEED DEFINING THE MODEL. GL_ISO IS NOW THE MASTER
160
- ##################
161
-
162
- # HEX_IS0 --> GL_ISO
163
- tr_hexiso = testtr
164
- rot_hexiso = testrot
165
- hexiso0 = ReferenceFrame.fromTranslationRotation(tr_hexiso,rot_hexiso,rot_config=rot_config, ref=gliso0,name="hexiso0",degrees=degrees)
166
- hexiso0.addLink(gliso0)
167
-
168
- # HEX_MEC --> HEX_ISO
169
- hexmec0 = ReferenceFrame(transformation=np.identity(4), ref=hexiso0, name="hexmec0", rot_config=rot_config)
170
- hexmec0.addLink(hexiso0)
171
-
172
-
173
- # HEX_PLT --> HEX_MEC -- no link
174
- tr_hexplt = testtr
175
- rot_hexplt = testrot
176
- hexplt0 = ReferenceFrame(transformation=np.identity(4), ref=hexmec0, name="hexplt0", rot_config=rot_config)
177
-
178
- # FPA_ALN --> GL_ISO -- no link
179
- tr_fpaaln = testtr
180
- rot_fpaaln = testrot
181
- fpaaln0 = ReferenceFrame.fromTranslationRotation(tr_fpaaln,rot_fpaaln,rot_config=rot_config, ref=gliso0, name="fpaaln0",degrees=degrees)
182
-
183
- # FPA_SEN --> FPA_ALN
184
- tr_fpasen = testtr
185
- rot_fpasen = testrot
186
- fpasen0 = ReferenceFrame.fromTranslationRotation(tr_fpasen,rot_fpasen,rot_config=rot_config, ref=fpaaln0, name="fpasen0",degrees=degrees)
187
- fpasen0.addLink(fpaaln0)
188
-
189
- # HEX_OBJ --> FPA_SEN
190
- transformation = fpasen0.getActiveTransformationFrom(hexplt0)
191
- hexobj0 = ReferenceFrame(transformation=transformation,ref=hexplt0, name="hexobj0", rot_config=rot_config)
192
- hexobj0.addLink(fpasen0)
193
-
194
- # FPA_MEC --> FPA_ALN
195
- tr_fpamec = testtr
196
- rot_fpamec = testrot
197
- fpamec0 = ReferenceFrame.fromTranslationRotation(tr_fpamec,rot_fpamec,rot_config=rot_config, ref=fpaaln0, name="fpamec0",degrees=degrees)
198
- fpamec0.addLink(fpaaln0)
199
-
200
- # THE FOLLOWING ARE FOR CSL PURPOSE : TOU_ALN, TOU_OPT, CAM_MEC, MARI_ALN, CAM_BOR
201
- # MARI_ALN wrt TOU_ALN and CAM_BOR wrt TOU_ALN are deliverables from CSL to the TH and the CM resp.
202
- # The order in which we get the absolute location of these systems is TBD, cos it may differ
203
- # from the order in which they are derived, because some may only positioned in orientation
204
- # to start with. TBD.
205
-
206
- # Originally TOU_ALN only measured in orientation, no abs. location wrt GL_ISO
207
- # Changed later on : will be provided wrt TOU_MEC
208
- # in order to be able to locate CAM_BOR (deliverable) and express MARI_ALN (deliverable)
209
-
210
- # TOU_MEC --> GL_ISO
211
- tr_toumec = testtr
212
- rot_toumec = testrot
213
- toumec0 = ReferenceFrame.fromTranslationRotation(tr_toumec,rot_toumec,rot_config=rot_config, ref=gliso0, name="toumec0",degrees=degrees)
214
- toumec0.addLink(gliso0)
215
-
216
-
217
- # TOU_ALN --> TOU_MEC --> here or in B.
218
- tr_toualn = testtr
219
- rot_toualn = testrot
220
- toualn0 = ReferenceFrame.fromTranslationRotation(tr_toualn,rot_toualn,rot_config=rot_config, ref=toumec0, name="toualn0",degrees=degrees)
221
- toualn0.addLink(toumec0)
222
-
223
- # MARI_ALN --> TOU_ALN --> here or in B.
224
- tr_marialn = testtr
225
- rot_marialn = testrot
226
- marialn0 = ReferenceFrame.fromTranslationRotation(tr_marialn,rot_marialn,rot_config=rot_config, ref=toualn0, name="marialn0",degrees=degrees)
227
- marialn0.addLink(toualn0)
228
-
229
- # TOU_OPT --> TOU_ALN -- optional
230
- tr_touopt = testtr
231
- rot_touopt = testrot
232
- touopt0 = ReferenceFrame.fromTranslationRotation(tr_touopt,rot_touopt,rot_config=rot_config, ref=toualn0, name="touopt0",degrees=degrees)
233
- touopt0.addLink(toualn0)
234
-
235
- # CAM_MEC --> TOU_ALN -- optional
236
- tr_cammec = testtr
237
- rot_cammec = testrot
238
- cammec0 = ReferenceFrame.fromTranslationRotation(tr_cammec,rot_cammec,rot_config=rot_config, ref=toualn0, name="cammec0",degrees=degrees)
239
- cammec0.addLink(toualn0)
240
-
241
-
242
- # Note we establish the full model and then transfer it to another master (hexmec)
243
- # In reality a number of frames could be established directly in the final master:
244
- # fpasen, fpamec, toul6, hexusr
245
- # In practice they will certainly be communicated at this stage -> more logical this way
246
-
247
- # TOU_L6 --> TOU_MEC
248
- tr_toul6 = testtr
249
- rot_toul6 = testrot
250
- toul60 = ReferenceFrame.fromTranslationRotation(tr_toul6,rot_toul6,rot_config=rot_config, ref=toumec0, name="toul60",degrees=degrees)
251
- toul60.addLink(toumec0)
252
-
253
- # HEX_USR
254
- # USR, defined in MEC --> first define a virtual frame in TOU_L6, then redefine it in HEX_MEC
255
- tr_hexusr = [0,0,-1.65]
256
- rot_hexusr = [0,0,0]
257
- hexusrtou = ReferenceFrame.fromTranslationRotation(tr_hexusr,rot_hexusr,rot_config=rot_config, ref=toul60, name="hexusrtou",degrees=degrees)
258
- transformation = hexusrtou.getActiveTransformationFrom(hexmec0)
259
- hexusr0 = ReferenceFrame(transformation=transformation,ref=hexmec0, name="hexusr0", rot_config=rot_config)
260
- hexusr0.addLink(hexmec0)
261
-
262
- del hexusrtou
263
-
264
- # HEX_OBUSR
265
- transformation = hexusr0.getActiveTransformationTo(hexobj0)
266
- hexobusr0 = ReferenceFrame(transformation=transformation,rot_config=rot_config, ref=hexusr0, name="hexobusr0")
267
- hexobusr0.addLink(hexobj0)
268
-
269
- """
270
- # At this stage, hexapod movements could intervene to recenter the FPA wrt TOU
271
-
272
- # This should be delayed as long as hexusr (L6S2) and hexobj (FPA_SEN)
273
- # haven't been properly defined, the avoidance volume can't be checked
274
-
275
- # From this point on it's doable though (use is_avoidance_ok)
276
-
277
- """
278
-
279
- ##################
280
- # REFERENCE FRAMES ## B. ALIGNMENT : TRANSFER MASTER to HEX_MEC & MODEL SIMPLIFICATION
281
- ##################
282
-
283
- master = ReferenceFrame.createMaster()
284
-
285
- # HEX_MEC
286
- hexmec = ReferenceFrame(transformation=np.identity(4), ref=master, name="hexmec", rot_config=rot_config)
287
- hexmec.addLink(master)
288
-
289
- # HEX_PLT
290
- transformation = hexplt0.getActiveTransformationFrom(hexmec0)
291
- hexplt = ReferenceFrame(transformation=transformation,ref=hexmec, name="hexplt", rot_config=rot_config)
292
-
293
- # HEX_OBJ
294
- transformation = hexobj0.getActiveTransformationFrom(hexplt0)
295
- hexobj = ReferenceFrame(transformation=transformation,ref=hexplt, name="hexobj", rot_config=rot_config)
296
- hexobj.addLink(hexplt)
297
-
298
- # FPA_MEC
299
- transformation = fpamec0.getActiveTransformationFrom(hexobj0)
300
- fpamec = ReferenceFrame(transformation=transformation,ref=hexobj, name="fpamec", rot_config=rot_config)
301
- fpamec.addLink(hexobj)
302
-
303
- # TOU_MEC
304
- transformation = toumec0.getActiveTransformationFrom(hexmec0)
305
- toumec = ReferenceFrame(transformation=transformation,ref=hexmec, name="toumec", rot_config=rot_config)
306
- toumec.addLink(hexmec)
307
-
308
- # HEX_USR
309
- transformation = hexusr0.getActiveTransformationFrom(hexmec0)
310
- hexusr = ReferenceFrame(transformation=transformation,ref=hexmec, name="hexusr", rot_config=rot_config)
311
- hexusr.addLink(hexmec)
312
-
313
- # CHANGE HEX_USR DEFINITION IN THE HEXAPOD CONTROLLER
314
-
315
- # HEX_OBUSR
316
- transformation = hexobj0.getActiveTransformationFrom(hexusr0)
317
- hexobusr = ReferenceFrame(transformation=transformation,ref=hexusr, name="hexobusr", rot_config=rot_config)
318
- hexobusr.addLink(hexobj)
319
-
320
- # Deliverables : MARI_ALN & CAM_BOR --> unnecessary for the alignment
321
- # but easier to represent them and get them for free in the end
322
- # TOU_ALN --> TOU_MEC
323
- transformation = toualn0.getActiveTransformationFrom(toumec0)
324
- toualn = ReferenceFrame(transformation=transformation,ref=toumec, name="toualn", rot_config=rot_config)
325
- toualn.addLink(toumec)
326
-
327
- # MARI_ALN --> TOU_ALN
328
- transformation = marialn0.getActiveTransformationFrom(toualn0)
329
- marialn = ReferenceFrame(transformation=transformation,ref=toualn, name="marialn", rot_config=rot_config)
330
- marialn.addLink(toualn)
331
-
332
- ######
333
- # CAM_BOR is only established after the alignment. This is a "placeholder"
334
- # CAM_BOR is // TOU_OPT with its origin == that of FPA_SEN
335
- # 0. get TOU_OPT (fixed wrt TOU_ALN)
336
- # 1. Define CAM_BOR == TOU_OPT with CAM_BOR.ref = TOU_ALN
337
- # 2. Determine the translation vector from TOU_OPT.origin to FPA_SEN.origin (HEX_OBJ.origin)
338
- # 3. Apply that translation to CAM_BOR. It is now properly defined
339
- # 4. Deliverables : its translation-rotation vectors wrt TOU_ALN
340
-
341
- #0.
342
- # TOU_OPT --> TOU_ALN
343
- transformation = touopt0.getActiveTransformationFrom(toualn0)
344
- touopt = ReferenceFrame(transformation=transformation,ref=toualn, name="touopt", rot_config=rot_config)
345
- touopt.addLink(toualn)
346
-
347
- # 1.
348
- transformation = touopt.getActiveTransformationFrom(toualn)
349
- cambor = ReferenceFrame(transformation=transformation,ref=toualn, name="cambor", rot_config=rot_config)
350
-
351
- # 2. & 3.
352
- translation = hexobj.getOrigin().expressIn(touopt)[:3]
353
- rotation = [0.,0.,0.]
354
- cambor.applyTranslationRotation(translation,rotation,rot_config=rot_config,degrees=degrees)
355
-
356
- # 4.
357
- translation,rotation = cambor.getActiveTranslationRotationVectorsFrom(toualn)
358
-
359
-
360
-
361
- csl_model = [master,hexmec,hexplt,hexobj,hexusr,hexobusr,fpamec,toumec,toualn,touopt,marialn,cambor]
362
-
363
-
364
-
365
-
366
- ##################
367
- # AVOIDANCE VOLUME
368
- ##################
369
-
370
- """
371
- # NECESSARY FIELDS IN THE SETUP
372
-
373
- setup.camera.fpa.avoidance.clearance_xy # Horizontal clearance around L6
374
- setup.camera.fpa.avoidance.clearance_z # Vertical uncertainty on teh CCD location
375
- setup.camera_fpa.avoidance.vertices_nb # nb of points to represent the avoidance volume above the FPA
376
- setup.camera_fpa.avoidance.vertices_radius # radius of the circle to represend the avoidance volume above the FPA
377
-
378
- """
379
-
380
-
381
-
382
- setup = GlobalState.setup
383
-
384
- """
385
- A. HORIZONTAL AVOIDANCE
386
- Ensure that the center of L6, materialised by HEX_USR (incl. z-direction security wrt TOU_L6)
387
- stays within a given radius of the origin of FPA_SEN
388
- """
389
-
390
- # Clearance = the tolerance in every horizontal direction (3 mm; PLATO-KUL-PL-ICD-0001 v1.2)
391
- clearance_xy = setup.camera.fpa.avoidance.clearance_xy
392
-
393
- # l6xy = the projection of the origin of HEX_USR on the X-Y plane of FPA_SEN
394
- l6xy = hexusr.getOrigin().expressIn(hexobj)[:2]
395
-
396
-
397
- # !! This is a verification of the current situation --> need to replace by a simulation of the forthcoming movement in the building block
398
- assert((l6xy[0]**2.+l6xy[1]**2.)< clearance_xy*clearance_xy)
399
-
400
-
401
- """
402
- B. VERTICAL AVOIDANCE
403
- Ensure that the CCD never hits L6.
404
- The definition of HEX_USR includes a tolerance below L6 (1.65 mm)
405
- We include a tolerance above FPA_SEN here (0.3 mm)
406
- We define a collection of points to act at the vertices of the avoidance volume above the FPA
407
- """
408
-
409
- # Clearance = vertical uncertainty on the CCD location (0.3 mm; PLATO-KUL-PL-ICD-0001 v1.2)
410
- clearance_z = setup.camera.fpa.avoidance.clearance_z
411
-
412
- # Vertices = Points representing the vertices of the avoidance volume above the FPA (60)
413
- vertices_nb = setup.camera.fpa.avoidance.vertices_nb
414
- # All vertices are on a circle of radius 'vertices_radius' (100 mm)
415
- vertices_radius = setup.camera.fpa.avoidance.vertices_radius
416
-
417
- angles = np.linspace(0,np.pi * 2,vertices_nb,endpoint=False)
418
- vertices_x = np.cos(angles) * vertices_radius
419
- vertices_y = np.sin(angles) * vertices_radius
420
- vertices_z = np.ones_like(angles) * clearance_z
421
-
422
- # The collection of Points defining the avoidance volume around FPA_SEN
423
- vert_obj = Points(coordinates=np.array([vertices_x,vertices_y,vertices_z]),ref=hexobj,name="vertices")
424
-
425
- # Their coordinates in HEX_USR
426
- # NB: vert_obj is a Points, vert_usr is an array
427
- vert_usr = vert_obj.expressIn(hexusr)
428
-
429
-
430
- # !! Same as above : this is verifying the current situation, not the one after a planned movement
431
- # Verify that all vertices ("protecting" FPA_SEN) are below the x-y plane of HEX_USR ("protecting" L6)
432
- assert(np.all(vert_usr[2,:] < 0.))
433
-
434
-
435
-
436
-
@@ -1,230 +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.referenceFrame import ReferenceFrame
18
- from egse.coordinates.cslmodel import CSLReferenceFrameModel
19
- from egse.state import GlobalState, Setup
20
- from scripts.laser_tracker_to_dict import laser_tracker_to_dict
21
-
22
- # Hexapod
23
- #from egse.hexapod.symetrie.puna import PunaController
24
- from egse.hexapod.symetrie.puna import PunaSimulator
25
- #from egse.hexapod.symetrie.puna import HexapodError
26
-
27
- #from egse.coordinates.point import Points
28
-
29
- from egse.coordinates import ref_model_to_dict, dict_to_ref_model
30
-
31
- from camtest import list_setups, load_setup
32
-
33
- from camtest.core import submit_setup
34
-
35
- # submit_setup
36
-
37
- from scripts.avoidance import is_avoidance_ok
38
-
39
-
40
- def printm(matrix,rounding=2):
41
- import numpy as np
42
- print(np.round(matrix,rounding))
43
-
44
- """
45
- def check_positions(out, expected, rel=0.0001, abs=0.0001):
46
- assert len(out) == len(expected)
47
- for idx, element in enumerate(out):
48
- assert element == approx(expected[idx], rel=rel, abs=abs)
49
- """
50
-
51
- def positions_match(hexapod,hexsim,atol=0.0001,rtol=0.0001):
52
- return np.allclose(hexapod.get_user_positions(), hexsim.get_user_positions(), atol=atol, rtol=rtol)
53
-
54
- confdir = os.getenv("PLATO_CONF_DATA_LOCATION")
55
-
56
-
57
- ################################################################################
58
-
59
- list_setups()
60
-
61
- setupnr = 9
62
-
63
- setup = load_setup(setupnr)
64
-
65
-
66
- #===================== Ingest model from xls file =============================
67
-
68
-
69
-
70
- filexls = "/Users/pierre/plato/csl_refFrames.xls"
71
-
72
-
73
- refFrames = laser_tracker_to_dict(filexls)
74
-
75
- print(refFrames)
76
-
77
- dict_model = dict_to_ref_model(refFrames)
78
-
79
- csl_model = CSLReferenceFrameModel(refFrames)
80
-
81
- transformation = csl_model.get_frame("hexusr").getActiveTransformationTo(csl_model.get_frame("hexobj"))
82
- csl_model.add_frame(name="hexobusr", transformation=transformation, ref="hexusr")
83
-
84
- # create hex_iso ?
85
-
86
- ## Add the links
87
- csl_model.add_link("hexplt","hexobj")
88
- csl_model.add_link("hexobj","hexobusr")
89
- csl_model.add_link("hexmec","hexusr")
90
-
91
- # fpa links ?
92
-
93
-
94
- #=============================== POSITION 2 ===================================
95
-
96
- # Run csl_model up to the definition of HEX_OBUSR (egse/scripts)
97
-
98
- ## Instantiate a hexapod simulator
99
-
100
- #hexsim = PunaSimulator(hex_mec=hexmec0, hex_plt=hexplt0, hex_obj=hexobj0, hex_usr=hexusr0, hex_obusr=hexobusr0)
101
-
102
-
103
-
104
-
105
-
106
- # 1. Save setup before going to retracted position == save FPA_SEN position
107
- """
108
- csl_list = [master0, gliso0, glrot0, glfix0, hexmec0,hexplt0, fpaaln0, fpasen0, \
109
- hexobj0,fpamec0,toumec0,toualn0,marialn0,touopt0,cammec0,toul60, \
110
- hexusr0,hexobusr0]
111
-
112
- csl_dict = ref_model_to_dict(csl_list)
113
-
114
- #setup.csl_model = csl_dict
115
-
116
-
117
- csl_model = CSLReferenceFrameModel(csl_dict)
118
- """
119
-
120
-
121
- csl_dict = csl_model.serialize()
122
-
123
- setup.csl_model = csl_dict
124
-
125
-
126
-
127
- #newsetupfile = confdir+f"setup_{setupnr}_cslmodel.yaml"
128
-
129
- #setup.to_yaml_file(newsetupfile)
130
-
131
- setup = submit_setup(setup, "STM - FPA in place")
132
-
133
-
134
- # 2. Goto retracted position
135
-
136
- # 2a. simulation
137
-
138
- hexsim.goto_retracted_position()
139
-
140
- # 2b. hardware
141
-
142
- execute(hexapod_puna_goto_retracted_position,wait=True)
143
-
144
- # 2c. Check that model still coincides with new HW position
145
- # MAKE SURE HEX IS NOT A SIMULATOR...
146
-
147
- print(f"Hexapod & Model match: {positions_match(hex,hexsim)}")
148
-
149
- # 3. Save setup in retracted position
150
-
151
- # 3a. Save full model, for the record
152
-
153
- csl_dict = ref_model_to_dict(csl_model)
154
-
155
- setup.csl_model = csl_dict
156
-
157
-
158
- # 3b. Save partial model, to be restored after the egse_sleep --> exclude glfix and glrot
159
- csl_model_to_restore = [master0, gliso0, hexmec0,hexplt0, fpaaln0, fpasen0, \
160
- hexobj0,fpamec0,toumec0,toualn0,marialn0,touopt0,cammec0,toul60, \
161
- hexusr0,hexobusr0]
162
-
163
- csl_dict = ref_model_to_dict(csl_model_to_restore)
164
-
165
- setup.csl_model_to_restore = csl_dict
166
-
167
- setup = submit_setup(setup, "STM - Retracted")
168
-
169
-
170
-
171
- #=============== EGSE SLEEP --> POSITION 1 --> WAKEUP ========================
172
-
173
- #=============================== POSITION 1 ===================================
174
-
175
- list_setups()
176
-
177
- # 1. Restore the retracted setup
178
-
179
- setup = load_setup(TODO) # "STM - Retracted"
180
-
181
- #setreup = Setup.from_yaml_file(newsetupfile)
182
-
183
- # 2. Extract the csl_model from the setup -- select the retracted setup, without
184
-
185
- csl_dict = setup.csl_model_to_restore
186
-
187
- csl_model = dict_to_ref_model(csl_dict)
188
-
189
- # 3. Instantiate hexapod model
190
-
191
- 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"])
192
-
193
-
194
- # 4. Read model with FPA_SEN in position
195
-
196
- newsetupfile = confdir + "TODO.yaml"
197
-
198
- # TODO : REPLACE NEXT LINE BY get_setup(setup_id)
199
- setup_high = Setup.from_yaml_file(newsetupfile) # "STM - FPA in place"
200
-
201
-
202
- # 5. Extract model with FPA high
203
-
204
- csl_dict_high = setup_high.csl_model
205
-
206
- csl_model_high = dict_to_ref_model(csl_dict_high)
207
-
208
-
209
- # 6. Extract FPA_SEN position to be restored
210
-
211
- vtrans, vrot = csl_model_high["fpasen0"].getActiveTranslationRotationVectorsFrom(csl_model_high["hexmec0"])
212
-
213
-
214
- # 7. Command the hexapod to that same location
215
-
216
- hexsim.move_absolute(*vtrans,*vrot)
217
-
218
- avoidance_respected = is_avoidance_ok(csl_model["hexusr0"], csl_model["hexobj0"], setup=None, verbose=True)
219
-
220
- print(f"Avoidance OK after movement : {avoidance_respected}")
221
-
222
- if avoidance_respected:
223
-
224
- execute(hexapod_puna_move_absolute_user,*vtrans,*vrot,wait=True)
225
-
226
- else:
227
-
228
- print("Call your local EGSE manager")
229
-
230
-
@@ -1,50 +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
- from rich import print_json
13
-
14
- import requests
15
-
16
- from egse.system import format_datetime
17
-
18
- HOST = 'http://lin-plato-2.sron.rug.nl:3000'
19
- API_KEY = os.environ["GRAFANA_API_KEY"]
20
-
21
- DIR = f'exported-dashboards-{format_datetime(fmt="%Y%m%d%H%M%S")}'
22
-
23
-
24
- def main():
25
- headers = {'Authorization': f'Bearer {API_KEY}'}
26
- response = requests.get(f'{HOST}/api/search?query=&', headers=headers)
27
- response.raise_for_status()
28
- dashboards = response.json()
29
- # print_json(data=dashboards)
30
-
31
- if not os.path.exists(DIR):
32
- print(f"Creating folder {DIR}")
33
- os.makedirs(DIR)
34
-
35
- for dashboard in dashboards:
36
- response = requests.get(f"{HOST}/api/dashboards/uid/{dashboard['uid']}", headers=headers)
37
- # print_json(data=response.json())
38
- data = response.json()['dashboard']
39
- dash = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
40
- name = data['title'].replace(' ', '_').replace('/', '_').replace(':', '').replace('[', '').replace(']', '').replace('.', '_')
41
-
42
- print(f"Saving: {dashboard['title']} as {name}")
43
-
44
- with open(Path(DIR, name).with_suffix('.json'), 'w') as fd:
45
- fd.write(dash)
46
- fd.write('\n')
47
-
48
-
49
- if __name__ == '__main__':
50
- main()