cgse 2023.36.0__tar.gz → 2023.38.0__tar.gz

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 (783) hide show
  1. {cgse-2023.36.0/src/cgse.egg-info → cgse-2023.38.0}/PKG-INFO +54 -3
  2. {cgse-2023.36.0 → cgse-2023.38.0}/pyproject.toml +1 -1
  3. {cgse-2023.36.0 → cgse-2023.38.0/src/cgse.egg-info}/PKG-INFO +54 -3
  4. {cgse-2023.36.0 → cgse-2023.38.0}/src/cgse.egg-info/SOURCES.txt +0 -1
  5. {cgse-2023.36.0 → cgse-2023.38.0}/src/cgse.egg-info/requires.txt +1 -1
  6. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/__init__.py +7 -4
  7. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/config.py +1 -1
  8. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/confman/__init__.py +11 -6
  9. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/__init__.py +40 -12
  10. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/ccd_ui.py +1 -0
  11. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/dpu_cs.py +5 -2
  12. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/dpu_ui.py +8 -0
  13. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/fitsgen.py +8 -0
  14. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/env.py +11 -0
  15. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fov/fov_hk.py +14 -12
  16. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/logger/__init__.py +1 -1
  17. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/settings.yaml +2 -2
  18. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/setup.py +5 -3
  19. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3_controller.py +5 -10
  20. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/beaglebone/beaglebone.py +1 -3
  21. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/beaglebone/beaglebone_protocol.py +5 -7
  22. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/print_register_map.py +5 -1
  23. cgse-2023.36.0/src/scripts/update_operational_cgse 2.py +0 -273
  24. {cgse-2023.36.0 → cgse-2023.38.0}/COPYING +0 -0
  25. {cgse-2023.36.0 → cgse-2023.38.0}/COPYING.LESSER +0 -0
  26. {cgse-2023.36.0 → cgse-2023.38.0}/README.md +0 -0
  27. {cgse-2023.36.0 → cgse-2023.38.0}/setup.cfg +0 -0
  28. {cgse-2023.36.0 → cgse-2023.38.0}/src/__init__.py +0 -0
  29. {cgse-2023.36.0 → cgse-2023.38.0}/src/cgse.egg-info/dependency_links.txt +0 -0
  30. {cgse-2023.36.0 → cgse-2023.38.0}/src/cgse.egg-info/entry_points.txt +0 -0
  31. {cgse-2023.36.0 → cgse-2023.38.0}/src/cgse.egg-info/top_level.txt +0 -0
  32. {cgse-2023.36.0 → cgse-2023.38.0}/src/cov_html/keybd_closed.png +0 -0
  33. {cgse-2023.36.0 → cgse-2023.38.0}/src/cov_html/keybd_open.png +0 -0
  34. {cgse-2023.36.0 → cgse-2023.38.0}/src/demos/hexapod_demo.py +0 -0
  35. {cgse-2023.36.0 → cgse-2023.38.0}/src/demos/stages_demo.py +0 -0
  36. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/__init__.py +0 -0
  37. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/__main__.py +0 -0
  38. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu.py +0 -0
  39. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_awg.yaml +0 -0
  40. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_crio.yaml +0 -0
  41. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_cs.py +0 -0
  42. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_devif.py +0 -0
  43. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_main_ui.py +0 -0
  44. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_metrics.py +0 -0
  45. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_protocol.py +0 -0
  46. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_psu.yaml +0 -0
  47. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/aeu_ui.py +0 -0
  48. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/FccdRead.arb +0 -0
  49. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/FccdRead_min_points.arb +0 -0
  50. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/HeaterSync_FccdRead.arb +0 -0
  51. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/HeaterSync_ccdRead25.arb +0 -0
  52. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/HeaterSync_ccdRead31_25.arb +0 -0
  53. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/HeaterSync_ccdRead37_50.arb +0 -0
  54. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/HeaterSync_ccdRead43_75.arb +0 -0
  55. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/HeaterSync_ccdRead50.arb +0 -0
  56. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/Heater_FccdRead_min_points.arb +0 -0
  57. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead25.arb +0 -0
  58. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead25_150ms.arb +0 -0
  59. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead31_25.arb +0 -0
  60. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead31_25_150ms.arb +0 -0
  61. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead37_50.arb +0 -0
  62. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead37_50_150ms.arb +0 -0
  63. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead43_75.arb +0 -0
  64. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead43_75_150ms.arb +0 -0
  65. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead50.arb +0 -0
  66. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/aeu/arbdata/ccdRead50_150ms.arb +0 -0
  67. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/alertman.yaml +0 -0
  68. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/alertman_cs.py +0 -0
  69. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/alertman_ui.py +0 -0
  70. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/gsm/beaglebone.py +0 -0
  71. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/gsm/beaglebone.yaml +0 -0
  72. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/gsm/beaglebone_cs.py +0 -0
  73. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/gsm/beaglebone_devif.py +0 -0
  74. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/alert/gsm/beaglebone_protocol.py +0 -0
  75. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/bits.py +0 -0
  76. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/camera.py +0 -0
  77. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/__init__.py +0 -0
  78. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/__init__.py +0 -0
  79. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse.py +0 -0
  80. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse.yaml +0 -0
  81. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse_cs.py +0 -0
  82. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse_devif.py +0 -0
  83. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse_protocol.py +0 -0
  84. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse_sim.py +0 -0
  85. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/collimator/fcul/ogse_ui.py +0 -0
  86. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/command.py +0 -0
  87. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/confman/confman.yaml +0 -0
  88. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/confman/confman_cs.py +0 -0
  89. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/confman/confman_ui.py +0 -0
  90. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/confman/setup_ui.py +0 -0
  91. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/control.py +0 -0
  92. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/__init__.py +0 -0
  93. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/avoidance.py +0 -0
  94. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/cslmodel.py +0 -0
  95. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  96. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/point.py +0 -0
  97. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/pyplot.py +0 -0
  98. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/referenceFrame.py +0 -0
  99. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/refmodel.py +0 -0
  100. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/rotationMatrix.py +0 -0
  101. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/coordinates/transform3d_addon.py +0 -0
  102. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/__init__.py +0 -0
  103. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/commanding.py +0 -0
  104. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-connected-selected.svg +0 -0
  105. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-connected.svg +0 -0
  106. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-homing-selected.svg +0 -0
  107. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-homing.svg +0 -0
  108. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-retract-selected.svg +0 -0
  109. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-retract.svg +0 -0
  110. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-zero-selected.svg +0 -0
  111. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/hexapod-zero.svg +0 -0
  112. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/logo-puna.svg +0 -0
  113. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/icons/stop.svg +0 -0
  114. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/initialisation.py +0 -0
  115. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/csl/mech_pos_settings.yaml +0 -0
  116. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/das.py +0 -0
  117. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/das.yaml +0 -0
  118. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -0
  119. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -0
  120. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00002_170620_151020.yaml +0 -0
  121. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00003_170620_151030.yaml +0 -0
  122. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00004_170620_151040.yaml +0 -0
  123. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00005_170620_151050.yaml +0 -0
  124. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00006_170620_151060.yaml +0 -0
  125. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00007_170620_151070.yaml +0 -0
  126. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00008_170620_151080.yaml +0 -0
  127. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -0
  128. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_INTA_00000_170620_150000.yaml +0 -0
  129. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/data/conf/SETUP_SRON_00000_170620_150000.yaml +0 -0
  130. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/decorators.py +0 -0
  131. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/device.py +0 -0
  132. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/dpu.py +0 -0
  133. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/dpu.yaml +0 -0
  134. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/fitsgen_test.py +0 -0
  135. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/fitsgen_ui.py +0 -0
  136. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/hdf5_model.py +0 -0
  137. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/hdf5_ui.py +0 -0
  138. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/hdf5_viewer.py +0 -0
  139. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu/hk_ui.py +0 -0
  140. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dpu_commands.py +0 -0
  141. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dsi/constants.py +0 -0
  142. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dsi/esl.py +0 -0
  143. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dsi/rmap.py +0 -0
  144. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dsi/rmapci.py +0 -0
  145. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dsi/spw.py +0 -0
  146. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dsi/spw_state.py +0 -0
  147. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dummy.py +0 -0
  148. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/dyndummy.py +0 -0
  149. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/exceptions.py +0 -0
  150. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/__init__.py +0 -0
  151. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_manager.py +0 -0
  152. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_manager.yaml +0 -0
  153. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_manager_controller.py +0 -0
  154. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_manager_cs.py +0 -0
  155. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_manager_interface.py +0 -0
  156. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_remote.py +0 -0
  157. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_remote.yaml +0 -0
  158. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_remote_controller.py +0 -0
  159. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_remote_cs.py +0 -0
  160. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_remote_interface.py +0 -0
  161. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fdir/fdir_remote_popup.py +0 -0
  162. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fee/__init__.py +0 -0
  163. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fee/f_fee_register.yaml +0 -0
  164. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fee/fee.py +0 -0
  165. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fee/feesim.py +0 -0
  166. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fee/n_fee_hk.py +0 -0
  167. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fee/nfee.py +0 -0
  168. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/__init__.py +0 -0
  169. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/__init__.py +0 -0
  170. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc4.py +0 -0
  171. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc4.yaml +0 -0
  172. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc4_cs.py +0 -0
  173. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc4_devif.py +0 -0
  174. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc4_protocol.py +0 -0
  175. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc4_ui.py +0 -0
  176. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5.py +0 -0
  177. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5.yaml +0 -0
  178. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5_controller.py +0 -0
  179. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5_cs.py +0 -0
  180. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5_interface.py +0 -0
  181. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5_simulator.py +0 -0
  182. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/fw8smc5_ui.py +0 -0
  183. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/filterwheel/eksma/testpythonfw.py +0 -0
  184. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fov/__init__.py +0 -0
  185. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fov/fov_ui.py +0 -0
  186. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fov/fov_ui_controller.py +0 -0
  187. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fov/fov_ui_model.py +0 -0
  188. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/fov/fov_ui_view.py +0 -0
  189. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/__init__.py +0 -0
  190. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/__init__.py +0 -0
  191. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/alpha.py +0 -0
  192. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/generic_gimbal_ui.py +0 -0
  193. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/gimbal.py +0 -0
  194. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/gimbal.yaml +0 -0
  195. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/gimbal_cs.py +0 -0
  196. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/gimbal_protocol.py +0 -0
  197. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/gimbal_ui.py +0 -0
  198. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/pmac.py +0 -0
  199. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gimbal/symetrie/pmac_regex.py +0 -0
  200. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/graph.py +0 -0
  201. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/__init__.py +0 -0
  202. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/buttons.py +0 -0
  203. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/focalplane.py +0 -0
  204. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/formatter.py +0 -0
  205. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/led.py +0 -0
  206. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/limitswitch.py +0 -0
  207. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/mechanisms.py +0 -0
  208. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/states.py +0 -0
  209. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/stripchart.py +0 -0
  210. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/gui/switch.py +0 -0
  211. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/h5.py +0 -0
  212. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/help/__init__.py +0 -0
  213. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/help/help_ui.py +0 -0
  214. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/__init__.py +0 -0
  215. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/__init__.py +0 -0
  216. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/alpha.py +0 -0
  217. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  218. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  219. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/pmac.py +0 -0
  220. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  221. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/puna.py +0 -0
  222. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/puna.yaml +0 -0
  223. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  224. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  225. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/puna_ui.py +0 -0
  226. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/punaplus.py +0 -0
  227. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/zonda.py +0 -0
  228. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  229. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  230. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  231. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  232. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  233. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/hk.py +0 -0
  234. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/aeu-cs-start.svg +0 -0
  235. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/aeu-cs-stop.svg +0 -0
  236. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/aeu-cs.svg +0 -0
  237. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/aeu_cs-started.svg +0 -0
  238. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/aeu_cs-stopped.svg +0 -0
  239. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/aeu_cs.svg +0 -0
  240. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/alert.svg +0 -0
  241. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/arrow-double-left.png +0 -0
  242. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/arrow-double-right.png +0 -0
  243. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/arrow-up.svg +0 -0
  244. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/backward.svg +0 -0
  245. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/busy.svg +0 -0
  246. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/cleaning.svg +0 -0
  247. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/color-scheme.svg +0 -0
  248. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/cs-connected-alert.svg +0 -0
  249. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/cs-connected-disabled.svg +0 -0
  250. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/cs-connected.svg +0 -0
  251. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/cs-not-connected.svg +0 -0
  252. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/double-left-arrow.svg +0 -0
  253. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/double-right-arrow.svg +0 -0
  254. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/erase-disabled.svg +0 -0
  255. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/erase.svg +0 -0
  256. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/fitsgen-start.svg +0 -0
  257. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/fitsgen-stop.svg +0 -0
  258. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/fitsgen.svg +0 -0
  259. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/forward.svg +0 -0
  260. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/fov-hk-start.svg +0 -0
  261. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/fov-hk-stop.svg +0 -0
  262. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/fov-hk.svg +0 -0
  263. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/front-desk.svg +0 -0
  264. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/home-actioned.svg +0 -0
  265. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/home-disabled.svg +0 -0
  266. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/home.svg +0 -0
  267. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/info.svg +0 -0
  268. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/invalid.png +0 -0
  269. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-green.svg +0 -0
  270. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-grey.svg +0 -0
  271. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-orange.svg +0 -0
  272. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-red.svg +0 -0
  273. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-square-green.svg +0 -0
  274. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-square-grey.svg +0 -0
  275. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-square-orange.svg +0 -0
  276. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/led-square-red.svg +0 -0
  277. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/limit-switch-all-green.svg +0 -0
  278. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/limit-switch-all-red.svg +0 -0
  279. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/limit-switch-el+.svg +0 -0
  280. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/limit-switch-el-.svg +0 -0
  281. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/location-marker.svg +0 -0
  282. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-dpu.svg +0 -0
  283. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-gimbal.svg +0 -0
  284. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-huber.svg +0 -0
  285. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-ogse.svg +0 -0
  286. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-puna.svg +0 -0
  287. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-tcs.svg +0 -0
  288. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/logo-zonda.svg +0 -0
  289. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/maximize.svg +0 -0
  290. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/meter.svg +0 -0
  291. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/more.svg +0 -0
  292. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/n-fee-hk-start.svg +0 -0
  293. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/n-fee-hk-stop.svg +0 -0
  294. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/n-fee-hk.svg +0 -0
  295. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/observing-off.svg +0 -0
  296. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/observing-on.svg +0 -0
  297. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/open-document-hdf5.png +0 -0
  298. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/open-document-hdf5.svg +0 -0
  299. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/ops-mode.svg +0 -0
  300. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/play-green.svg +0 -0
  301. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/plugged-disabled.svg +0 -0
  302. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/plugged.svg +0 -0
  303. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/pm_ui.svg +0 -0
  304. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/power-button-green.svg +0 -0
  305. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/power-button-red.svg +0 -0
  306. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/power-button.svg +0 -0
  307. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/radar.svg +0 -0
  308. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/radioactive.svg +0 -0
  309. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/reload.svg +0 -0
  310. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/remote-control-off.svg +0 -0
  311. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/remote-control-on.svg +0 -0
  312. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/repeat-blue.svg +0 -0
  313. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/repeat.svg +0 -0
  314. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/settings.svg +0 -0
  315. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/shrink.svg +0 -0
  316. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/shutter.svg +0 -0
  317. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/sign-off.svg +0 -0
  318. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/sign-on.svg +0 -0
  319. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/sim-mode.svg +0 -0
  320. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/small-buttons-go.svg +0 -0
  321. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/small-buttons-minus.svg +0 -0
  322. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/small-buttons-plus.svg +0 -0
  323. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/sponge.svg +0 -0
  324. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/start-button-disabled.svg +0 -0
  325. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/start-button.svg +0 -0
  326. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/stop-button-disabled.svg +0 -0
  327. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/stop-button.svg +0 -0
  328. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/stop-red.svg +0 -0
  329. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/stop.svg +0 -0
  330. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/switch-disabled-square.svg +0 -0
  331. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/switch-disabled.svg +0 -0
  332. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/switch-off-square.svg +0 -0
  333. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/switch-off.svg +0 -0
  334. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/switch-on-square.svg +0 -0
  335. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/switch-on.svg +0 -0
  336. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/temperature-control.svg +0 -0
  337. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/th_ui_logo.svg +0 -0
  338. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/unplugged.svg +0 -0
  339. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/unvalid.png +0 -0
  340. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/user-interface.svg +0 -0
  341. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/vacuum.svg +0 -0
  342. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/valid.png +0 -0
  343. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/zoom-to-pixel-dark.svg +0 -0
  344. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/icons/zoom-to-pixel-white.svg +0 -0
  345. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/big-rotation-stage.png +0 -0
  346. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/connected-100.png +0 -0
  347. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/cross.svg +0 -0
  348. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/disconnected-100.png +0 -0
  349. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/gui-icon.png +0 -0
  350. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/home.svg +0 -0
  351. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/info-icon.png +0 -0
  352. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/led-black.svg +0 -0
  353. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/led-green.svg +0 -0
  354. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/led-orange.svg +0 -0
  355. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/led-red.svg +0 -0
  356. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/load-icon.png +0 -0
  357. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/load-setup.png +0 -0
  358. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/load.png +0 -0
  359. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/pause.png +0 -0
  360. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/play-button.svg +0 -0
  361. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/play.png +0 -0
  362. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/process-status.png +0 -0
  363. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/restart.png +0 -0
  364. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/search.png +0 -0
  365. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/sma.png +0 -0
  366. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/start.png +0 -0
  367. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/stop-button.svg +0 -0
  368. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/stop.png +0 -0
  369. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/switch-off.svg +0 -0
  370. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/switch-on.svg +0 -0
  371. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/undo.png +0 -0
  372. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/images/update-button.svg +0 -0
  373. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/imageviewer/exposureselection.py +0 -0
  374. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/imageviewer/imageviewer.py +0 -0
  375. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/imageviewer/matchfocalplane.py +0 -0
  376. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/imageviewer/subfieldposition.py +0 -0
  377. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/__init__.py +0 -0
  378. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/beaglebone/beaglebone.py +0 -0
  379. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/beaglebone/beaglebone.yaml +0 -0
  380. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -0
  381. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -0
  382. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -0
  383. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/__init__.py +0 -0
  384. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/eq99.yaml +0 -0
  385. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/lampEQ99.py +0 -0
  386. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -0
  387. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -0
  388. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -0
  389. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -0
  390. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -0
  391. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
  392. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
  393. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
  394. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
  395. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
  396. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
  397. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
  398. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
  399. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
  400. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
  401. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
  402. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/macOS/ESL-RMAP_v34_86.dylib +0 -0
  403. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/macOS/EtherSpaceLink_v34_86.dylib +0 -0
  404. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
  405. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
  406. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
  407. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
  408. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -0
  409. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -0
  410. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
  411. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/libbindy.so +0 -0
  412. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/libximc +0 -0
  413. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/libximc.so +0 -0
  414. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
  415. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
  416. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/lib/ximc/pyximc.py +0 -0
  417. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/listener.py +0 -0
  418. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/logger/log_cs.py +0 -0
  419. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/metrics.py +0 -0
  420. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/mixin.py +0 -0
  421. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/monitoring.py +0 -0
  422. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ni/alarms/__init__.py +0 -0
  423. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ni/alarms/cdaq9375.py +0 -0
  424. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ni/alarms/cdaq9375.yaml +0 -0
  425. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ni/alarms/cdaq9375_cs.py +0 -0
  426. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ni/alarms/cdaq9375_devif.py +0 -0
  427. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ni/alarms/cdaq9375_protocol.py +0 -0
  428. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/obs_inspection.py +0 -0
  429. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/observer.py +0 -0
  430. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/obsid.py +0 -0
  431. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/__init__.py +0 -0
  432. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/__init__.py +0 -0
  433. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/cdaq9184.py +0 -0
  434. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/cdaq9184.yaml +0 -0
  435. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/cdaq9184_cs.py +0 -0
  436. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/cdaq9184_devif.py +0 -0
  437. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/cdaq9184_protocol.py +0 -0
  438. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/ni/cdaq9184_ui.py +0 -0
  439. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/__init__.py +0 -0
  440. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/pm100a.py +0 -0
  441. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/pm100a.yaml +0 -0
  442. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/pm100a_cs.py +0 -0
  443. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/pm100a_devif.py +0 -0
  444. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/pm100a_protocol.py +0 -0
  445. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/powermeter/thorlabs/pm100a_ui.py +0 -0
  446. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/process.py +0 -0
  447. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/procman/__init__.py +0 -0
  448. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/procman/cannot_start_process_popup.py +0 -0
  449. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/procman/procman.yaml +0 -0
  450. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/procman/procman_cs.py +0 -0
  451. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/procman/procman_ui.py +0 -0
  452. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/protocol.py +0 -0
  453. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/proxy.py +0 -0
  454. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/randomwalk.py +0 -0
  455. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/reg.py +0 -0
  456. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/reload.py +0 -0
  457. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/reprocess.py +0 -0
  458. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/resource.py +0 -0
  459. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/rst.py +0 -0
  460. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/search.py +0 -0
  461. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/serialdevice.py +0 -0
  462. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/services.py +0 -0
  463. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/services.yaml +0 -0
  464. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/settings.py +0 -0
  465. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/__init__.py +0 -0
  466. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/__init__.py +0 -0
  467. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/ksc101.py +0 -0
  468. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/ksc101.yaml +0 -0
  469. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/ksc101_cs.py +0 -0
  470. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/ksc101_devif.py +0 -0
  471. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/ksc101_protocol.py +0 -0
  472. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/ksc101_ui.py +0 -0
  473. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/sc10.py +0 -0
  474. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/sc10.yaml +0 -0
  475. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/sc10_controller.py +0 -0
  476. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/sc10_cs.py +0 -0
  477. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/sc10_interface.py +0 -0
  478. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/shutter/thorlabs/sc10_simulator.py +0 -0
  479. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/simulator.py +0 -0
  480. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/slack.py +0 -0
  481. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/socketdevice.py +0 -0
  482. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/sockets.py +0 -0
  483. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/spw.py +0 -0
  484. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/__init__.py +0 -0
  485. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble.py +0 -0
  486. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble.yaml +0 -0
  487. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble_controller.py +0 -0
  488. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble_cs.py +0 -0
  489. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble_interface.py +0 -0
  490. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble_parameters.py +0 -0
  491. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/ensemble_simulator.py +0 -0
  492. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/aerotech/mgse_sim.py +0 -0
  493. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3.py +0 -0
  494. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3.yaml +0 -0
  495. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3_cs.py +0 -0
  496. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3_interface.py +0 -0
  497. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3_simulator.py +0 -0
  498. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/arun/smd3_stop.py +0 -0
  499. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/__init__.py +0 -0
  500. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300.py +0 -0
  501. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300.yaml +0 -0
  502. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300_cs.py +0 -0
  503. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300_devif.py +0 -0
  504. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300_protocol.py +0 -0
  505. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300_sim.py +0 -0
  506. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/stages/huber/smc9300_ui.py +0 -0
  507. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/state.py +0 -0
  508. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/statemachine.py +0 -0
  509. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/storage/__init__.py +0 -0
  510. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/storage/persistence.py +0 -0
  511. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/storage/storage.yaml +0 -0
  512. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/storage/storage_cs.py +0 -0
  513. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/styles/dark.qss +0 -0
  514. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/styles/default.qss +0 -0
  515. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/synoptics/__init__.py +0 -0
  516. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/synoptics/syn.yaml +0 -0
  517. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/synoptics/syn_cs.py +0 -0
  518. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/system.py +0 -0
  519. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/__init__.py +0 -0
  520. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs.py +0 -0
  521. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs.yaml +0 -0
  522. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs_cs.py +0 -0
  523. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs_devif.py +0 -0
  524. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs_protocol.py +0 -0
  525. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs_sim.py +0 -0
  526. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tcs/tcs_ui.py +0 -0
  527. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tdms.py +0 -0
  528. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/__init__.py +0 -0
  529. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34970.py +0 -0
  530. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34970.yaml +0 -0
  531. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34970_cs.py +0 -0
  532. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34970_devif.py +0 -0
  533. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34970_protocol.py +0 -0
  534. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34972.py +0 -0
  535. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34972.yaml +0 -0
  536. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34972_cs.py +0 -0
  537. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34972_devif.py +0 -0
  538. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/agilent/agilent34972_protocol.py +0 -0
  539. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/beaglebone/beaglebone.yaml +0 -0
  540. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -0
  541. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -0
  542. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/digalox/digalox.py +0 -0
  543. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/digalox/digalox.yaml +0 -0
  544. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/digalox/digalox_cs.py +0 -0
  545. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/digalox/digalox_protocol.py +0 -0
  546. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/__init__.py +0 -0
  547. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/daq6510.py +0 -0
  548. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  549. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
  550. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/daq6510_devif.py +0 -0
  551. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  552. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  553. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/__init__.py +0 -0
  554. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/lsci.py +0 -0
  555. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/lsci.yaml +0 -0
  556. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/lsci_cs.py +0 -0
  557. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/lsci_devif.py +0 -0
  558. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/lsci_protocol.py +0 -0
  559. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/lakeshore/lsci_ui.py +0 -0
  560. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/ni/__init__.py +0 -0
  561. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/spid/spid.py +0 -0
  562. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/spid/spid.yaml +0 -0
  563. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/spid/spid_controller.py +0 -0
  564. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/spid/spid_cs.py +0 -0
  565. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/spid/spid_protocol.py +0 -0
  566. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/spid/spid_ui.py +0 -0
  567. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/__init__.py +0 -0
  568. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/ptc10.py +0 -0
  569. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/ptc10.yaml +0 -0
  570. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/ptc10_cs.py +0 -0
  571. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/ptc10_devif.py +0 -0
  572. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/ptc10_protocol.py +0 -0
  573. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/tempcontrol/srs/ptc10_ui.py +0 -0
  574. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ups/apc/apc.py +0 -0
  575. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ups/apc/apc.yaml +0 -0
  576. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ups/apc/apc_cs.py +0 -0
  577. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/ups/apc/apc_protocol.py +0 -0
  578. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/user.yaml +0 -0
  579. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/beaglebone/beaglebone.py +0 -0
  580. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/beaglebone/beaglebone.yaml +0 -0
  581. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/beaglebone/beaglebone_cs.py +0 -0
  582. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/beaglebone/beaglebone_devif.py +0 -0
  583. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/beaglebone/beaglebone_protocol.py +0 -0
  584. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/beaglebone/beaglebone_ui.py +0 -0
  585. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/instrutech/igm402.py +0 -0
  586. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/instrutech/igm402.yaml +0 -0
  587. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/instrutech/igm402_controller.py +0 -0
  588. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/instrutech/igm402_cs.py +0 -0
  589. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/instrutech/igm402_interface.py +0 -0
  590. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/instrutech/igm402_simulator.py +0 -0
  591. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/keller/kellerBus.py +0 -0
  592. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/keller/leo3.py +0 -0
  593. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/keller/leo3.yaml +0 -0
  594. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/keller/leo3_controller.py +0 -0
  595. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/keller/leo3_cs.py +0 -0
  596. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/keller/leo3_interface.py +0 -0
  597. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision.py +0 -0
  598. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision.yaml +0 -0
  599. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision_cs.py +0 -0
  600. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision_devif.py +0 -0
  601. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision_interface.py +0 -0
  602. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision_simulator.py +0 -0
  603. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/mks/evision_ui.py +0 -0
  604. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/acp40.py +0 -0
  605. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/acp40.yaml +0 -0
  606. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/acp40_controller.py +0 -0
  607. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/acp40_cs.py +0 -0
  608. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/acp40_interface.py +0 -0
  609. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/acp40_simulator.py +0 -0
  610. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tc400.py +0 -0
  611. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tc400.yaml +0 -0
  612. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tc400_controller.py +0 -0
  613. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tc400_cs.py +0 -0
  614. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tc400_interface.py +0 -0
  615. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tc400_simulator.py +0 -0
  616. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tpg261.py +0 -0
  617. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tpg261.yaml +0 -0
  618. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tpg261_controller.py +0 -0
  619. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tpg261_cs.py +0 -0
  620. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tpg261_interface.py +0 -0
  621. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/vacuum/pfeiffer/tpg261_simulator.py +0 -0
  622. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/version.py +0 -0
  623. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/visitedpositions.py +0 -0
  624. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/windowing.py +0 -0
  625. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/zmq/__init__.py +0 -0
  626. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/zmq/spw.py +0 -0
  627. {cgse-2023.36.0 → cgse-2023.38.0}/src/egse/zmq_ser.py +0 -0
  628. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/alerts/cold.yaml +0 -0
  629. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/alerts/example_alerts.yaml +0 -0
  630. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/alerts/transition.yaml +0 -0
  631. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/alerts/warm.yaml +0 -0
  632. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/analyse_n_fee_hk_data.py +0 -0
  633. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/check_hdf5_files.py +0 -0
  634. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/check_register_sync.py +0 -0
  635. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/create_hdf5_report.py +0 -0
  636. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/csl_model.py +0 -0
  637. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/csl_restore_setup.py +0 -0
  638. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/export-grafana-dashboards.py +0 -0
  639. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -0
  640. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/fdir_table.yaml +0 -0
  641. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/fdir_test_recovery.py +0 -0
  642. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -0
  643. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -0
  644. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -0
  645. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -0
  646. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -0
  647. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/fix_csv.py +0 -0
  648. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/n_fee_supply_voltage_calculation.py +0 -0
  649. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/playground.py +0 -0
  650. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/print_hdf5_hk_data.py +0 -0
  651. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/commanding/control_heaters.py +0 -0
  652. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/commanding/pumpdown.py +0 -0
  653. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/commanding/set_pid_setpoint.py +0 -0
  654. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/commanding/shutdown_bbb_heaters.py +0 -0
  655. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/commanding/shutdown_pumps.py +0 -0
  656. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/tm_gen/tm_gen_agilent.py +0 -0
  657. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/tm_gen/tm_gen_heaters.py +0 -0
  658. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/sron/tm_gen/tm_gen_spid.py +0 -0
  659. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/update_operational_cgse.py +0 -0
  660. {cgse-2023.36.0 → cgse-2023.38.0}/src/scripts/update_operational_cgse_old.py +0 -0
  661. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/conftest.py +0 -0
  662. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  663. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  664. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  665. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  666. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  667. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  668. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  669. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  670. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  671. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  672. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  673. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/calibration.yaml +0 -0
  674. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -0
  675. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -0
  676. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -0
  677. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/confman_settings.yaml +0 -0
  678. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/corrupt.yaml +0 -0
  679. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/empty.yaml +0 -0
  680. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/settings.yaml +0 -0
  681. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/data/test_setup.yaml +0 -0
  682. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/helper.py +0 -0
  683. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/itest_dpu_ui.py +0 -0
  684. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/scripts/dummy_cs.py +0 -0
  685. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/scripts/empty_process.py +0 -0
  686. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/scripts/void-0.py +0 -0
  687. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/scripts/void-1.py +0 -0
  688. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_aeu.py +0 -0
  689. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_aeu_simulator.py +0 -0
  690. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_automatic_dump_mode.py +0 -0
  691. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_avoidance.py +0 -0
  692. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_bits.py +0 -0
  693. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_cm_cs.py +0 -0
  694. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_command.py +0 -0
  695. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_config.py +0 -0
  696. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_confman.py +0 -0
  697. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_confman_controller.py +0 -0
  698. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_confman_functions.py +0 -0
  699. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_constants.py +0 -0
  700. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_coordinates_plot.py +0 -0
  701. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_coordinates_serialize.py +0 -0
  702. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_daq6510.py +0 -0
  703. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_decorators.py +0 -0
  704. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_device.py +0 -0
  705. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_dpu_functions.py +0 -0
  706. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_dpu_internals.py +0 -0
  707. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_dpu_monitoring.py +0 -0
  708. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_dpu_nfee_state.py +0 -0
  709. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_dpu_send_commands.py +0 -0
  710. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_dsi.py +0 -0
  711. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_env.py +0 -0
  712. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_esl.py +0 -0
  713. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_fee.py +0 -0
  714. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_feesim.py +0 -0
  715. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_filterwheel_eksma.py +0 -0
  716. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_fixture_with_lru_cache.py +0 -0
  717. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_fov_hk__ias.py +0 -0
  718. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_gimbal.py +0 -0
  719. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_graph.py +0 -0
  720. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_hexapod.py +0 -0
  721. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_hexapod_simulator.py +0 -0
  722. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_hexapod_zonda.py +0 -0
  723. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_hk.py +0 -0
  724. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_huber.py +0 -0
  725. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_huber_dev.py +0 -0
  726. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_imports.py +0 -0
  727. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_lakeshore.py +0 -0
  728. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_lakeshore_simulator.py +0 -0
  729. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_lampEQ99_encode_decode_errors.py +0 -0
  730. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_lampcontrol_energetiq.py +0 -0
  731. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_listener.py +0 -0
  732. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_logger.py +0 -0
  733. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_metrics.py +0 -0
  734. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_mixin.py +0 -0
  735. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_n_fee.py +0 -0
  736. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_n_fee_hk.py +0 -0
  737. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_n_fee_side.py +0 -0
  738. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_obs.py +0 -0
  739. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_obsid.py +0 -0
  740. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_ogse_functions.py +0 -0
  741. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_ogse_sim.py +0 -0
  742. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_persistence.py +0 -0
  743. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_persistence_hdf5.py +0 -0
  744. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_persistence_sqlite.py +0 -0
  745. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_pmac.py +0 -0
  746. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_pmac_regex.py +0 -0
  747. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_point.py +0 -0
  748. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_process.py +0 -0
  749. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_process_status.py +0 -0
  750. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_proxy.py +0 -0
  751. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_proxy_state.py +0 -0
  752. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_puna.py +0 -0
  753. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_puna_plus.py +0 -0
  754. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_ref_model.py +0 -0
  755. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_reference_frames.py +0 -0
  756. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_refmodel.py +0 -0
  757. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_reg.py +0 -0
  758. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_reload.py +0 -0
  759. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_resource.py +0 -0
  760. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_response.py +0 -0
  761. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_rmap.py +0 -0
  762. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_search.py +0 -0
  763. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_services.py +0 -0
  764. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_settings.py +0 -0
  765. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_setup.py +0 -0
  766. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_slack.py +0 -0
  767. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_spw.py +0 -0
  768. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_stages.py +0 -0
  769. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_state.py +0 -0
  770. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_storage.py +0 -0
  771. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_storage_controller.py +0 -0
  772. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_storage_counter.py +0 -0
  773. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_storage_filename.py +0 -0
  774. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_syn_cs.py +0 -0
  775. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_system.py +0 -0
  776. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_tcs.py +0 -0
  777. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_tdms.py +0 -0
  778. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_thorlabs_controller.py +0 -0
  779. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_thorlabs_proxy.py +0 -0
  780. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_thorlabs_simulator.py +0 -0
  781. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_twos_complement.py +0 -0
  782. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_version.py +0 -0
  783. {cgse-2023.36.0 → cgse-2023.38.0}/src/tests/test_windowing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cgse
