cgse 0.18.0__tar.gz → 0.18.1__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 (590) hide show
  1. {cgse-0.18.0 → cgse-0.18.1}/CHANGELOG.md +47 -3
  2. {cgse-0.18.0 → cgse-0.18.1}/PKG-INFO +1 -1
  3. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/pyproject.toml +1 -1
  4. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/socketdevice.py +8 -1
  5. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/pyproject.toml +1 -1
  6. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/pyproject.toml +1 -1
  7. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/pyproject.toml +1 -1
  8. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/pyproject.toml +1 -1
  9. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/pyproject.toml +1 -1
  10. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/pyproject.toml +1 -1
  11. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/pyproject.toml +1 -1
  12. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
  13. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
  14. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/service_registry.db-shm +0 -0
  15. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/service_registry.db-wal +0 -0
  16. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +20 -48
  17. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +64 -25
  18. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/script_daq6510_amon.py +12 -4
  19. cgse-0.18.1/projects/generic/keithley-tempcontrol/tests/test_controller.py +58 -0
  20. cgse-0.18.1/projects/generic/keithley-tempcontrol/tests/test_cs.py +89 -0
  21. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/pyproject.toml +1 -1
  22. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
  23. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
  24. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-fits/pyproject.toml +1 -1
  25. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-hdf5/pyproject.toml +1 -1
  26. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-spw/pyproject.toml +1 -1
  27. {cgse-0.18.0 → cgse-0.18.1}/pyproject.toml +1 -1
  28. {cgse-0.18.0 → cgse-0.18.1}/.env.example +0 -0
  29. {cgse-0.18.0 → cgse-0.18.1}/.github/workflows/ruff-format-check.yaml +0 -0
  30. {cgse-0.18.0 → cgse-0.18.1}/.gitignore +0 -0
  31. {cgse-0.18.0 → cgse-0.18.1}/.op/plugins/gh.json +0 -0
  32. {cgse-0.18.0 → cgse-0.18.1}/LICENSE +0 -0
  33. {cgse-0.18.0 → cgse-0.18.1}/README.md +0 -0
  34. {cgse-0.18.0 → cgse-0.18.1}/bump.py +0 -0
  35. {cgse-0.18.0 → cgse-0.18.1}/conftest.py +0 -0
  36. {cgse-0.18.0 → cgse-0.18.1}/docs/admin_guide/make-a-release.md +0 -0
  37. {cgse-0.18.0 → cgse-0.18.1}/docs/api/bits.md +0 -0
  38. {cgse-0.18.0 → cgse-0.18.1}/docs/api/calibration.md +0 -0
  39. {cgse-0.18.0 → cgse-0.18.1}/docs/api/command.md +0 -0
  40. {cgse-0.18.0 → cgse-0.18.1}/docs/api/config.md +0 -0
  41. {cgse-0.18.0 → cgse-0.18.1}/docs/api/control.md +0 -0
  42. {cgse-0.18.0 → cgse-0.18.1}/docs/api/counter.md +0 -0
  43. {cgse-0.18.0 → cgse-0.18.1}/docs/api/decorators.md +0 -0
  44. {cgse-0.18.0 → cgse-0.18.1}/docs/api/device.md +0 -0
  45. {cgse-0.18.0 → cgse-0.18.1}/docs/api/dicts.md +0 -0
  46. {cgse-0.18.0 → cgse-0.18.1}/docs/api/dummy.md +0 -0
  47. {cgse-0.18.0 → cgse-0.18.1}/docs/api/env.md +0 -0
  48. {cgse-0.18.0 → cgse-0.18.1}/docs/api/exceptions.md +0 -0
  49. {cgse-0.18.0 → cgse-0.18.1}/docs/api/heartbeat.md +0 -0
  50. {cgse-0.18.0 → cgse-0.18.1}/docs/api/hk.md +0 -0
  51. {cgse-0.18.0 → cgse-0.18.1}/docs/api/index.md +0 -0
  52. {cgse-0.18.0 → cgse-0.18.1}/docs/api/listener.md +0 -0
  53. {cgse-0.18.0 → cgse-0.18.1}/docs/api/metrics.md +0 -0
  54. {cgse-0.18.0 → cgse-0.18.1}/docs/api/mixin.md +0 -0
  55. {cgse-0.18.0 → cgse-0.18.1}/docs/api/monitoring.md +0 -0
  56. {cgse-0.18.0 → cgse-0.18.1}/docs/api/observer.md +0 -0
  57. {cgse-0.18.0 → cgse-0.18.1}/docs/api/obsid.md +0 -0
  58. {cgse-0.18.0 → cgse-0.18.1}/docs/api/persistence.md +0 -0
  59. {cgse-0.18.0 → cgse-0.18.1}/docs/api/plugin.md +0 -0
  60. {cgse-0.18.0 → cgse-0.18.1}/docs/api/process.md +0 -0
  61. {cgse-0.18.0 → cgse-0.18.1}/docs/api/reload.md +0 -0
  62. {cgse-0.18.0 → cgse-0.18.1}/docs/api/settings.md +0 -0
  63. {cgse-0.18.0 → cgse-0.18.1}/docs/api/setup.md +0 -0
  64. {cgse-0.18.0 → cgse-0.18.1}/docs/api/system.md +0 -0
  65. {cgse-0.18.0 → cgse-0.18.1}/docs/custom_theme/main.html +0 -0
  66. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/coding_style.md +0 -0
  67. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/docs.md +0 -0
  68. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/dotenv.md +0 -0
  69. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/index.md +0 -0
  70. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/installation.md +0 -0
  71. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/monitoring.md +0 -0
  72. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/monorepo.md +0 -0
  73. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/nox.md +0 -0
  74. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/plugins.md +0 -0
  75. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/project-configuration.md +0 -0
  76. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/unit_testing.md +0 -0
  77. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/uv.md +0 -0
  78. {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/versioning.md +0 -0
  79. {cgse-0.18.0 → cgse-0.18.1}/docs/getting_started.md +0 -0
  80. {cgse-0.18.0 → cgse-0.18.1}/docs/help.md +0 -0
  81. {cgse-0.18.0 → cgse-0.18.1}/docs/images/cli-cgse.png +0 -0
  82. {cgse-0.18.0 → cgse-0.18.1}/docs/images/github-fork-clone-dark.png +0 -0
  83. {cgse-0.18.0 → cgse-0.18.1}/docs/images/github-fork-clone.png +0 -0
  84. {cgse-0.18.0 → cgse-0.18.1}/docs/images/grafana-queries.png +0 -0
  85. {cgse-0.18.0 → cgse-0.18.1}/docs/images/icons/cgse-logo-blue.svg +0 -0
  86. {cgse-0.18.0 → cgse-0.18.1}/docs/images/icons/cgse-logo.svg +0 -0
  87. {cgse-0.18.0 → cgse-0.18.1}/docs/index.md +0 -0
  88. {cgse-0.18.0 → cgse-0.18.1}/docs/initialize.md +0 -0
  89. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/images/load_methods.png +0 -0
  90. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/index.md +0 -0
  91. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/settings.md +0 -0
  92. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/setup.md +0 -0
  93. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-coordinates/index.md +0 -0
  94. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-core/index.md +0 -0
  95. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-core/notifyhub.md +0 -0
  96. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-core/registry.md +0 -0
  97. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-gui/index.md +0 -0
  98. {cgse-0.18.0 → cgse-0.18.1}/docs/libs/index.md +0 -0
  99. {cgse-0.18.0 → cgse-0.18.1}/docs/package_list.md +0 -0
  100. {cgse-0.18.0 → cgse-0.18.1}/docs/projects/cgse-tools.md +0 -0
  101. {cgse-0.18.0 → cgse-0.18.1}/docs/projects/index.md +0 -0
  102. {cgse-0.18.0 → cgse-0.18.1}/docs/projects/symetrie-hexapod.md +0 -0
  103. {cgse-0.18.0 → cgse-0.18.1}/docs/roadmap.md +0 -0
  104. {cgse-0.18.0 → cgse-0.18.1}/docs/stylesheets/custom.css +0 -0
  105. {cgse-0.18.0 → cgse-0.18.1}/docs/stylesheets/extra.css +0 -0
  106. {cgse-0.18.0 → cgse-0.18.1}/docs/tutorial.md +0 -0
  107. {cgse-0.18.0 → cgse-0.18.1}/docs/user_guide/cli.md +0 -0
  108. {cgse-0.18.0 → cgse-0.18.1}/docs/user_guide/env.md +0 -0
  109. {cgse-0.18.0 → cgse-0.18.1}/docs/user_guide/index.md +0 -0
  110. {cgse-0.18.0 → cgse-0.18.1}/duckdb_metrics.db +0 -0
  111. {cgse-0.18.0 → cgse-0.18.1}/duckdb_metrics.db.wal +0 -0
  112. {cgse-0.18.0 → cgse-0.18.1}/identifier.sqlite +0 -0
  113. {cgse-0.18.0 → cgse-0.18.1}/justfile +0 -0
  114. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/README.md +0 -0
  115. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/justfile +0 -0
  116. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/noxfile.py +0 -0
  117. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/service_registry.db +0 -0
  118. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
  119. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
  120. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
  121. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/bits.py +0 -0
  122. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/calibration.py +0 -0
  123. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/config.py +0 -0
  124. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/counter.py +0 -0
  125. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/decorators.py +0 -0
  126. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/device.py +0 -0
  127. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/dicts.py +0 -0
  128. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/env.py +0 -0
  129. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/exceptions.py +0 -0
  130. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/heartbeat.py +0 -0
  131. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/hk.py +0 -0
  132. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/log.py +0 -0
  133. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/metrics.py +0 -0
  134. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/observer.py +0 -0
  135. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/obsid.py +0 -0
  136. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/persistence.py +0 -0
  137. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/plugin.py +0 -0
  138. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
  139. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/process.py +0 -0
  140. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/py.typed +0 -0
  141. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/randomwalk.py +0 -0
  142. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/reload.py +0 -0
  143. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/resource.py +0 -0
  144. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/response.py +0 -0
  145. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/scpi.py +0 -0
  146. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/settings.py +0 -0
  147. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/settings.yaml +0 -0
  148. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/setup.py +0 -0
  149. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/signal.py +0 -0
  150. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/state.py +0 -0
  151. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/system.py +0 -0
  152. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/task.py +0 -0
  153. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/version.py +0 -0
  154. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
  155. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/conftest.py +0 -0
  156. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/COPYING +0 -0
  157. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
  158. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
  159. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
  160. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
  161. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
  162. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
  163. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
  164. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
  165. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/IAS/README.md +0 -0
  166. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/INTA/README.md +0 -0
  167. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
  168. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
  169. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
  170. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
  171. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
  172. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
  173. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
  174. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
  175. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
  176. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
  177. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
  178. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
  179. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/command.yaml +0 -0
  180. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
  181. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
  182. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
  183. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
  184. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
  185. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
  186. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
  187. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
  188. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
  189. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
  190. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
  191. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
  192. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
  193. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
  194. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
  195. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
  196. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
  197. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
  198. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/void-0.py +0 -0
  199. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/void-1.py +0 -0
  200. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_bits.py +0 -0
  201. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_config.py +0 -0
  202. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_decorators.py +0 -0
  203. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_device.py +0 -0
  204. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_env.py +0 -0
  205. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_fixtures.py +0 -0
  206. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_hk.py +0 -0
  207. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_influxdb_plugin.py +0 -0
  208. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_log.py +0 -0
  209. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_metrics.py +0 -0
  210. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_plugin.py +0 -0
  211. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_process.py +0 -0
  212. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_resource.py +0 -0
  213. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_response.py +0 -0
  214. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_scpi.py +0 -0
  215. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_settings.py +0 -0
  216. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_setup.py +0 -0
  217. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_signal.py +0 -0
  218. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_socketdevice.py +0 -0
  219. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_state.py +0 -0
  220. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_system.py +0 -0
  221. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_task.py +0 -0
  222. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_version.py +0 -0
  223. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
  224. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/README.md +0 -0
  225. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
  226. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
  227. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
  228. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
  229. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
  230. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
  231. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
  232. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
  233. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/reference_frame.py +0 -0
  234. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
  235. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/rotation_matrix.py +0 -0
  236. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
  237. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
  238. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
  239. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
  240. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_point.py +0 -0
  241. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
  242. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
  243. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
  244. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/README.md +0 -0
  245. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/service_registry.db +0 -0
  246. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
  247. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/_start.py +0 -0
  248. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/_status.py +0 -0
  249. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
  250. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
  251. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/services.py +0 -0
  252. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
  253. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/_setup_core.py +0 -0
  254. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/command.py +0 -0
  255. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/__init__.py +0 -0
  256. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
  257. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
  258. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/confman_cs.py +0 -0
  259. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/connect.py +0 -0
  260. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/control.py +0 -0
  261. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/dummy.py +0 -0
  262. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
  263. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
  264. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
  265. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
  266. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
  267. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
  268. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
  269. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/listener.py +0 -0
  270. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
  271. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
  272. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/logger/log_cs.py +0 -0
  273. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/mixin.py +0 -0
  274. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/monitoring.py +0 -0
  275. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
  276. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
  277. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
  278. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
  279. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
  280. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/__init__.py +0 -0
  281. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
  282. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman_cs.py +0 -0
  283. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
  284. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
  285. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/protocol.py +0 -0
  286. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/proxy.py +0 -0
  287. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
  288. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/backend.py +0 -0
  289. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/client.py +0 -0
  290. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/server.py +0 -0
  291. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/service.py +0 -0
  292. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/services.py +0 -0
  293. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/services.yaml +0 -0
  294. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/__init__.py +0 -0
  295. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
  296. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
  297. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
  298. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/storage_cs.py +0 -0
  299. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/conftest.py +0 -0
  300. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
  301. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
  302. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
  303. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/fixtures/services.py +0 -0
  304. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
  305. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
  306. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
  307. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
  308. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
  309. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/services.py +0 -0
  310. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
  311. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
  312. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_cm_cs.py +0 -0
  313. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_command.py +0 -0
  314. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_confman_setups.py +0 -0
  315. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_connect.py +0 -0
  316. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_control.py +0 -0
  317. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_dummy.py +0 -0
  318. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_event_notification.py +0 -0
  319. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_extensions.py +0 -0
  320. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_listener.py +0 -0
  321. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_logger.py +0 -0
  322. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_mixin.py +0 -0
  323. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_notify_hub.py +0 -0
  324. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_protocol.py +0 -0
  325. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_registry_backend.py +0 -0
  326. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_registry_service.py +0 -0
  327. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_server_running.py +0 -0
  328. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
  329. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_settings_core.py +0 -0
  330. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
  331. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/README.md +0 -0
  332. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
  333. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
  334. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
  335. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
  336. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
  337. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
  338. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
  339. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
  340. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
  341. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
  342. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
  343. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
  344. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
  345. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
  346. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
  347. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
  348. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
  349. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
  350. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
  351. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
  352. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
  353. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
  354. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
  355. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
  356. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
  357. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
  358. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
  359. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
  360. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
  361. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
  362. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
  363. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
  364. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
  365. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
  366. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
  367. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
  368. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
  369. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
  370. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
  371. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
  372. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
  373. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
  374. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
  375. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
  376. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
  377. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
  378. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
  379. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
  380. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
  381. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
  382. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
  383. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
  384. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
  385. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
  386. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
  387. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
  388. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
  389. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
  390. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
  391. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
  392. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
  393. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
  394. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
  395. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
  396. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
  397. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
  398. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
  399. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
  400. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
  401. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
  402. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
  403. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
  404. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
  405. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
  406. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
  407. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
  408. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
  409. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
  410. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
  411. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
  412. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
  413. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
  414. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
  415. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
  416. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
  417. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
  418. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
  419. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
  420. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
  421. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
  422. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
  423. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
  424. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
  425. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
  426. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
  427. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
  428. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
  429. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
  430. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
  431. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
  432. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
  433. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
  434. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
  435. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
  436. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
  437. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
  438. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
  439. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
  440. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
  441. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
  442. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
  443. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
  444. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
  445. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/led.py +0 -0
  446. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
  447. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/states.py +0 -0
  448. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
  449. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
  450. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
  451. {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
  452. {cgse-0.18.0 → cgse-0.18.1}/mkdocs.yml +0 -0
  453. {cgse-0.18.0 → cgse-0.18.1}/noxfile.py +0 -0
  454. {cgse-0.18.0 → cgse-0.18.1}/overrides/.icons/custom/dbend-dark.svg +0 -0
  455. {cgse-0.18.0 → cgse-0.18.1}/overrides/.icons/custom/dbend-light.svg +0 -0
  456. {cgse-0.18.0 → cgse-0.18.1}/overrides/.icons/custom/gear.svg +0 -0
  457. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/README.md +0 -0
  458. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/__init__.py +0 -0
  459. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/cgse_explore.py +0 -0
  460. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/cgse_services.py +0 -0
  461. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/settings.yaml +0 -0
  462. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/egse/ariel/facility/__init__.py +0 -0
  463. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/egse/ariel/facility/database.py +0 -0
  464. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/egse/ariel/facility/hk.py +0 -0
  465. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/README.md +0 -0
  466. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/__init__.py +0 -0
  467. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_explore.py +0 -0
  468. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_services.py +0 -0
  469. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/settings.yaml +0 -0
  470. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/__init__.py +0 -0
  471. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.py +0 -0
  472. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.yaml +0 -0
  473. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cmd_utils.py +0 -0
  474. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cs.py +0 -0
  475. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_devif.py +0 -0
  476. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_protocol.py +0 -0
  477. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_ui.py +0 -0
  478. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/tests/test_tcu.py +0 -0
  479. {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/tests/test_tcu_cmd_utils.py +0 -0
  480. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/README.md +0 -0
  481. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
  482. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
  483. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
  484. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
  485. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
  486. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/README.md +0 -0
  487. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/__init__.py +0 -0
  488. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/cgse_explore.py +0 -0
  489. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/cgse_services.py +0 -0
  490. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/settings.yaml +0 -0
  491. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/digilent.py +0 -0
  492. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/digilent_devif.py +0 -0
  493. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/__init__.py +0 -0
  494. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874.py +0 -0
  495. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874.yaml +0 -0
  496. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874_cs.py +0 -0
  497. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874_devif.py +0 -0
  498. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874_protocol.py +0 -0
  499. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/README.md +0 -0
  500. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/justfile +0 -0
  501. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
  502. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
  503. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
  504. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
  505. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_amon.py +0 -0
  506. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
  507. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
  508. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
  509. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
  510. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
  511. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
  512. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
  513. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
  514. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/script-test-a-scan.py +0 -0
  515. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
  516. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
  517. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/README.md +0 -0
  518. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/__init__.py +0 -0
  519. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx.py +0 -0
  520. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_a/__init__.py +0 -0
  521. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_a/pmx_a.py +0 -0
  522. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_a/pmx_a.yaml +0 -0
  523. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_a/pmx_a_cs.py +0 -0
  524. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_a/pmx_a_protocol.py +0 -0
  525. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_devif.py +0 -0
  526. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/__init__.py +0 -0
  527. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/cgse_explore.py +0 -0
  528. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/cgse_services.py +0 -0
  529. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/settings.yaml +0 -0
  530. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
  531. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
  532. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
  533. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
  534. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
  535. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
  536. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
  537. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
  538. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
  539. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
  540. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
  541. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/README.md +0 -0
  542. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
  543. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
  544. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
  545. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
  546. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
  547. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  548. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
  549. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
  550. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
  551. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
  552. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  553. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
  554. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  555. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
  556. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
  557. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
  558. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  559. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
  560. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
  561. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
  562. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  563. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
  564. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  565. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  566. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  567. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
  568. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
  569. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
  570. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
  571. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
  572. {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
  573. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-fits/README.md +0 -0
  574. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
  575. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-hdf5/README.md +0 -0
  576. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
  577. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-spw/README.md +0 -0
  578. {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-spw/src/egse/spw.py +0 -0
  579. {cgse-0.18.0 → cgse-0.18.1}/ruff.toml +0 -0
  580. {cgse-0.18.0 → cgse-0.18.1}/scratch/advanced-process-monitoring.py +0 -0
  581. {cgse-0.18.0 → cgse-0.18.1}/scratch/live-process-monitoring.py +0 -0
  582. {cgse-0.18.0 → cgse-0.18.1}/scratch/match-case.py +0 -0
  583. {cgse-0.18.0 → cgse-0.18.1}/scratch/mock-version.py +0 -0
  584. {cgse-0.18.0 → cgse-0.18.1}/scratch/processes.json +0 -0
  585. {cgse-0.18.0 → cgse-0.18.1}/scratch/simple-process-monitoring.py +0 -0
  586. {cgse-0.18.0 → cgse-0.18.1}/scratch/test_version_behavior.py +0 -0
  587. {cgse-0.18.0 → cgse-0.18.1}/scratch/understanding-the-mocking-library.py +0 -0
  588. {cgse-0.18.0 → cgse-0.18.1}/scratch/understanding_the_with_statement.py +0 -0
  589. {cgse-0.18.0 → cgse-0.18.1}/service_registry.db +0 -0
  590. {cgse-0.18.0 → cgse-0.18.1}/test_service_registry.db +0 -0
@@ -8,18 +8,61 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.18.1] - 2026-02-05
12
+
13
+ This is a minor update of the DAQ6510:
14
+ - Enhanced the DAQ6510 interface with default buffer usage, improved command formatting, and better response handling.
15
+ - Introduced verbose logging for socket operations in `SocketDevice`.
16
+ - Updated sensor configuration to support multiple sensing types.
17
+ - Added unit tests for the DAQ6510 controller and proxy functionality to ensure reliability.
18
+ - Refactored the DAQ6510 monitoring script for better readability and structure.
19
+
11
20
  ## [0.18.0] - 2026-02-04
12
21
 
22
+ ### Added
23
+
13
24
  - Implementation of KIKUSUI PMX-A power supply
25
+ - The project is now licensed under the MIT license.
26
+
27
+ ### Changed
28
+
14
29
  - Refactoring Keithley DAQ6510
30
+ - Synchronous device, controller, control server and monitoring needed an update.
31
+ - Asynchronous device and monitoring have been tested, but need an update to use the Setup for configuration.
32
+ - set default timeout value for Keithley DAQ6510 configuration
33
+ - set default port number of the DAQ6510 device to 5025
34
+ - the DAQ6510 synchronous device implementation is now a `SocketDevice`
35
+
36
+ - on `cgse-common`
37
+ - improvements to the asynchronous SCPI interface
38
+ - some devices write an identification to the socket after connection, some devices don't. The read-after-connect can now be disabled/enabled.
39
+ - functions to create and inspect channel lists have been added to `scpi.py`
40
+ - `DeviceConnectionError` now also inherits from `ConnectionError`
41
+ - `SocketDevice` has been improved and now takes into account the separator that was passed into the constructor.
42
+
43
+ ### Fixed
44
+
45
+ - The SetupManager implements a lazy initialization to prevent circular imports by plugins. The default source for the Setups was not properly updated after lazy initialization. That is now fixed.
15
46
 
16
47
  ## [0.17.4] - 2026-01-27
17
48
 
49
+ ### Added
50
+
18
51
  - Extracting HK from Ariel facility database
52
+ - Implementation of Digilent MEASURpoint DT8874
53
+ - Preliminary 1st version of the TCU UI
54
+ - Added synchronous and asynchronous service connectors for robust service connection management with retry, backoff, and circuit breaker logic. These classes is intended to be subclassed for managing persistent connections to external services (such as devices, databases, or remote APIs) that may be unreliable or temporarily unavailable.
55
+ - Added SocketDevice and AsyncSocketDevice implementations. Devices that connect through Ethernet can inherit from these classes to handle their basic `read()`, `write()`, `trans()`, and `query()` methods.
56
+
57
+ ### Changed
58
+
19
59
  - Re-shuffled hexapod settings
20
- - Cleaned up cgse-coordinates
60
+ - Enable TCU CS to run without core services
21
61
  - Maintenance on cgse-core
22
- - Implementation of Digilent MEASURpoint DT8874
62
+
63
+ ### Fixed
64
+ - Cleaned up cgse-coordinates, removed obsolete settings
65
+ - Fixed timeouts and signals for Dummy device code
23
66
 
24
67
 
25
68
  ## [0.17.3] - 2025-11-29
@@ -215,7 +258,8 @@ This release is mainly on maintenance and improvements to the `cgse-common` pack
215
258
  - Renamed `cgse` subcommands `registry` → `reg`, `notify` → `not`.
216
259
 
217
260
 
218
- [Unreleased]: https://github.com/IvS-KULeuven/cgse/compare/v0.18.0...HEAD
261
+ [Unreleased]: https://github.com/IvS-KULeuven/cgse/compare/v0.18.1...HEAD
262
+ [0.18.1]: https://github.com/IvS-KULeuven/cgse/compare/v0.18.0...v0.18.1
219
263
  [0.18.0]: https://github.com/IvS-KULeuven/cgse/compare/v0.17.4...v0.18.0
220
264
  [0.17.4]: https://github.com/IvS-KULeuven/cgse/compare/v0.17.3...v0.17.4
221
265
  [0.17.3]: https://github.com/IvS-KULeuven/cgse/compare/v0.17.2...v0.17.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cgse
3
- Version: 0.18.0
3
+ Version: 0.18.1
4
4
  Summary: Generic Common-EGSE: Commanding and monitoring lab equipment
5
5
  Author: IvS KU Leuven
6
6
  Maintainer-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-common"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Software framework to support hardware testing"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -14,9 +14,12 @@ from egse.device import DeviceConnectionError
14
14
  from egse.device import DeviceConnectionInterface
15
15
  from egse.device import DeviceTimeoutError
16
16
  from egse.device import DeviceTransport
17
+ from egse.env import bool_env
17
18
  from egse.log import logger
18
19
  from egse.system import type_name
19
20
 
21
+ VERBOSE_DEBUG = bool_env("VERBOSE_DEBUG", default=False)
22
+
20
23
  SEPARATOR = b"\x03"
21
24
  SEPARATOR_STR = SEPARATOR.decode()
22
25
 
@@ -219,6 +222,8 @@ class SocketDevice(DeviceConnectionInterface, DeviceTransport):
219
222
 
220
223
  try:
221
224
  command += self.separator_str if not command.endswith(self.separator_str) else ""
225
+ if VERBOSE_DEBUG:
226
+ logger.debug(f"Writing to {self.device_name}: {command!r}")
222
227
  self.socket.sendall(command.encode())
223
228
  except socket.timeout as exc:
224
229
  raise DeviceTimeoutError(self.device_name, "Socket timeout error") from exc
@@ -248,9 +253,11 @@ class SocketDevice(DeviceConnectionInterface, DeviceTransport):
248
253
  raise DeviceConnectionError(self.device_name, "The device is not connected, connect before writing.")
249
254
 
250
255
  self.write(command)
251
-
252
256
  response = self.read()
253
257
 
258
+ if VERBOSE_DEBUG:
259
+ logger.debug(f"Read from {self.device_name}: {response!r}")
260
+
254
261
  return response
255
262
 
256
263
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-coordinates"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Reference Frames and Coordinate Transofrmations for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-core"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Core services for the CGSE framework"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-gui"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "GUI components for CGSE"
5
5
  authors = [
6
6
  {name = "Rik Huygen", email = "rik.huygen@kuleuven.be"},
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ariel-facility"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Extract HK from MySQL Facility Database for Ariel"
5
5
  authors = [
6
6
  {name = "IVS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ariel-tcu"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Telescope Control Unit (TCU) for Ariel"
5
5
  authors = [
6
6
  {name = "IVS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cgse-tools"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Tools for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "digilent"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Digilent temperature and voltage monitoring for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "keithley-tempcontrol"
3
- version = "0.18.0"
3
+ version = "0.18.1"
4
4
  description = "Keithley Temperature Control for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -43,6 +43,9 @@ def decode_response(response: bytes) -> str | Failure:
43
43
  if isinstance(response, Failure):
44
44
  return response
45
45
 
46
+ if isinstance(response, memoryview):
47
+ response = response.tobytes()
48
+
46
49
  return response.decode().rstrip()
47
50
 
48
51
 
@@ -160,7 +163,7 @@ class DAQ6510Interface(DeviceInterface):
160
163
 
161
164
  raise NotImplementedError
162
165
 
163
- @dynamic_command(cmd_type=CommandType.TRANSACTION, cmd_string="TRAC:ACTUAL? ${buffer_name}")
166
+ @dynamic_command(cmd_type=CommandType.TRANSACTION, cmd_string='TRAC:ACTUAL? "${buffer_name}"')
164
167
  def get_buffer_count(self, buffer_name: str = DEFAULT_BUFFER_1):
165
168
  """Returns the number of data points in the specified buffer.
166
169
 
@@ -170,8 +173,12 @@ class DAQ6510Interface(DeviceInterface):
170
173
 
171
174
  raise NotImplementedError
172
175
 
173
- @dynamic_command(cmd_type=CommandType.TRANSACTION, cmd_string="TRACE:POINTS? ${buffer_name}")
174
- def get_buffer_capacity(self, buffer_name: str):
176
+ @dynamic_command(
177
+ cmd_type=CommandType.TRANSACTION,
178
+ cmd_string='TRACE:POINTS? "${buffer_name}"',
179
+ process_cmd_string=add_lf,
180
+ )
181
+ def get_buffer_capacity(self, buffer_name: str = DEFAULT_BUFFER_1):
175
182
  """Returns the capacity of the specified buffer.
176
183
 
177
184
  Args:
@@ -180,7 +187,7 @@ class DAQ6510Interface(DeviceInterface):
180
187
 
181
188
  raise NotImplementedError
182
189
 
183
- @dynamic_command(cmd_type=CommandType.WRITE, cmd_string="TRACE:DELETE ${buffer_name}")
190
+ @dynamic_command(cmd_type=CommandType.WRITE, cmd_string='TRACE:DELETE "${buffer_name}"')
184
191
  def delete_buffer(self, buffer_name: str) -> None:
185
192
  """Deletes the specified buffer.
186
193
 
@@ -223,7 +230,7 @@ class DAQ6510Interface(DeviceInterface):
223
230
  raise NotImplementedError
224
231
 
225
232
  @dynamic_interface
226
- def setup_measurements(self, *, buffer_name: str, channel_list: str):
233
+ def setup_measurements(self, *, buffer_name: str = DEFAULT_BUFFER_1, channel_list: str):
227
234
  """Sets up the measurements for the given channel list.
228
235
 
229
236
  Args:
@@ -234,11 +241,13 @@ class DAQ6510Interface(DeviceInterface):
234
241
  raise NotImplementedError
235
242
 
236
243
  @dynamic_interface
237
- def perform_measurement(self, *, buffer_name: str, channel_list: str, count: int, interval: int) -> list:
244
+ def perform_measurement(
245
+ self, *, buffer_name: str = DEFAULT_BUFFER_1, channel_list: str, count: int, interval: int
246
+ ) -> list:
238
247
  """Performs the actual measurements.
239
248
 
240
249
  Args:
241
- buffer_name (str): Name of the buffer
250
+ buffer_name (str): Name of the buffer [default: defbuffer1]
242
251
  channel_list (str): List of channels, as understood by the device
243
252
  count (int): Number of measurements to perform
244
253
  interval (int): Interval between measurements [s]
@@ -326,7 +335,9 @@ class DAQ6510Controller(DAQ6510Interface, DynamicCommandMixin):
326
335
 
327
336
  return self.daq.trans(command).decode() if response else self.daq.write(command)
328
337
 
329
- def read_buffer(self, start: int, end: int, buffer_name: str = DEFAULT_BUFFER_1, elements: list[str] | None = None):
338
+ def read_buffer(
339
+ self, start: int, end: int, buffer_name: str = DEFAULT_BUFFER_1, elements: list[str] | None = None
340
+ ) -> bytes:
330
341
  """Reads specific data elements (measurements) from the given buffer.
331
342
 
332
343
  Elements that can be specified to read out:
@@ -507,7 +518,7 @@ class DAQ6510Controller(DAQ6510Interface, DynamicCommandMixin):
507
518
 
508
519
  # Read out the buffer
509
520
 
510
- logger.debug("Buffer count = ", self.get_buffer_count())
521
+ logger.debug(f"Buffer count = {self.get_buffer_count()}")
511
522
 
512
523
  num_sensors = count_number_of_channels(channel_list)
513
524
 
@@ -560,42 +571,3 @@ class DAQ6510Proxy(DynamicProxy, DAQ6510Interface):
560
571
  endpoint = get_endpoint(SERVICE_TYPE, protocol, hostname, port)
561
572
 
562
573
  super().__init__(endpoint, timeout=timeout)
563
-
564
-
565
- if __name__ == "__main__":
566
- logging.basicConfig(level=20)
567
-
568
- print(f'{get_channel_names("(@101:105)")=}')
569
- print(f'{get_channel_names("(@101, 102, 103, 105)")=}')
570
- # sys.exit(0)
571
-
572
- daq = DAQ6510Controller()
573
- daq.connect()
574
- daq.reset()
575
-
576
- print(daq.info())
577
-
578
- buffer_capacity = daq.get_buffer_capacity()
579
- print(f"buffer {DEFAULT_BUFFER_1} can still hold {buffer_capacity} readings")
580
-
581
- buffer_count = daq.get_buffer_count()
582
- print(f"buffer {DEFAULT_BUFFER_1} holds {buffer_count} readings")
583
-
584
- channels = create_channel_list((101, 102))
585
-
586
- print(channels)
587
-
588
- sense_dict = {"TEMPERATURE": [("TRANSDUCER", "FRTD"), ("RTD:FOUR", "PT100"), ("UNIT", "KELVIN")]}
589
-
590
- daq.configure_sensors(channels, sense=sense_dict)
591
-
592
- daq.setup_measurements(channel_list=channels)
593
-
594
- meas_response = daq.perform_measurement(channel_list=channels, count=5, interval=1)
595
-
596
- print(meas_response)
597
-
598
- buffer_count = daq.get_buffer_count()
599
- print(f"buffer {DEFAULT_BUFFER_1} holds {buffer_count} readings")
600
-
601
- daq.disconnect()
@@ -18,6 +18,7 @@ The monitoring service can be started as follows:
18
18
 
19
19
  import datetime
20
20
  import multiprocessing
21
+ import os
21
22
  import sys
22
23
  import time
23
24
  from pathlib import Path
@@ -25,21 +26,25 @@ from typing import Any
25
26
 
26
27
  import rich
27
28
  import typer
29
+ from urllib3.exceptions import NewConnectionError
28
30
 
29
31
  from egse.env import bool_env
30
32
  from egse.hk import read_conversion_dict
31
33
  from egse.log import logger
32
34
  from egse.logger import remote_logging
35
+ from egse.metrics import get_metrics_repo
33
36
  from egse.response import Failure
34
37
  from egse.scpi import count_number_of_channels, get_channel_names
38
+ from egse.settings import get_site_id
35
39
  from egse.setup import Setup, load_setup
36
40
  from egse.storage import StorageProxy, is_storage_manager_active
37
41
  from egse.storage.persistence import CSV
38
- from egse.system import SignalCatcher, flatten_dict, format_datetime, now
39
- from egse.tempcontrol.keithley.daq6510 import DAQ6510Proxy, DEFAULT_BUFFER_1
42
+ from egse.system import SignalCatcher, flatten_dict, format_datetime, now, str_to_datetime, type_name
43
+ from egse.tempcontrol.keithley.daq6510 import DAQ6510Proxy
40
44
  from egse.tempcontrol.keithley.daq6510_cs import is_daq6510_cs_active
41
45
 
42
46
  VERBOSE_DEBUG = bool_env("VERBOSE_DEBUG")
47
+ SITE_ID = get_site_id()
43
48
 
44
49
 
45
50
  def load_setup_from_input_file(input_file: str | Path) -> Setup | None:
@@ -66,8 +71,6 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
66
71
 
67
72
  """
68
73
 
69
- multiprocessing.current_process().name = "egse.daq6510.monitor"
70
-
71
74
  if input_file:
72
75
  setup = load_setup_from_input_file(input_file)
73
76
  else:
@@ -77,6 +80,9 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
77
80
  logger.error("ERROR: Could not load setup.")
78
81
  sys.exit(1)
79
82
 
83
+ if VERBOSE_DEBUG:
84
+ logger.debug(f"Loaded setup: {setup}")
85
+
80
86
  if not hasattr(setup, "gse"):
81
87
  logger.error("ERROR: No GSE section in the loaded Setup.")
82
88
  sys.exit(1)
@@ -86,8 +92,8 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
86
92
  column_names = list(hk_conversion_table.values())
87
93
  except Exception as exc:
88
94
  logger.warning(f"WARNING: Failed to read telemetry dictionary: {exc}")
89
- hk_conversion_table = {}
90
- column_names = []
95
+ hk_conversion_table = {"101": "PT100-4", "102": "PT100-2"}
96
+ column_names = list(hk_conversion_table.values())
91
97
 
92
98
  if not is_daq6510_cs_active():
93
99
  logger.error(
@@ -121,18 +127,7 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
121
127
  channel_count = count_number_of_channels(channel_list)
122
128
  channel_names = get_channel_names(channel_list)
123
129
 
124
- # FIXME:
125
- # Metrics shall be ingested in InfluxDB
126
-
127
- # DAQ_METRICS = {}
128
- # for channel in channel_names:
129
- # metrics_name = hk_conversion_table[channel]
130
- # DAQ_METRICS[metrics_name] = Gauge(
131
- # f"{metrics_name}",
132
- # f"The current measure for the sensor connected to channel {channel} ({metrics_name}) on the DAQ6510",
133
- # )
134
-
135
- # start_http_server(DAS.METRICS_PORT_DAQ6510)
130
+ metrics_client = setup_metrics_client()
136
131
 
137
132
  # Initialize some variables that will be used for registration to the Storage Manager
138
133
 
@@ -176,13 +171,11 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
176
171
 
177
172
  logger.info(f"global: {channel_list=}, {channel_count=}")
178
173
 
179
- daq.setup_measurements(buffer_name=DEFAULT_BUFFER_1, channel_list=channel_list)
174
+ daq.setup_measurements(channel_list=channel_list)
180
175
 
181
176
  while True:
182
177
  try:
183
- response = daq.perform_measurement(
184
- buffer_name=DEFAULT_BUFFER_1, channel_list=channel_list, count=count, interval=interval
185
- )
178
+ response = daq.perform_measurement(channel_list=channel_list, count=count, interval=interval)
186
179
 
187
180
  if killer.term_signal_received:
188
181
  break
@@ -225,7 +218,7 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
225
218
  for channel in [measure[0] for measure in response]:
226
219
  if channel in hk_conversion_table:
227
220
  metrics_name = hk_conversion_table[channel]
228
- # DAQ_METRICS[metrics_name].set(data[metrics_name])
221
+ save_metrics(metrics_client, origin, data)
229
222
 
230
223
  # wait for the next measurement to be done (delay)
231
224
 
@@ -235,7 +228,7 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
235
228
  logger.debug("Interrupt received, terminating...")
236
229
  break
237
230
  except Exception as exc:
238
- logger.warning(f"DAS Exception: {exc}", exc_info=True)
231
+ logger.warning(f"{type_name(exc)}: {exc}", exc_info=True)
239
232
  logger.warning("Got a corrupt response from the DAQ6510. Check log messages for 'DAS Exception'.")
240
233
  time.sleep(1.0)
241
234
  continue
@@ -245,8 +238,50 @@ def daq6510(count, interval, delay, channel_list, input_file: str):
245
238
  logger.info("DAQ6510 Data Acquisition System terminated.")
246
239
 
247
240
 
241
+ def setup_metrics_client():
242
+ token = os.getenv("INFLUXDB3_AUTH_TOKEN")
243
+ project = os.getenv("PROJECT")
244
+
245
+ if project and token:
246
+ metrics_client = get_metrics_repo(
247
+ "influxdb", {"host": "http://localhost:8181", "database": project, "token": token}
248
+ )
249
+ metrics_client.connect()
250
+ else:
251
+ metrics_client = None
252
+ logger.warning(
253
+ "INFLUXDB3_AUTH_TOKEN and/or PROJECT environment variable is not set. "
254
+ "Metrics will not be propagated to InfluxDB."
255
+ )
256
+
257
+ return metrics_client
258
+
259
+
260
+ def save_metrics(metrics_client, origin, data):
261
+ try:
262
+ if metrics_client:
263
+ point = {
264
+ "measurement": origin.lower(),
265
+ "tags": {"site_id": SITE_ID, "origin": origin},
266
+ "fields": {hk_name.lower(): data[hk_name] for hk_name in data if hk_name != "timestamp"},
267
+ "time": str_to_datetime(data["timestamp"]),
268
+ }
269
+ metrics_client.write(point)
270
+ else:
271
+ logger.warning(
272
+ f"Could not write {origin} metrics to the time series database (self.metrics_client is None)."
273
+ )
274
+ except NewConnectionError:
275
+ logger.warning(
276
+ f"No connection to the time series database could be established to propagate {origin} metrics. Check "
277
+ f"whether this service is (still) running."
278
+ )
279
+
280
+
248
281
  app = typer.Typer(
249
- name="daq6510_mon", help="DAQ6510 Data Acquisition Unit, Keithley, temperature monitoring (monitoring)"
282
+ name="daq6510_mon",
283
+ help="DAQ6510 Data Acquisition Unit, Keithley, temperature monitoring (monitoring)",
284
+ no_args_is_help=True,
250
285
  )
251
286
 
252
287
 
@@ -272,3 +307,7 @@ def start(input_file: str = typer.Option("", help="YAML file containing the Setu
272
307
  msg = "Cannot start the DAQ6510 Monitoring Service"
273
308
  logger.exception(msg)
274
309
  rich.print(f"[red]{msg}.")
310
+
311
+
312
+ if __name__ == "__main__":
313
+ sys.exit(app())
@@ -2,20 +2,28 @@
2
2
  Script to test the DAQ6510 asynchronous monitor client functionality.
3
3
 
4
4
  Run the script as follows:
5
+
5
6
  $ uv run py tests/script_daq6510_amon.py
6
7
 
7
8
  This script connects to the DAQ6510 asynchronous monitor service, retrieves the current status,
8
9
  starts polling for temperature readings on channels 101 and 102, and logs the readings.
9
10
 
10
- Please ensure that the DAQ6510 asynchronous monitor service is running before executing this script.
11
-
12
- $ uv run py -m egse.tempcontrol.keithley.daq6510_amon
13
-
14
11
  The script assumes that the DAQ6510 is configured to read temperatures from the following channels:
12
+
15
13
  - Channel 101: Temperature sensor 4-wire RTD
16
14
  - Channel 102: Temperature sensor 2-wire RTD
17
15
 
18
16
  The data will be stored in JSON format in the file 'temperature_readings.log'.
17
+
18
+ PREREQUISITES
19
+ -------------
20
+ Please ensure that the DAQ6510 asynchronous monitor service is running before executing this script.
21
+
22
+ $ uv run py -m egse.tempcontrol.keithley.daq6510_amon
23
+
24
+ NOTE: The monitoring service directly connects to the DAQ6510 instrument, so make sure that no other
25
+ process (e.g., DAQ6510 control server) is currently using the instrument.
26
+
19
27
  """
20
28
 
21
29
  import json
@@ -0,0 +1,58 @@
1
+ from egse.log import logger
2
+ from egse.scpi import create_channel_list
3
+ from egse.tempcontrol.keithley.daq6510 import DEFAULT_BUFFER_1, DAQ6510Controller
4
+
5
+
6
+ def test_daq6510_controller():
7
+ """
8
+ Test the Controller for the DAQ6510 device.
9
+ 1. Connect to the device.
10
+ 2. Reset the device.
11
+ 3. Retrieve and print device information.
12
+ 4. Get and print buffer capacity and count.
13
+ 5. Configure sensors for temperature measurements on specified channels.
14
+ - Channel 101: FRTD with PT100 in Celsius.
15
+ - Channel 102: RTD with PT100 in Celsius.
16
+ 6. Setup measurements for the configured channels.
17
+ 7. Perform measurements and print the results.
18
+ 8. Finally, disconnect from the device.
19
+ """
20
+ daq = DAQ6510Controller()
21
+
22
+ try:
23
+ daq.connect()
24
+ daq.reset()
25
+
26
+ info = daq.info()
27
+ assert isinstance(info, str)
28
+ logger.info(f"Device info: {info}")
29
+
30
+ buffer_capacity = daq.get_buffer_capacity()
31
+ logger.info(f"buffer {DEFAULT_BUFFER_1} can still hold {buffer_capacity} readings")
32
+
33
+ buffer_count = daq.get_buffer_count()
34
+ logger.info(f"buffer {DEFAULT_BUFFER_1} holds {buffer_count} readings")
35
+
36
+ for sense, channels in [
37
+ ({"TEMPERATURE": [("TRANSDUCER", "FRTD"), ("RTD:FOUR", "PT100"), ("UNIT", "CELSIUS")]}, "(@101)"),
38
+ ({"TEMPERATURE": [("TRANSDUCER", "RTD"), ("RTD:TWO", "PT100"), ("UNIT", "CELSIUS")]}, "(@102)"),
39
+ ]:
40
+ daq.configure_sensors(channels, sense=sense)
41
+
42
+ channels = create_channel_list((101, 102))
43
+ logger.info(f"Channels: {channels}")
44
+
45
+ daq.setup_measurements(channel_list=channels)
46
+
47
+ meas_response = daq.perform_measurement(channel_list=channels, count=5, interval=1)
48
+
49
+ logger.info(f"Measurement response: {meas_response}")
50
+
51
+ buffer_count = daq.get_buffer_count()
52
+ logger.info(f"buffer {DEFAULT_BUFFER_1} holds {buffer_count} readings")
53
+ finally:
54
+ daq.disconnect()
55
+
56
+
57
+ if __name__ == "__main__":
58
+ test_daq6510_controller()