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.
- {cgse-0.18.0 → cgse-0.18.1}/CHANGELOG.md +47 -3
- {cgse-0.18.0 → cgse-0.18.1}/PKG-INFO +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/socketdevice.py +8 -1
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/service_registry.db +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/service_registry.db-shm +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/service_registry.db-wal +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.py +20 -48
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_mon.py +64 -25
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/script_daq6510_amon.py +12 -4
- cgse-0.18.1/projects/generic/keithley-tempcontrol/tests/test_controller.py +58 -0
- cgse-0.18.1/projects/generic/keithley-tempcontrol/tests/test_cs.py +89 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-fits/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-hdf5/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-spw/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/pyproject.toml +1 -1
- {cgse-0.18.0 → cgse-0.18.1}/.env.example +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/.github/workflows/ruff-format-check.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/.gitignore +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/.op/plugins/gh.json +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/LICENSE +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/bump.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/conftest.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/admin_guide/make-a-release.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/bits.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/calibration.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/command.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/config.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/control.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/counter.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/decorators.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/device.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/dicts.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/dummy.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/env.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/exceptions.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/heartbeat.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/hk.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/listener.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/metrics.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/mixin.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/monitoring.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/observer.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/obsid.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/persistence.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/plugin.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/process.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/reload.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/settings.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/setup.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/api/system.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/custom_theme/main.html +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/coding_style.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/docs.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/dotenv.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/installation.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/monitoring.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/monorepo.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/nox.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/plugins.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/project-configuration.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/unit_testing.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/uv.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/dev_guide/versioning.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/getting_started.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/help.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/images/cli-cgse.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/images/github-fork-clone-dark.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/images/github-fork-clone.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/images/grafana-queries.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/images/icons/cgse-logo-blue.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/images/icons/cgse-logo.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/initialize.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/images/load_methods.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/settings.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-common/setup.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-coordinates/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-core/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-core/notifyhub.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-core/registry.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/cgse-gui/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/libs/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/package_list.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/projects/cgse-tools.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/projects/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/projects/symetrie-hexapod.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/roadmap.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/stylesheets/custom.css +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/stylesheets/extra.css +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/tutorial.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/user_guide/cli.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/user_guide/env.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/docs/user_guide/index.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/duckdb_metrics.db +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/duckdb_metrics.db.wal +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/identifier.sqlite +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/justfile +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/justfile +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/noxfile.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/service_registry.db +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/cgse_common/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/cgse_common/cgse.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/cgse_common/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/bits.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/calibration.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/config.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/counter.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/decorators.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/device.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/dicts.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/env.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/exceptions.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/heartbeat.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/hk.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/log.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/metrics.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/observer.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/obsid.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/persistence.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/plugin.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/plugins/metrics/influxdb.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/process.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/py.typed +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/randomwalk.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/reload.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/resource.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/response.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/scpi.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/settings.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/setup.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/signal.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/state.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/system.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/task.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/version.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/src/egse/zmq_ser.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/conftest.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/COPYING +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00028_201028_155259.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00029_201028_155331.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00030_210311_134043.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00080_210917_105245.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00081_210922_142259.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL/conf/SETUP_CSL_00082_210923_094458.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL1/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/CSL2/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/IAS/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/INTA/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/LAB23/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00027_211119_140441.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00028_211119_160406.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00029_211119_172918.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00030_211122_103604.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/SRON/conf/SETUP_SRON_00031_211123_124900.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/common/telemetry/tm-dictionary-default.csv +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/conf/SETUP_20250114_1519.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/conf/config-file.toml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/cal_coeff_1234.csv +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/calibration.csv +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/calibration.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/command.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/corrupt.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/data-file.txt +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/empty_data_file.txt +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/empty_yaml_file.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/local_settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/new_local_settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/data/test_setup.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/icons/hourglass.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/icons/keyboard.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/icons/soap_sponge.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/lib/dev1/shared-lib.so +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/data/lib/dev2/shared-lib.so +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/fixtures/default_env.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/fixtures/helpers.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/empty_process.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/handle_sigterm.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/process_with_children.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/raise_value_error.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/void-0.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/scripts/void-1.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_bits.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_config.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_decorators.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_device.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_env.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_fixtures.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_hk.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_influxdb_plugin.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_log.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_metrics.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_plugin.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_process.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_resource.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_response.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_scpi.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_settings.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_setup.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_signal.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_socketdevice.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_state.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_system.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_task.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_version.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-common/tests/test_zmq_ser.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/cgse_coordinates/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/cgse_coordinates/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/avoidance.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/cslmodel.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/laser_tracker_to_dict.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/point.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/pyplot.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/reference_frame.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/refmodel.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/rotation_matrix.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/src/egse/coordinates/transform3d_addon.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_avoidance.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_coordinates_plot.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_coordinates_serialize.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_point.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_ref_model.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_reference_frames.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-coordinates/tests/test_refmodel.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/service_registry.db +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/_start.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/_status.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/_stop.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/cgse_core/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/_setup_core.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/command.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/__main__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/confman.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/confman/confman_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/connect.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/control.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/dummy.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/busy.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/operational-mode.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/pm_ui.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/simulator-mode.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/start-process-button.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/stop-process-button.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/icons/user-interface.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/listener.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/logger/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/logger/__main__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/logger/log_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/mixin.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/monitoring.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/client.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/event.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/server.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/notifyhub/services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/procman/procman_ui.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/proxy.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/backend.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/client.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/server.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/registry/service.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/services.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/__main__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/persistence.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/storage.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/src/egse/storage/storage_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/conftest.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/data/local_settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/fixtures/default_env.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/fixtures/helpers.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/fixtures/services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_subscribe_to_notifyhub.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_async_registry_client.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_registry_client_server.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_service_registry_server.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/script_test_sync_registry_client.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/stress_test_registry_server.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_client_server_interaction.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_cm_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_command.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_confman_setups.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_connect.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_control.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_dummy.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_event_notification.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_extensions.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_listener.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_logger.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_mixin.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_notify_hub.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_registry_backend.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_registry_service.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_server_running.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_server_running_with_fixture.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_settings_core.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-core/tests/test_zmq_microservice.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/buttons.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-start.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs-stop.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu-cs.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-started.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs-stopped.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/aeu_cs.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/alert.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/arrow-double-left.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/arrow-double-right.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/arrow-up.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/backward.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/busy.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cleaning.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/color-scheme.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected-alert.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-connected.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/cs-not-connected.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/double-left-arrow.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/double-right-arrow.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/erase-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/erase.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen-start.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen-stop.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fitsgen.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/forward.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk-start.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk-stop.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/fov-hk.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/front-desk.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/home-actioned.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/home-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/home.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/info.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/invalid.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-green.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-grey.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-orange.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-red.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-green.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-grey.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-orange.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/led-square-red.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-green.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-all-red.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el+.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/limit-switch-el-.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/location-marker.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-dpu.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-gimbal.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-huber.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-ogse.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-puna.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-tcs.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/logo-zonda.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/maximize.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/meter.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/more.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-start.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk-stop.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/n-fee-hk.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/observing-off.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/observing-on.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/open-document-hdf5.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/ops-mode.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/play-green.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/plugged-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/plugged.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/pm_ui.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/power-button-green.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/power-button-red.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/power-button.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/radar.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/radioactive.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/reload.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/remote-control-off.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/remote-control-on.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/repeat-blue.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/repeat.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/settings.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/shrink.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/shutter.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sign-off.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sign-on.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sim-mode.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-go.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-minus.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/small-buttons-plus.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/sponge.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/start-button-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/start-button.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop-button-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop-button.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop-red.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/stop.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-disabled-square.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-disabled.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-off-square.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-off.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-on-square.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/switch-on.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/temperature-control.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/th_ui_logo.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/unplugged.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/unvalid.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/user-interface.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/vacuum.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/valid.png +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-dark.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/icons/zoom-to-pixel-white.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/led.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/limitswitch.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/states.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/styles/dark.qss +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/styles/default.qss +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/styles.qss +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/libs/cgse-gui/src/egse/gui/switch.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/mkdocs.yml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/noxfile.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/overrides/.icons/custom/dbend-dark.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/overrides/.icons/custom/dbend-light.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/overrides/.icons/custom/gear.svg +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/ariel_facility/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/egse/ariel/facility/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/egse/ariel/facility/database.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-facility/src/egse/ariel/facility/hk.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/ariel_tcu/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cmd_utils.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_devif.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/src/egse/ariel/tcu/tcu_ui.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/tests/test_tcu.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/ariel/ariel-tcu/tests/test_tcu_cmd_utils.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_clock.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_commands.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/cgse_tools/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/cgse-tools/src/egse/tools/status.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/digilent/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/digilent.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/digilent_devif.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874_devif.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/digilent/src/egse/digilent/measurpoint/dt8874/dt8874_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/justfile +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/noxfile.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_adev.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_amon.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_dev.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/egse/tempcontrol/keithley/daq6510_sim.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/src/keithley_tempcontrol/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/script-test-a-scan.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/test_adev.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/test_dev.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_a/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/egse/power_supply/kikusui/pmx_devif.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/kikusui-power-supply/src/kikusui_power_supply/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_devif.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/egse/tempcontrol/lakeshore/lakeshore336_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/src/lakeshore_tempcontrol/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/lakeshore-tempcontrol/tests/test_lakeshore336_simulator.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/alpha.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/dynalpha.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/joran_ui.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/puna_ui.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/punaplus.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_cs.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/__init__.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_explore.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/cgse_services.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/src/symetrie_hexapod/settings.yaml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/tests/test_puna.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/generic/symetrie-hexapod/tests/test_puna_simulator.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-fits/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-fits/src/egse/plugins/storage/fits.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-hdf5/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-hdf5/src/egse/plugins/storage/hdf5.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-spw/README.md +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/projects/plato/plato-spw/src/egse/spw.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/ruff.toml +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/advanced-process-monitoring.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/live-process-monitoring.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/match-case.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/mock-version.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/processes.json +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/simple-process-monitoring.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/test_version_behavior.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/understanding-the-mocking-library.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/scratch/understanding_the_with_statement.py +0 -0
- {cgse-0.18.0 → cgse-0.18.1}/service_registry.db +0 -0
- {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
|
-
-
|
|
60
|
+
- Enable TCU CS to run without core services
|
|
21
61
|
- Maintenance on cgse-core
|
|
22
|
-
|
|
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.
|
|
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
|
|
@@ -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
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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=
|
|
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(
|
|
174
|
-
|
|
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=
|
|
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(
|
|
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(
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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"
|
|
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",
|
|
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())
|
{cgse-0.18.0 → cgse-0.18.1}/projects/generic/keithley-tempcontrol/tests/script_daq6510_amon.py
RENAMED
|
@@ -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()
|