3
- Version: 2023.36.0
3
+ Version: 2023.38.0
4
4
  Summary: PLATO Common-EGSE
5
5
  Author-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
6
6
  Maintainer: Pierre Royer, Nicolas Beraud, Sena Gomashie, Jesus Saiz
@@ -13,12 +13,63 @@ Classifier: Programming Language :: Python :: 3.8
13
13
  Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
14
14
  Requires-Python: >=3.8
15
15
  Description-Content-Type: text/x-rst
16
+ License-File: COPYING
17
+ License-File: COPYING.LESSER
18
+ Requires-Dist: apscheduler
19
+ Requires-Dist: astropy
20
+ Requires-Dist: click
21
+ Requires-Dist: deepdiff
22
+ Requires-Dist: distro
23
+ Requires-Dist: ginga
24
+ Requires-Dist: gitpython>=3
25
+ Requires-Dist: h5py>=3.5
26
+ Requires-Dist: invoke
27
+ Requires-Dist: matplotlib>=3.5
28
+ Requires-Dist: natsort
29
+ Requires-Dist: numpy==1.22.4
30
+ Requires-Dist: openpyxl
31
+ Requires-Dist: pandas
32
+ Requires-Dist: paramiko
33
+ Requires-Dist: persist-queue
34
+ Requires-Dist: prometheus-client
35
+ Requires-Dist: psutil
36
+ Requires-Dist: pyqtgraph
37
+ Requires-Dist: pytz
38
+ Requires-Dist: pyyaml
39
+ Requires-Dist: pyzmq
40
+ Requires-Dist: qled
41
+ Requires-Dist: requests
42
+ Requires-Dist: rich
43
+ Requires-Dist: scipy
44
+ Requires-Dist: sshtunnel
45
+ Requires-Dist: sympy
46
+ Requires-Dist: textual
47
+ Requires-Dist: transforms3d
48
+ Requires-Dist: transitions
49
+ Requires-Dist: typing_extensions
50
+ Requires-Dist: pylibftdi
51
+ Requires-Dist: pyserial
52
+ Requires-Dist: pylzma
53
+ Requires-Dist: pyusb
54
+ Requires-Dist: PyVISA
55
+ Requires-Dist: PyVISA-py
56
+ Requires-Dist: ThorlabsPM100
16
57
  Provides-Extra: dev
