cgse 0.16.6__tar.gz → 0.16.7__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.
- {cgse-0.16.6 → cgse-0.16.7}/PKG-INFO +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_influxdb_plugin.py +3 -1
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_metrics.py +3 -2
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/__init__.py +2 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/confman_cs.py +12 -11
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/control.py +18 -21
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/logger/log_cs.py +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/__init__.py +9 -5
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman_cs.py +13 -16
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/client.py +31 -3
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/server.py +14 -9
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/__init__.py +12 -6
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/storage_cs.py +13 -15
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-fits/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-hdf5/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-spw/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/pyproject.toml +1 -1
- {cgse-0.16.6 → cgse-0.16.7}/service_registry.db +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/.github/workflows/ruff-format-check.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/.gitignore +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/buffer_vat.log +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/buffer_vat.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/bump.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/conftest.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/bits.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/calibration.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/command.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/config.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/control.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/counter.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/decorators.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/device.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/dicts.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/dummy.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/env.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/exceptions.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/heartbeat.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/hk.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/listener.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/metrics.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/mixin.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/monitoring.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/observer.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/obsid.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/persistence.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/plugin.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/process.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/reload.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/settings.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/setup.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/api/system.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/custom_theme/main.html +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/coding_style.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/docs.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/installation.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/monitoring.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/monorepo.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/nox.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/plugins.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/project-configuration.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/unit_testing.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/uv.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/dev_guide/versioning.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/getting_started.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/help.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/images/cli-cgse.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/images/github-fork-clone-dark.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/images/github-fork-clone.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/images/grafana-queries.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/images/icons/cgse-logo-blue.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/images/icons/cgse-logo.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/initialize.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/images/load_methods.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/settings.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-common/setup.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-coordinates/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-core/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-core/notifyhub.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-core/registry.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/cgse-gui/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/libs/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/package_list.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/projects/cgse-tools.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/projects/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/projects/symetrie-hexapod.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/roadmap.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/stylesheets/custom.css +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/stylesheets/extra.css +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/tutorial.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/user_guide/cli.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/docs/user_guide/index.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/duckdb_metrics.db +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/duckdb_metrics.db.wal +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/identifier.sqlite +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/justfile +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/justfile +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/noxfile.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/service_registry.db +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/bits.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/calibration.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/config.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/counter.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/decorators.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/device.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/dicts.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/env.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/exceptions.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/heartbeat.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/hk.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/log.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/metrics.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/observer.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/obsid.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/persistence.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugin.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugins/metrics/duckdb.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/plugins/metrics/timescaledb.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/process.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/py.typed +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/randomwalk.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/ratelimit.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/reload.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/resource.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/response.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/scpi.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/settings.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/setup.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/signal.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/socketdevice.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/state.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/system.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/task.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/version.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/conftest.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/COPYING +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/IAS/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/INTA/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/command.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/void-0.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/scripts/void-1.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_bits.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_config.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_decorators.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_device.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_env.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_fixtures.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_hk.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_log.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_plugin.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_process.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_ratelimit.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_resource.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_response.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_settings.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_setup.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_signal.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_state.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_system.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_task.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/referenceFrame.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/rotationMatrix.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_point.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/.envrc.disabled +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/service_registry.db +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/_start.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/_status.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/_setup_core.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/async_control.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/async_control_claude.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/command.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/connect-todo.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/connect.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/dummy.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/listener.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/metricshub/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/metricshub/server.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/mixin.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/monitoring.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/notifyhub/test.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/proxy.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/backend.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/registry/service.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/services.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/conftest.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/fixtures/services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_async_control.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_cm_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_command.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_confman_setups.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_connect.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_control.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_dummy.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_event_notification.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_extensions.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_listener.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_logger.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_mixin.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_notify_hub.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_registry_backend.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_registry_service.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_server_running.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_settings_core.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/led.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/states.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/mkdocs.yml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/noxfile.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/overrides/.icons/custom/dbend-dark.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/overrides/.icons/custom/dbend-light.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/overrides/.icons/custom/gear.svg +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/justfile +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_acs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/temperature_readings.log +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/script_daq6510_central_heating.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/script_daq6510_mon.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/script_plot_readings.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_sim.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/tests/test_puna_cs.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-fits/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-hdf5/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-spw/README.md +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/projects/plato/plato-spw/src/egse/spw.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/ruff.toml +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/scratch/advanced-process-monitoring.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/scratch/live-process-monitoring.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/scratch/match-case.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/scratch/processes.json +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/scratch/simple-process-monitoring.py +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/temperature_readings.log +0 -0
- {cgse-0.16.6 → cgse-0.16.7}/test_service_registry.db +0 -0
|
@@ -20,7 +20,9 @@ def test_influxdb_access():
|
|
|
20
20
|
influxdb = get_metrics_repo("influxdb", {"host": "http://localhost:8181", "database": "ARIEL", "token": token})
|
|
21
21
|
influxdb.connect()
|
|
22
22
|
|
|
23
|
-
result = influxdb.query(
|
|
23
|
+
result = influxdb.query(
|
|
24
|
+
"SELECT * FROM cm WHERE time >= now() - INTERVAL '2 days' ORDER BY TIME DESC LIMIT 20", mode="pandas"
|
|
25
|
+
)
|
|
24
26
|
print(result)
|
|
25
27
|
assert isinstance(result, pd.DataFrame)
|
|
26
28
|
|
|
@@ -11,8 +11,9 @@ def test_get_metrics_repo():
|
|
|
11
11
|
|
|
12
12
|
# Don't use a too large time interval here, or you will get an error like:
|
|
13
13
|
# 'External error: Query would exceed file limit of 432 parquet files'
|
|
14
|
-
result = influxdb.query(
|
|
15
|
-
|
|
14
|
+
result = influxdb.query(
|
|
15
|
+
"SELECT * FROM cm WHERE time >= now() - INTERVAL '2 days' ORDER BY TIME DESC LIMIT 20", mode="pandas"
|
|
16
|
+
)
|
|
16
17
|
print(result)
|
|
17
18
|
|
|
18
19
|
# result = influxdb.query("SHOW TABLES;")
|
|
@@ -177,6 +177,8 @@ HOSTNAME = settings.get("HOSTNAME", "localhost")
|
|
|
177
177
|
COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
|
|
178
178
|
SERVICE_PORT = settings.get("SERVICE_PORT", 0)
|
|
179
179
|
MONITORING_PORT = settings.get("MONITORING_PORT", 0)
|
|
180
|
+
STORAGE_MNEMONIC = settings.get("STORAGE_MNEMONIC", "CM")
|
|
181
|
+
SERVICE_TYPE = settings.get("SERVICE_TYPE", "cm_cs")
|
|
180
182
|
|
|
181
183
|
# CM_SETUP_ID = Gauge("CM_SETUP_ID", 'Setup ID')
|
|
182
184
|
# CM_TEST_ID = Gauge("CM_TEST_ID", 'Test ID')
|
|
@@ -22,12 +22,16 @@ from rich.console import Console
|
|
|
22
22
|
|
|
23
23
|
from egse.confman import ConfigurationManagerProtocol
|
|
24
24
|
from egse.confman import ConfigurationManagerProxy
|
|
25
|
-
from egse.confman import
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
from egse.confman import (
|
|
26
|
+
PROCESS_NAME,
|
|
27
|
+
PROTOCOL,
|
|
28
|
+
HOSTNAME,
|
|
29
|
+
COMMANDING_PORT,
|
|
30
|
+
SERVICE_PORT,
|
|
31
|
+
MONITORING_PORT,
|
|
32
|
+
STORAGE_MNEMONIC,
|
|
33
|
+
SERVICE_TYPE,
|
|
34
|
+
)
|
|
31
35
|
|
|
32
36
|
from egse.control import ControlServer
|
|
33
37
|
from egse.env import get_conf_data_location
|
|
@@ -66,7 +70,7 @@ class ConfigurationManagerControlServer(ControlServer):
|
|
|
66
70
|
|
|
67
71
|
self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
|
|
68
72
|
|
|
69
|
-
self.register_service(service_type=
|
|
73
|
+
self.register_service(service_type=SERVICE_TYPE)
|
|
70
74
|
|
|
71
75
|
self.set_hk_delay(10.0)
|
|
72
76
|
|
|
@@ -85,10 +89,7 @@ class ConfigurationManagerControlServer(ControlServer):
|
|
|
85
89
|
return get_port_number(self.dev_ctrl_mon_sock) or MONITORING_PORT
|
|
86
90
|
|
|
87
91
|
def get_storage_mnemonic(self):
|
|
88
|
-
|
|
89
|
-
return settings.STORAGE_MNEMONIC
|
|
90
|
-
except AttributeError:
|
|
91
|
-
return "CM"
|
|
92
|
+
return STORAGE_MNEMONIC
|
|
92
93
|
|
|
93
94
|
def is_storage_manager_active(self):
|
|
94
95
|
from egse.storage import is_storage_manager_active
|
|
@@ -132,8 +132,6 @@ class ControlServer(metaclass=abc.ABCMeta):
|
|
|
132
132
|
self.registry = RegistryClient()
|
|
133
133
|
self.registry.connect()
|
|
134
134
|
|
|
135
|
-
self.service_id = None
|
|
136
|
-
|
|
137
135
|
# These instance variables will probably be overwritten by the subclass __init__
|
|
138
136
|
self.service_type = camel_to_kebab(type(self).__name__)
|
|
139
137
|
self.service_name = camel_to_snake(type(self).__name__)
|
|
@@ -620,27 +618,15 @@ class ControlServer(metaclass=abc.ABCMeta):
|
|
|
620
618
|
def setup_signaling(self):
|
|
621
619
|
self.signaling = FileBasedSignaling(self.service_name)
|
|
622
620
|
self.signaling.start_monitoring()
|
|
623
|
-
self.signaling.register_handler("reregister", self.
|
|
624
|
-
|
|
625
|
-
def _reregister_service(self, force: bool = False):
|
|
626
|
-
self.logger.info(f"Re-registration of service: {self.service_name} ({force=})")
|
|
627
|
-
|
|
628
|
-
if self.registry.get_service(self.service_id):
|
|
629
|
-
if force:
|
|
630
|
-
self.deregister_service()
|
|
631
|
-
else:
|
|
632
|
-
return
|
|
633
|
-
|
|
634
|
-
# FIXME: not sure if the stop heartbeat is necessary here, but I see that after
|
|
635
|
-
# a re-registration signal, the heartbeat socket is None.
|
|
636
|
-
# self.registry.stop_heartbeat()
|
|
637
|
-
|
|
638
|
-
self.register_service(self.service_type)
|
|
621
|
+
self.signaling.register_handler("reregister", self.reregister_service)
|
|
639
622
|
|
|
640
|
-
def register_service(self, service_type: str):
|
|
623
|
+
def register_service(self, service_type: str) -> None:
|
|
641
624
|
self.logger.info(f"Registering service {self.service_name} as type {service_type}")
|
|
625
|
+
|
|
642
626
|
self.service_type = service_type
|
|
643
|
-
|
|
627
|
+
|
|
628
|
+
self.registry.stop_heartbeat()
|
|
629
|
+
self.registry.register(
|
|
644
630
|
name=self.service_name,
|
|
645
631
|
host=get_host_ip() or "127.0.0.1",
|
|
646
632
|
port=get_port_number(self.dev_ctrl_cmd_sock),
|
|
@@ -655,7 +641,18 @@ class ControlServer(metaclass=abc.ABCMeta):
|
|
|
655
641
|
def deregister_service(self):
|
|
656
642
|
if self.registry:
|
|
657
643
|
self.registry.stop_heartbeat()
|
|
658
|
-
self.registry.deregister(
|
|
644
|
+
self.registry.deregister()
|
|
645
|
+
|
|
646
|
+
def reregister_service(self, force: bool = False) -> None:
|
|
647
|
+
self.logger.info(f"Re-registration of service: {self.service_name} ({force=})")
|
|
648
|
+
|
|
649
|
+
if self.registry.get_service():
|
|
650
|
+
if force:
|
|
651
|
+
self.deregister_service()
|
|
652
|
+
else:
|
|
653
|
+
return
|
|
654
|
+
|
|
655
|
+
self.register_service(self.service_type)
|
|
659
656
|
|
|
660
657
|
def store_housekeeping_information(self, data: dict) -> None:
|
|
661
658
|
"""Sends housekeeping information to the Storage Manager.
|
|
@@ -25,10 +25,14 @@ COMMAND_SETTINGS = Settings.load(location=HERE, filename="procman.yaml")
|
|
|
25
25
|
|
|
26
26
|
PROXY_TIMEOUT = 10.0 # don't wait longer than 10s
|
|
27
27
|
|
|
28
|
+
PROCESS_NAME = settings.get("PROCESS_NAME", "pm_cs")
|
|
28
29
|
SERVICE_TYPE = settings.get("SERVICE_TYPE", "pm_cs")
|
|
29
30
|
PROTOCOL = settings.get("PROTOCOL", "tcp")
|
|
30
31
|
HOSTNAME = settings.get("HOSTNAME", "localhost")
|
|
31
32
|
COMMANDING_PORT = settings.get("COMMANDING_PORT", 0) # dynamically assigned by the system if 0
|
|
33
|
+
SERVICE_PORT = settings.get("SERVICE_PORT", 0)
|
|
34
|
+
MONITORING_PORT = settings.get("MONITORING_PORT", 0)
|
|
35
|
+
STORAGE_MNEMONIC = settings.get("STORAGE_MNEMONIC", "PM")
|
|
32
36
|
|
|
33
37
|
|
|
34
38
|
def is_process_manager_active(timeout: float = 0.5) -> bool:
|
|
@@ -395,11 +399,11 @@ class ProcessManagerProxy(Proxy, ProcessManagerInterface):
|
|
|
395
399
|
"""Proxy for process management, used to connect to the Process Manager Control Server and send commands remotely."""
|
|
396
400
|
|
|
397
401
|
def __init__(
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
402
|
+
self,
|
|
403
|
+
protocol: str = PROTOCOL,
|
|
404
|
+
hostname: str = HOSTNAME,
|
|
405
|
+
port: int = COMMANDING_PORT,
|
|
406
|
+
timeout: float = PROXY_TIMEOUT,
|
|
403
407
|
):
|
|
404
408
|
"""
|
|
405
409
|
Initialisation of a new Proxy for Process Management.
|
|
@@ -21,7 +21,16 @@ from egse.process import SubProcess
|
|
|
21
21
|
from egse.procman.procman_protocol import ProcessManagerProtocol
|
|
22
22
|
from egse.registry.client import RegistryClient
|
|
23
23
|
from egse.services import ServiceProxy
|
|
24
|
-
from egse.
|
|
24
|
+
from egse.procman import (
|
|
25
|
+
PROCESS_NAME,
|
|
26
|
+
SERVICE_TYPE,
|
|
27
|
+
PROTOCOL,
|
|
28
|
+
COMMANDING_PORT,
|
|
29
|
+
SERVICE_PORT,
|
|
30
|
+
MONITORING_PORT,
|
|
31
|
+
HOSTNAME,
|
|
32
|
+
STORAGE_MNEMONIC,
|
|
33
|
+
)
|
|
25
34
|
from egse.storage import store_housekeeping_information
|
|
26
35
|
from egse.zmq_ser import get_port_number
|
|
27
36
|
|
|
@@ -29,15 +38,6 @@ from egse.zmq_ser import get_port_number
|
|
|
29
38
|
|
|
30
39
|
logger = logging.getLogger("egse.procman")
|
|
31
40
|
|
|
32
|
-
settings = Settings.load("Process Manager Control Server")
|
|
33
|
-
|
|
34
|
-
PROCESS_NAME = settings.get("PROCESS_NAME", "cm_cs")
|
|
35
|
-
PROTOCOL = settings.get("PROTOCOL", "tcp")
|
|
36
|
-
HOSTNAME = settings.get("HOSTNAME", "localhost")
|
|
37
|
-
COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
|
|
38
|
-
SERVICE_PORT = settings.get("SERVICE_PORT", 0)
|
|
39
|
-
MONITORING_PORT = settings.get("MONITORING_PORT", 0)
|
|
40
|
-
|
|
41
41
|
|
|
42
42
|
class ProcessManagerControlServer(ControlServer):
|
|
43
43
|
def __init__(self):
|
|
@@ -47,7 +47,7 @@ class ProcessManagerControlServer(ControlServer):
|
|
|
47
47
|
|
|
48
48
|
self.logger = logger
|
|
49
49
|
self.service_name = PROCESS_NAME
|
|
50
|
-
self.service_type =
|
|
50
|
+
self.service_type = SERVICE_TYPE
|
|
51
51
|
|
|
52
52
|
self.device_protocol = ProcessManagerProtocol(self)
|
|
53
53
|
|
|
@@ -57,7 +57,7 @@ class ProcessManagerControlServer(ControlServer):
|
|
|
57
57
|
|
|
58
58
|
self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
|
|
59
59
|
|
|
60
|
-
self.register_service(service_type=
|
|
60
|
+
self.register_service(service_type=SERVICE_TYPE)
|
|
61
61
|
|
|
62
62
|
self.set_hk_delay(10.0)
|
|
63
63
|
|
|
@@ -76,10 +76,7 @@ class ProcessManagerControlServer(ControlServer):
|
|
|
76
76
|
return get_port_number(self.dev_ctrl_mon_sock) or MONITORING_PORT
|
|
77
77
|
|
|
78
78
|
def get_storage_mnemonic(self):
|
|
79
|
-
|
|
80
|
-
return settings.STORAGE_MNEMONIC
|
|
81
|
-
except AttributeError:
|
|
82
|
-
return "PM"
|
|
79
|
+
return STORAGE_MNEMONIC
|
|
83
80
|
|
|
84
81
|
def is_storage_manager_active(self):
|
|
85
82
|
from egse.storage import is_storage_manager_active
|
|
@@ -310,6 +310,25 @@ class RegistryClient:
|
|
|
310
310
|
self.logger.error(f"Failed to deregister service: {response.get('error')}")
|
|
311
311
|
return False
|
|
312
312
|
|
|
313
|
+
def reregister(self) -> str | None:
|
|
314
|
+
if not self._service_id:
|
|
315
|
+
self.logger.warning("Cannot reregister: no service is registered")
|
|
316
|
+
return None
|
|
317
|
+
|
|
318
|
+
if not self._service_info:
|
|
319
|
+
self.logger.warning(
|
|
320
|
+
"Cannot reregister: no service info was saved by this registry client or service already deregistered."
|
|
321
|
+
)
|
|
322
|
+
return None
|
|
323
|
+
|
|
324
|
+
return self.register(
|
|
325
|
+
name=self._service_info["name"],
|
|
326
|
+
host=self._service_info["host"],
|
|
327
|
+
port=self._service_info["port"],
|
|
328
|
+
service_type=self._service_info["type"],
|
|
329
|
+
metadata=self._service_info["metadata"],
|
|
330
|
+
)
|
|
331
|
+
|
|
313
332
|
def discover_service(self, service_type: str, use_cache: bool = False) -> dict[str, Any] | None:
|
|
314
333
|
"""
|
|
315
334
|
Discover a service of the specified type. The service is guaranteed to be healthy at the time of discovery.
|
|
@@ -344,17 +363,23 @@ class RegistryClient:
|
|
|
344
363
|
self.logger.warning(f"Service discovery failed: {response.get('error')}")
|
|
345
364
|
return None
|
|
346
365
|
|
|
347
|
-
def get_service(self, service_id: str, use_cache: bool = True) -> dict[str, Any] | None:
|
|
366
|
+
def get_service(self, service_id: str | None = None, use_cache: bool = True) -> dict[str, Any] | None:
|
|
348
367
|
"""
|
|
349
|
-
Get information about a specific service.
|
|
368
|
+
Get information about a specific service. When no service_id is given,
|
|
369
|
+
the service_id known to this client will be used.
|
|
350
370
|
|
|
351
371
|
Args:
|
|
352
|
-
service_id: ID of the service to get
|
|
372
|
+
service_id: ID of the service to get [default=None]
|
|
353
373
|
use_cache: Whether to use cached service information
|
|
354
374
|
|
|
355
375
|
Returns:
|
|
356
376
|
Service information if found, None otherwise.
|
|
357
377
|
"""
|
|
378
|
+
service_id = service_id or self._service_id
|
|
379
|
+
|
|
380
|
+
if not service_id:
|
|
381
|
+
self.logger.warning("Cannot get service: no service id is given or known.")
|
|
382
|
+
return None
|
|
358
383
|
|
|
359
384
|
request = {"action": "get", "service_id": service_id}
|
|
360
385
|
|
|
@@ -453,6 +478,9 @@ class RegistryClient:
|
|
|
453
478
|
if not self.health_check():
|
|
454
479
|
self.logger.warning("ServiceRegistry not responding.")
|
|
455
480
|
return
|
|
481
|
+
else:
|
|
482
|
+
self.logger.info("Health check succeeded, reregistering ?")
|
|
483
|
+
self.reregister()
|
|
456
484
|
|
|
457
485
|
else:
|
|
458
486
|
self.logger.debug(response.get("message"))
|
|
@@ -22,6 +22,7 @@ import typer
|
|
|
22
22
|
import zmq
|
|
23
23
|
import zmq.asyncio
|
|
24
24
|
|
|
25
|
+
from egse.env import bool_env
|
|
25
26
|
from egse.logger import remote_logging
|
|
26
27
|
from egse.registry import DEFAULT_RS_DB_PATH
|
|
27
28
|
from egse.registry import DEFAULT_RS_HB_PORT
|
|
@@ -39,6 +40,8 @@ from egse.system import get_logging_level
|
|
|
39
40
|
|
|
40
41
|
settings = Settings.load("Service Registry")
|
|
41
42
|
|
|
43
|
+
VERBOSE_DEBUG = bool_env("VERBOSE_DEBUG")
|
|
44
|
+
|
|
42
45
|
app = typer.Typer(name="rs_cs")
|
|
43
46
|
|
|
44
47
|
|
|
@@ -234,7 +237,9 @@ class AsyncRegistryServer:
|
|
|
234
237
|
message_type = MessageType(message_parts[1])
|
|
235
238
|
message_data = message_parts[2]
|
|
236
239
|
|
|
237
|
-
|
|
240
|
+
if VERBOSE_DEBUG:
|
|
241
|
+
self.logger.debug(f"{client_id = }, {message_type = }, {message_data = }")
|
|
242
|
+
|
|
238
243
|
response = await self._process_request(message_data)
|
|
239
244
|
|
|
240
245
|
await self._send_response(client_id, message_type, response)
|
|
@@ -274,7 +279,7 @@ class AsyncRegistryServer:
|
|
|
274
279
|
"""
|
|
275
280
|
try:
|
|
276
281
|
request = json.loads(msg_data.decode())
|
|
277
|
-
self.logger.
|
|
282
|
+
self.logger.debug(f"Received request: {request}")
|
|
278
283
|
|
|
279
284
|
except json.JSONDecodeError as exc:
|
|
280
285
|
self.logger.error(f"Invalid JSON received: {exc}")
|
|
@@ -377,7 +382,7 @@ class AsyncRegistryServer:
|
|
|
377
382
|
"""Handle a service heartbeat request."""
|
|
378
383
|
service_id = request.get("service_id")
|
|
379
384
|
|
|
380
|
-
self.logger.
|
|
385
|
+
self.logger.debug(f"Handle renew request: {request}")
|
|
381
386
|
|
|
382
387
|
if not service_id:
|
|
383
388
|
return {"success": False, "error": "Missing required field: service_id"}
|
|
@@ -428,7 +433,7 @@ class AsyncRegistryServer:
|
|
|
428
433
|
|
|
429
434
|
service_id = request.get("service_id")
|
|
430
435
|
|
|
431
|
-
self.logger.
|
|
436
|
+
self.logger.debug(f"Handle get request: {request}")
|
|
432
437
|
|
|
433
438
|
if not service_id:
|
|
434
439
|
return {"success": False, "error": "Missing required field: service_id"}
|
|
@@ -445,7 +450,7 @@ class AsyncRegistryServer:
|
|
|
445
450
|
"""Handle a request to list services."""
|
|
446
451
|
service_type = request.get("service_type")
|
|
447
452
|
|
|
448
|
-
self.logger.
|
|
453
|
+
self.logger.debug(f"Handle list request: {request}")
|
|
449
454
|
|
|
450
455
|
# List the services
|
|
451
456
|
services = await self.backend.list_services(service_type)
|
|
@@ -459,7 +464,7 @@ class AsyncRegistryServer:
|
|
|
459
464
|
"""Handle a service discovery request."""
|
|
460
465
|
service_type = request.get("service_type")
|
|
461
466
|
|
|
462
|
-
self.logger.
|
|
467
|
+
self.logger.debug(f"Handle discover request for service type: {service_type}")
|
|
463
468
|
|
|
464
469
|
if not service_type:
|
|
465
470
|
return {"success": False, "error": "Missing required field: service_type"}
|
|
@@ -475,7 +480,7 @@ class AsyncRegistryServer:
|
|
|
475
480
|
async def _handle_info(self, request: dict[str, Any]) -> dict[str, Any]:
|
|
476
481
|
"""Handle the info request and send information about the registry server."""
|
|
477
482
|
|
|
478
|
-
self.logger.
|
|
483
|
+
self.logger.debug(f"Handle info request: {request}")
|
|
479
484
|
|
|
480
485
|
# List the services
|
|
481
486
|
services = await self.backend.list_services()
|
|
@@ -491,14 +496,14 @@ class AsyncRegistryServer:
|
|
|
491
496
|
async def _handle_health(self, request: dict[str, Any]) -> dict[str, Any]:
|
|
492
497
|
"""Handle a health check request."""
|
|
493
498
|
|
|
494
|
-
self.logger.
|
|
499
|
+
self.logger.debug(f"Handle health request: {request}")
|
|
495
500
|
|
|
496
501
|
return {"success": True, "status": "ok", "timestamp": int(time.time())}
|
|
497
502
|
|
|
498
503
|
async def _handle_terminate(self, request: dict[str, Any]) -> dict[str, Any]:
|
|
499
504
|
"""Handle a termination request."""
|
|
500
505
|
|
|
501
|
-
self.logger.
|
|
506
|
+
self.logger.debug(f"Handle termination request: {request}")
|
|
502
507
|
|
|
503
508
|
self.stop()
|
|
504
509
|
|
|
@@ -153,9 +153,15 @@ settings = Settings.load("Storage Manager Control Server")
|
|
|
153
153
|
SITE_ID = get_site_id()
|
|
154
154
|
DEVICE_SETTINGS = COMMAND_SETTINGS = Settings.load(location=HERE, filename="storage.yaml")
|
|
155
155
|
|
|
156
|
+
|
|
157
|
+
PROCESS_NAME = settings.get("PROCESS_NAME", "sm_cs")
|
|
158
|
+
SERVICE_TYPE = settings.get("SERVICE_TYPE", "sm_cs")
|
|
156
159
|
PROTOCOL = settings.get("PROTOCOL", "tcp")
|
|
157
160
|
HOSTNAME = settings.get("HOSTNAME", "localhost")
|
|
158
|
-
COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
|
|
161
|
+
COMMANDING_PORT = settings.get("COMMANDING_PORT", 0) # dynamically assigned by the system if 0
|
|
162
|
+
SERVICE_PORT = settings.get("SERVICE_PORT", 0)
|
|
163
|
+
MONITORING_PORT = settings.get("MONITORING_PORT", 0)
|
|
164
|
+
STORAGE_MNEMONIC = settings.get("STORAGE_MNEMONIC", "SM")
|
|
159
165
|
|
|
160
166
|
|
|
161
167
|
def is_storage_manager_active(timeout: float = 0.5):
|
|
@@ -1071,11 +1077,11 @@ class StorageProxy(Proxy, StorageInterface):
|
|
|
1071
1077
|
"""
|
|
1072
1078
|
|
|
1073
1079
|
def __init__(
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1080
|
+
self,
|
|
1081
|
+
protocol: str = PROTOCOL,
|
|
1082
|
+
hostname: str = HOSTNAME,
|
|
1083
|
+
port: int = COMMANDING_PORT,
|
|
1084
|
+
timeout: float = REQUEST_TIMEOUT,
|
|
1079
1085
|
):
|
|
1080
1086
|
endpoint = get_endpoint(settings.SERVICE_TYPE, protocol, hostname, port)
|
|
1081
1087
|
|
|
@@ -32,8 +32,16 @@ from egse.logger import remote_logging
|
|
|
32
32
|
from egse.process import SubProcess
|
|
33
33
|
from egse.registry.client import RegistryClient
|
|
34
34
|
from egse.services import ServiceProxy
|
|
35
|
-
from egse.
|
|
36
|
-
|
|
35
|
+
from egse.storage import (
|
|
36
|
+
StorageProtocol,
|
|
37
|
+
PROCESS_NAME,
|
|
38
|
+
SERVICE_TYPE,
|
|
39
|
+
PROTOCOL,
|
|
40
|
+
COMMANDING_PORT,
|
|
41
|
+
SERVICE_PORT,
|
|
42
|
+
MONITORING_PORT,
|
|
43
|
+
HOSTNAME,
|
|
44
|
+
)
|
|
37
45
|
from egse.storage import StorageProxy
|
|
38
46
|
from egse.storage import cycle_daily_files
|
|
39
47
|
from egse.zmq_ser import get_port_number
|
|
@@ -41,16 +49,6 @@ from egse.zmq_ser import get_port_number
|
|
|
41
49
|
# Use explicit name here otherwise the logger will probably be called __main__
|
|
42
50
|
|
|
43
51
|
logger = logging.getLogger("egse.storage")
|
|
44
|
-
|
|
45
|
-
settings = Settings.load("Storage Manager Control Server")
|
|
46
|
-
|
|
47
|
-
PROCESS_NAME = settings.get("PROCESS_NAME", "cm_cs")
|
|
48
|
-
PROTOCOL = settings.get("PROTOCOL", "tcp")
|
|
49
|
-
HOSTNAME = settings.get("HOSTNAME", "localhost")
|
|
50
|
-
COMMANDING_PORT = settings.get("COMMANDING_PORT", 0)
|
|
51
|
-
SERVICE_PORT = settings.get("SERVICE_PORT", 0)
|
|
52
|
-
MONITORING_PORT = settings.get("MONITORING_PORT", 0)
|
|
53
|
-
|
|
54
52
|
SITE_ID = get_site_id()
|
|
55
53
|
|
|
56
54
|
|
|
@@ -66,7 +64,7 @@ class StorageControlServer(ControlServer):
|
|
|
66
64
|
|
|
67
65
|
self.logger = logger
|
|
68
66
|
self.service_name = PROCESS_NAME
|
|
69
|
-
self.service_type =
|
|
67
|
+
self.service_type = SERVICE_TYPE
|
|
70
68
|
|
|
71
69
|
self.device_protocol = StorageProtocol(self)
|
|
72
70
|
|
|
@@ -76,7 +74,7 @@ class StorageControlServer(ControlServer):
|
|
|
76
74
|
|
|
77
75
|
self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
|
|
78
76
|
|
|
79
|
-
self.register_service(service_type=
|
|
77
|
+
self.register_service(service_type=SERVICE_TYPE)
|
|
80
78
|
|
|
81
79
|
# NOTE:
|
|
82
80
|
# Since the CM CS is started after the SM CS in the normal startup sequence, delay the task to load
|
|
@@ -179,7 +177,7 @@ def stop():
|
|
|
179
177
|
|
|
180
178
|
if COMMANDING_PORT == 0:
|
|
181
179
|
with RegistryClient() as reg:
|
|
182
|
-
service = reg.discover_service(
|
|
180
|
+
service = reg.discover_service(SERVICE_TYPE)
|
|
183
181
|
rich.print("service = ", service)
|
|
184
182
|
if service:
|
|
185
183
|
hostname = service["host"]
|
|
index 8c9c60b..e914731 100644
|
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|