58
+ Requires-Dist: pytest; extra == "dev"
59
+ Requires-Dist: pytest-mock; extra == "dev"
60
+ Requires-Dist: pytest-cov; extra == "dev"
61
+ Requires-Dist: pipdeptree; extra == "dev"
62
+ Requires-Dist: pdoc3; extra == "dev"
17
63
  Provides-Extra: pyqt5
64
+ Requires-Dist: pyqt5>=5.15; extra == "pyqt5"
65
+ Requires-Dist: PyQtWebEngine>=5.15; extra == "pyqt5"
18
66
  Provides-Extra: pyqt6
67
+ Requires-Dist: pyqt6>=6.5; extra == "pyqt6"
68
+ Requires-Dist: PyQtWebEngine>=6.5; extra == "pyqt6"
19
69
  Provides-Extra: tools
20
- License-File: COPYING
21
- License-File: COPYING.LESSER
70
+ Requires-Dist: cutelog; extra == "tools"
71
+ Requires-Dist: gui-executor; extra == "tools"
72
+ Requires-Dist: visidata; extra == "tools"
22
73
 
23
74
  <p align="center">
24
75
  <a href="https://ivs-kuleuven.github.io/plato-common-egse/"><img src="MKDOCS/docs/img/cgse-logo-200x200.png"/></a>
@@ -27,7 +27,7 @@ classifiers = [
27
27
 
28
28
  dependencies = [
29
29
  "apscheduler",
30
- "astropy == 4.0", # see issue #1306
30
+ "astropy",
31
31
  "click",
32
32
  "deepdiff",
33
33
  "distro",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cgse
3
- Version: 2023.36.0
3
+ Version: 2023.38.0
4
4
  Summary: PLATO Common-EGSE
5
5
  Author-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
6
6
  Maintainer: Pierre Royer, Nicolas Beraud, Sena Gomashie, Jesus Saiz
@@ -13,12 +13,63 @@ Classifier: Programming Language :: Python :: 3.8
13
13
  Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
14
14
  Requires-Python: >=3.8
15
15
  Description-Content-Type: text/x-rst
16
+ License-File: COPYING
17
+ License-File: COPYING.LESSER
18
+ Requires-Dist: apscheduler
19
+ Requires-Dist: astropy
20
+ Requires-Dist: click
21
+ Requires-Dist: deepdiff
22
+ Requires-Dist: distro
23
+ Requires-Dist: ginga
24
+ Requires-Dist: gitpython>=3
25
+ Requires-Dist: h5py>=3.5
26
+ Requires-Dist: invoke
27
+ Requires-Dist: matplotlib>=3.5
28
+ Requires-Dist: natsort
29
+ Requires-Dist: numpy==1.22.4
30
+ Requires-Dist: openpyxl
31
+ Requires-Dist: pandas
32
+ Requires-Dist: paramiko
33
+ Requires-Dist: persist-queue
34
+ Requires-Dist: prometheus-client
35
+ Requires-Dist: psutil
36
+ Requires-Dist: pyqtgraph
37
+ Requires-Dist: pytz
38
+ Requires-Dist: pyyaml
39
+ Requires-Dist: pyzmq
40
+ Requires-Dist: qled
41
+ Requires-Dist: requests
42
+ Requires-Dist: rich
43
+ Requires-Dist: scipy
44
+ Requires-Dist: sshtunnel
45
+ Requires-Dist: sympy
46
+ Requires-Dist: textual
47
+ Requires-Dist: transforms3d
48
+ Requires-Dist: transitions
49
+ Requires-Dist: typing_extensions
50
+ Requires-Dist: pylibftdi
51
+ Requires-Dist: pyserial
52
+ Requires-Dist: pylzma
53
+ Requires-Dist: pyusb
54
+ Requires-Dist: PyVISA
55
+ Requires-Dist: PyVISA-py
56
+ Requires-Dist: ThorlabsPM100
16
57
  Provides-Extra: dev
58
+ Requires-Dist: pytest; extra == "dev"
59
+ Requires-Dist: pytest-mock; extra == "dev"
60
+ Requires-Dist: pytest-cov; extra == "dev"
61
+ Requires-Dist: pipdeptree; extra == "dev"
62
+ Requires-Dist: pdoc3; extra == "dev"
17
63
  Provides-Extra: pyqt5
64
+ Requires-Dist: pyqt5>=5.15; extra == "pyqt5"
65
+ Requires-Dist: PyQtWebEngine>=5.15; extra == "pyqt5"
18
66
  Provides-Extra: pyqt6
67
+ Requires-Dist: pyqt6>=6.5; extra == "pyqt6"
68
+ Requires-Dist: PyQtWebEngine>=6.5; extra == "pyqt6"
19
69
  Provides-Extra: tools
20
- License-File: COPYING
21
- License-File: COPYING.LESSER
70
+ Requires-Dist: cutelog; extra == "tools"
71
+ Requires-Dist: gui-executor; extra == "tools"
72
+ Requires-Dist: visidata; extra == "tools"
22
73
 
23
74
  <p align="center">
24
75
  <a href="https://ivs-kuleuven.github.io/plato-common-egse/"><img src="MKDOCS/docs/img/cgse-logo-200x200.png"/></a>
@@ -633,7 +633,6 @@ src/scripts/n_fee_supply_voltage_calculation.py
633
633
  src/scripts/playground.py
634
634
  src/scripts/print_hdf5_hk_data.py
635
635
  src/scripts/print_register_map.py
636
- src/scripts/update_operational_cgse 2.py
637
636
  src/scripts/update_operational_cgse.py
638
637
  src/scripts/update_operational_cgse_old.py
639
638
  src/scripts/alerts/cold.yaml
@@ -1,5 +1,5 @@
1
1
  apscheduler
2
- astropy==4.0
2
+ astropy
3
3
  click
4
4
  deepdiff
5
5
  distro
@@ -394,11 +394,14 @@ class Alert:
394
394
  def mask_check(self, value):
395
395
  """ Masks a bitmap and check the state of a single bit
396
396
  """
397
- self.value = value
397
+ if isinstance(value, str):
398
+ value = eval(value)
399
+
400
+ self.value = int(value)
398
401
 
399
- if (int(value) >> self.configuration.limits['mask']) & 0b1:
402
+ if (self.value >> self.configuration.limits['mask']) & 0b1:
400
403
  self.timed_out = time.time() if self.timed_out == 0.0 else self.timed_out
401
- if (time() - self.timed_out) > self.configuration.maximum_age:
404
+ if (time.time() - self.timed_out) > self.configuration.maximum_age:
402
405
  self.trigger_alert()
403
406
  else:
404
407
  self.clear_alert()
@@ -452,7 +455,7 @@ class ControlServerWorker:
452
455
 
453
456
  for process_name, process_info in self.devices.items():
454
457
 
455
- if ('alert' in process_name.lower())or ('fdir' in process_name.lower()):
458
+ if ('alert' in process_name.lower()) or ('fdir' in process_name.lower()) or ('dpu' in process_name.lower()):
456
459
  continue
457
460
 
458
461
  self.monitors[process_name] = {'name' : process_name,
@@ -262,7 +262,7 @@ def get_common_egse_root(path: Union[str, PurePath] = None) -> Optional[PurePath
262
262
  Returns:
263
263
  Path: the absolute path to the Common-EGSE installation directory or None
264
264
  """
265
- _TEST_NAMES = ("setup.py", "MKDOCS")
265
+ _TEST_NAMES = ("pyproject.toml", "setup.py")
266
266
  if path is not None:
267
267
  return find_root(path, tests=_TEST_NAMES)
268
268
 
@@ -111,7 +111,6 @@ from __future__ import annotations
111
111
 
112
112
  import logging
113
113
  import operator
114
- import os
115
114
  import subprocess
116
115
  import textwrap
117
116
  import threading
@@ -120,9 +119,10 @@ from typing import NamedTuple
120
119
  from typing import Optional
121
120
  from typing import Union
122
121
 
123
- import rich
124
122
  import git
123
+ import rich
125
124
  from git import GitCommandError
125
+ from prometheus_client import Gauge
126
126
 
127
127
  from egse.command import ClientServerCommand
128
128
  from egse.command import stringify_function_call
@@ -145,16 +145,12 @@ from egse.settings import SettingsError
145
145
  from egse.setup import Setup
146
146
  from egse.setup import load_last_setup_id
147
147
  from egse.setup import save_last_setup_id
148
- from egse.storage import StorageProxy
149
- from egse.storage import is_storage_manager_active
150
- from egse.storage.persistence import TXT
151
148
  from egse.system import filter_by_attr
152
149
  from egse.system import format_datetime
153
150
  from egse.system import replace_environment_variable
154
151
  from egse.version import VERSION
155
152
  from egse.zmq_ser import bind_address
156
153
  from egse.zmq_ser import connect_address
157
- from prometheus_client import Gauge
158
154
 
159
155
  LOGGER = logging.getLogger(__name__)
160
156
 
@@ -521,6 +517,15 @@ class ConfigurationManagerController(ConfigurationManagerInterface):
521
517
  """
522
518
 
523
519
  def __init__(self):
520
+
521
+ # Import these modules here as to optimize the import of classes and functions in other parts of the CGSE.
522
+ # The CongifurationManagerController is only used by the CM CS and these Storage imports are only used in
523
+ # this class and take too much loading time...
524
+
525
+ from egse.storage import StorageProxy
526
+ from egse.storage import is_storage_manager_active
527
+ from egse.storage.persistence import TXT
528
+
524
529
  self._obsid: ObservationIdentifier | None = None
525
530
  self._setup_id: int | None = None
526
531
  self._camera_name: str | None = None
@@ -1,5 +1,29 @@
1
1
  """
2
- This module defines the commanding interfaces for the DPU-FEE interaction.
2
+ This module defines the commanding interfaces for the DPU—N-FEE interaction.
3
+
4
+
5
+ On the *client/user side*, the `DPUProxy` class shall be used for user interactions and commanding with both
6
+ the DPU simulator and the N-FEE. This class connects to the DPU control server which must be running before
7
+ any commands can be processed.
8
+
9
+ On the *server side*, the `DPUControlServer` class is located in the module `dpu_cs`.
10
+
11
+ The top-level classes that are of interest to the developer when inspecting this module are:
12
+
13
+ * `DPUController` which puts the requested commands on the command queue for the `DPUProcessor`
14
+ * `DPUProcessor` is the work horse of the DPU simulator and runs in a separate process. This process communicates
15
+ directly with the N-FEE through the SpaceWire interface.
16
+ * `DPUInternals` keeps critical information about the DPU and provides information on the status of the
17
+ readout progress, i.e. where we are in the readout cycle.
18
+ * `DPUMonitoring` provides methods to run a function at a certain time, e.g. right after a long pulse, or to wait
19
+ for an event, e.g. when an HDF5 file is ready for processing.
20
+
21
+ The actual commanding is done in `dpu` module. That module also defines the `NFEEState` which acts as a
22
+ mirror of the FPGA status.
23
+
24
+ This module also defines a number of functions, but they all are for internal use and are not of any interest
25
+ unless you are maintaining this module.
26
+
3
27
  """
4
28
 
5
29
  import logging
@@ -103,22 +127,18 @@ DATA_TYPE: Dict[str, Type[PersistenceLayer]] = {
103
127
  "FITS": FITS,
104
128
  }
105
129
 
106
- try:
107
- CCD_ID_TO_BIN = GlobalState.setup.camera.fee.ccd_numbering.CCD_ID_TO_BIN
108
- except AttributeError as exc:
109
- LOGGER.error(f"Could not load CCD_ID_TO_BIN from Setup: {exc}")
110
- raise
111
-
112
130
  CCD_NUMBERS = [1, 2, 3, 4]
113
131
 
132
+
114
133
  def rotate_list(seq, n):
115
134
  if (size := len(seq)) < 2:
116
135
  return seq
117
136
  n = n % len(seq)
118
137
  return seq[n:] + seq[:n]
119
138
 
120
- def _get_ccd_readout_order(order_list: list):
121
- return sum(CCD_ID_TO_BIN[ccd] << idx * 2 for idx, ccd in enumerate(order_list))
139
+
140
+ def _get_ccd_readout_order(order_list: list, ccd_id_mapping: list):
141
+ return sum(ccd_id_mapping[ccd] << idx * 2 for idx, ccd in enumerate(order_list))
122
142
 
123
143
 
124
144
  class NoDataPacketError(Exception):
@@ -1337,6 +1357,9 @@ class DPUInternals:
1337
1357
  # Enumeration with the sensor_sel
1338
1358
  sensor_sel_enum: Enum = None
1339
1359
 
1360
+ # Mapping of the CCD identifier to the binary representation (loaded from the Setup)
1361
+ ccd_id_to_bin: List[int] = None
1362
+
1340
1363
  # The clear_error_flags shall be executed on every readout, i.e. every 200ms and 400ms pulse.
1341
1364
  clear_error_flags = False
1342
1365
 
@@ -1438,14 +1461,17 @@ class DPUProcessor(multiprocessing.Process):
1438
1461
 
1439
1462
  def run(self):
1440
1463
 
1464
+ setup = GlobalState.setup
1465
+
1441
1466
  self._dpu_internals = DPUInternals(
1442
1467
  num_cycles=-1,
1443
1468
  expected_last_packet_flags=[False, False, False, False],
1444
1469
  dump_mode=False,
1445
1470
  internal_sync=False,
1446
1471
  frame_number=-1,
1447
- ccd_sides_enum=GlobalState.setup.camera.fee.ccd_sides.enum,
1448
- sensor_sel_enum=GlobalState.setup.camera.fee.sensor_sel.enum,
1472
+ ccd_sides_enum=setup.camera.fee.ccd_sides.enum,
1473
+ sensor_sel_enum=setup.camera.fee.sensor_sel.enum,
1474
+ ccd_id_to_bin=setup.camera.fee.ccd_numbering.CCD_ID_TO_BIN,
1449
1475
  )
1450
1476
 
1451
1477
  # The DPU Processor runs in a different process and since ZeroMQ Sockets are not
@@ -1651,7 +1677,9 @@ class DPUProcessor(multiprocessing.Process):
1651
1677
  internals = self._dpu_internals
1652
1678
  internals.current_ccd_readout_order = rotate_list(internals.current_ccd_readout_order, 1)
1653
1679
  internals.cycle_count += 1
1654
- ccd_readout_order = _get_ccd_readout_order(internals.current_ccd_readout_order)
1680
+ ccd_readout_order = _get_ccd_readout_order(
1681
+ internals.current_ccd_readout_order, internals.ccd_id_to_bin
1682
+ )
1655
1683
  # LOGGER.info(f"{internals.current_ccd_readout_order = }, {ccd_readout_order = }, "
1656
1684
  # f"{internals.cycle_count = }")
1657
1685
  _ = command_set_readout_order(self._transport, self.register_map, ccd_readout_order)
@@ -1,3 +1,4 @@
1
+ """This module defines widgets that are common to the DPU GUI and the HDF5 GUI."""
1
2
  import logging
2
3
  from datetime import datetime
3
4
  from typing import Optional
@@ -5,12 +5,15 @@ the DPU Controller.
5
5
  Start the DPU Control Server from the terminal as follows when you have the real hardware
6
6
  connected via a Diagnostic SpaceWire Interface (DSI):
7
7
  ```bash
8
- $ python -m egse.dpu.dpu_cs -a <DSI address> -p <dsi port>
8
+ $ dpu_cs start [-a <IP address of DSI>] [-p <dsi port>]
9
9
  ```
10
10
  Alternatively, when you want to run the FEE Simulator, start the DPU Control Server as follows:
11
11
  ```bash
12
- $ python -m egse.dpu.dpu_cs --zeromq
12
+ $ dpu_cs start --zeromq
13
13
  ```
14
+ This last command will try to connect to an N-FEE simulator that is also started with the `--zeromq` option.
15
+ See the `feesim` module in `egse.fee` for more information.
16
+
14
17
  Please note that software simulators are intended for simple test purposes and will not simulate
15
18
  all device behavior correctly, e.g. timing, error conditions, etc.
16
19
 
@@ -1,3 +1,11 @@
1
+ """
2
+ This module implements the image display for the N-FEE data and housekeeping.
3
+
4
+ The DPU GUI can be started from the command line with the `dpu_ui` command. The GUI will connect to the
5
+ data distribution port of the DPU Processor. For this to work, you will need to have at least a DPU control server
6
+ running.
7
+
8
+ """
1
9
  import contextlib
2
10
  import logging
3
11
  import multiprocessing
@@ -1,3 +1,11 @@
1
+ """
2
+ This module define the FITS generation process.
3
+
4
+ The FITS generation process connects to the monitoring channel of the DPU control server and starts processing
5
+ HDF5 files as soon as they are available. The FITS generation can also be started off-line to process a list
6
+ of HDF5 files or to process a given Observation (OBSID).
7
+
8
+ """
1
9
  import glob
2
10
  import logging
3
11
  import multiprocessing
@@ -123,6 +123,8 @@ if __name__ == "__main__":
123
123
  import sys
124
124
  import rich
125
125
 
126
+ from egse.config import get_common_egse_root
127
+
126
128
  parser = argparse.ArgumentParser()
127
129
  parser.add_argument(
128
130
  "--full",
@@ -180,6 +182,14 @@ if __name__ == "__main__":
180
182
  rich.print("Generated locations and filenames")
181
183
 
182
184
  with all_logging_disabled():
185
+ try:
186
+ rich.print(f" {get_common_egse_root() = !s}", flush=True)
187
+ location = get_common_egse_root()
188
+ if not Path(location).exists():
189
+ rich.print("[red]ERROR: The generated Common-EGSE location doesn't exist![/]")
190
+ except ValueError as exc:
191
+ rich.print(f" get_common_egse_path() = [red]{exc}[/]")
192
+
183
193
  try:
184
194
  rich.print(f" {get_data_storage_location() = }", flush=True)
185
195
  location = get_data_storage_location()
@@ -207,6 +217,7 @@ if __name__ == "__main__":
207
217
  if args.full:
208
218
  rich.print()
209
219
  rich.print(f" PYTHONPATH=[default]{os.environ.get('PYTHONPATH')}")
220
+ rich.print(f" PYTHONSTARTUP=[default]{os.environ.get('PYTHONSTARTUP')}")
210
221
  rich.print()
211
222
  python_path_msg = "\n ".join(sys.path)
212
223
  rich.print(f" sys.path=[\n {python_path_msg}\n ]")
@@ -374,25 +374,27 @@ class SronFovHk(FovHk):
374
374
  rotx = radians(monitoring_info["alpha"]) # [radians]
375
375
  roty = radians(monitoring_info["beta"]) # [radians]
376
376
 
377
+ if isinstance(roty, float):
378
+ rotx = np.array([rotx])
379
+ roty = np.array([roty])
380
+
377
381
  tolerance = 1.e-5
378
382
 
379
- # Gnomonic distance to optical axis and in-field angle [degrees]
383
+ # Corrections based on #598
384
+ # Copied from camtest.commanding.function.sron_functions.gimbal_rotations_to_fov_angles
385
+ theta = np.arccos(np.cos(rotx) * np.cos(roty))
386
+
387
+ phi = np.zeros_like(roty)
380
388
 
381
- theta = degrees(acos(cos(rotx) * cos(roty))) # [degrees]
389
+ sel = np.where(np.abs(roty) < tolerance)
382
390
 
383
- phi = 0.0
384
- if abs(roty) < tolerance:
385
- phi = sign(rotx) * pi / 2.
386
- elif abs(roty) > tolerance:
387
- phi = atan(sign(roty) * tan(rotx) / sin(roty))
391
+ phi[sel] = np.sign(rotx[sel]) * np.pi/2.
388
392
 
389
- phi = degrees(phi) # [degrees]
393
+ sel = np.where(np.abs(roty) > tolerance)
390
394
 
391
- if roty < 0:
392
- phi = -180. - phi
395
+ phi[sel] = np.arctan2(-np.sin(-rotx[sel]) * np.cos(roty[sel]), np.sin(roty[sel]))
393
396
 
394
- if phi < -180:
395
- phi += 360.
397
+ theta, phi = np.rad2deg(theta), np.rad2deg(phi)
396
398
 
397
399
  store_actual_fov_position(theta, phi)
398
400
 
@@ -211,7 +211,7 @@ def set_all_logger_levels(level: int):
211
211
  # handler.setLevel(level)
212
212
 
213
213
 
214
- if "__main__" == __name__:
214
+ if __name__ == "__main__":
215
215
 
216
216
  import egse.logger
217
217
 
@@ -1,6 +1,6 @@
1
1
  Common-EGSE:
2
- VERSION: 2023.36.0+CGSE # bump version here and below
3
- RELEASE: September 2023, 2023.36.0+CGSE
2
+ VERSION: 2023.38.0+CGSE # bump version here and below
3
+ RELEASE: September 2023, 2023.38.0+CGSE
4
4
 
5
5
  SITE:
6
6
  ID: XXX
@@ -113,11 +113,8 @@ from typing import Any
113
113
  from typing import Optional
114
114
  from typing import Union
115
115
 
116
- import pandas
117
116
  import rich
118
117
  import yaml
119
- from deepdiff import DeepDiff
120
- from numpy import genfromtxt
121
118
  from rich.tree import Tree
122
119
 
123
120
  from egse.control import Failure
@@ -154,6 +151,8 @@ def _load_class(class_name: str):
154
151
 
155
152
  def _load_csv(resource_name: str):
156
153
  """Find and return the content of a CSV file."""
154
+ from numpy import genfromtxt
155
+
157
156
  parts = resource_name[5:].rsplit("/", 1)
158
157
  [in_dir, fn] = parts if len(parts) > 1 else [None, parts[0]]
159
158
  conf_location = os.environ['PLATO_CONF_DATA_LOCATION']
@@ -216,6 +215,8 @@ def _load_pandas(resource_name: str, separator: str):
216
215
  - resource_name: Filename, preceded by "pandas//".
217
216
  - separator: Column separator.
218
217
  """
218
+ import pandas
219
+
219
220
  parts = resource_name[8:].rsplit("/", 1)
220
221
  [in_dir, fn] = parts if len(parts) > 1 else [None, parts[0]]
221
222
  conf_location = os.environ['PLATO_CONF_DATA_LOCATION']
@@ -722,6 +723,7 @@ class Setup(NavigableDict):
722
723
  def compare(setup_1: NavigableDict, setup_2: NavigableDict):
723
724
  from egse.device import DeviceInterface
724
725
  from egse.dpu import DPUSimulator
726
+ from deepdiff import DeepDiff
725
727
 
726
728
  return DeepDiff(setup_1, setup_2, exclude_types={DeviceInterface, DPUSimulator})
727
729
 
@@ -319,11 +319,11 @@ class Smd3Controller(SerialDevice, Smd3Interface):
319
319
 
320
320
  def configure_homing(self):
321
321
  self.select_mode(Smd3Mode.HOME)
322
- self.target_frequency(100)
322
+ self.target_frequency(500)
323
323
 
324
324
  def configure_remote(self):
325
325
  self.select_mode(Smd3Mode.REMOTE)
326
- self.target_frequency(500)
326
+ self.target_frequency(1000)
327
327
 
328
328
  def save_status(self, status_word):
329
329
  for bits, name in SFLAGS.items():
@@ -371,15 +371,10 @@ class Smd3Controller(SerialDevice, Smd3Interface):
371
371
  # Home negative side
372
372
  self.home('-')
373
373
 
374
- # Wait until we stat moving
375
- time.sleep(0.1)
376
- _, _, velocity = self.actual_frequency()
377
- while float(velocity) != 0.0:
378
- _, _, velocity = self.actual_frequency()
379
- time.sleep(1)
374
+ while not int(self.actual_position()[0], 16) >> 1 & 0x1:
375
+ time.sleep(0.5)
380
376
 
381
- # Wait a little bit until we actually stopped
382
- time.sleep(0.1)
377
+ time.sleep(.5)
383
378
 
384
379
  # Reset actual position
385
380
  self.actual_position(0.0)
@@ -9,8 +9,6 @@ from egse.command import ClientServerCommand
9
9
  from egse.confman import ConfigurationManagerProxy
10
10
  from egse.zmq_ser import connect_address
11
11
 
12
- from gssw.lib.errors import GsswTimeoutError, PeerException
13
-
14
12
  logger = logging.getLogger(__name__)
15
13
 
16
14
  CTRL_SETTINGS = Settings.load("BeagleBone Heater Control Server")
@@ -291,7 +289,7 @@ class BeagleboneHeaterController(BeagleboneInterface):
291
289
  return False
292
290
 
293
291
  def is_connected(self):
294
- return all([heater.connected for heater in self.heaters])
292
+ return all([heater.connected for heater in self.heaters.values()])
295
293
 
296
294
  def connect(self):
297
295
  for heater in self.heaters.values():
@@ -13,8 +13,6 @@ from egse.tempcontrol.beaglebone.beaglebone import BeagleboneCommand
13
13
  from egse.system import format_datetime
14
14
  from egse.zmq_ser import bind_address
15
15
 
16
- from gssw.lib.errors import GsswTimeoutError, PeerException, CommunicationError
17
-
18
16
  COMMAND_SETTINGS = Settings.load(filename='beaglebone.yaml')
19
17
 
20
18
  logger = logging.getLogger(__name__)
@@ -22,7 +20,7 @@ logger = logging.getLogger(__name__)
22
20
 
23
21
  class BeagleboneProtocol(CommandProtocol):
24
22
 
25
-
23
+ from gssw.lib.errors import GsswTimeoutError, PeerException, CommunicationError
26
24
 
27
25
  def __init__(self, control_server:ControlServer):
28
26
  super().__init__()
@@ -73,10 +71,10 @@ class BeagleboneProtocol(CommandProtocol):
73
71
  duty_cycle.append(heater.get_duty_cycle(channel))
74
72
 
75
73
  htr_connected[i] = True
76
- except CommunicationError as ex:
74
+ except self.CommunicationError as ex:
77
75
  logger.error("Could not connect to heater %s: %s", i, ex)
78
76
  heater.disconnected()
79
- except PeerException as ex:
77
+ except self.PeerException as ex:
80
78
  logger.warning("Could not retrieve housekeeping from heater %s: %s", i, ex)
81
79
 
82
80
  if not heater.connected:
@@ -110,10 +108,10 @@ class BeagleboneProtocol(CommandProtocol):
110
108
  hk_dict[f"GSRON_HTR_R_{i}_{channel}"] = hk_dict[f"GSRON_HTR_V_{i}_{channel}"] / hk_dict[f"GSRON_HTR_I_{i}_{channel}"] \
111
109
  if hk_dict[f"GSRON_HTR_I_{i}_{channel}"] else 0
112
110
  hk_dict[f"GSRON_HTR_P_{i}_{channel}"] = hk_dict[f"GSRON_HTR_V_{i}_{channel}"] * hk_dict[f"GSRON_HTR_I_{i}_{channel}"]
113
- except GsswTimeoutError as ex:
111
+ except self.GsswTimeoutError as ex:
114
112
  logger.error("Could not connect with Beaglebone heater %s: %s", i, ex)
115
113
  heater.disconnected()
116
- except PeerException as ex:
114
+ except self.PeerException as ex:
117
115
  logger.warning("Could not retrieve housekeeping from heater %s: %s", i, ex)
118
116
  heater.disconnected()
119
117
 
@@ -10,7 +10,11 @@ from egse.reg import RegisterMap
10
10
  @click.command()
11
11
  @click.argument('filename')
12
12
  def print_register_map(filename: str | Path):
13
- """Prints the Register Map that is saved in the HDF5 file."""
13
+ """
14
+ Prints the Register Map that is saved in the HDF5 file.
15
+
16
+ The FILENAME argument shall be the full path to the HDF5 file from which the register map is requested.
17
+ """
14
18
 
15
19
  filename = Path(filename)
16
20