keithley-tempcontrol 2025.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- egse/tempcontrol/keithley/__init__.py +4 -0
- egse/tempcontrol/keithley/daq6510.py +723 -0
- egse/tempcontrol/keithley/daq6510.yaml +102 -0
- egse/tempcontrol/keithley/daq6510_cs.py +197 -0
- egse/tempcontrol/keithley/daq6510_devif.py +359 -0
- egse/tempcontrol/keithley/daq6510_protocol.py +105 -0
- keithley_tempcontrol-2025.0.8.dist-info/METADATA +27 -0
- keithley_tempcontrol-2025.0.8.dist-info/RECORD +10 -0
- keithley_tempcontrol-2025.0.8.dist-info/WHEEL +4 -0
- keithley_tempcontrol-2025.0.8.dist-info/entry_points.txt +14 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from egse.control import ControlServer
|
|
4
|
+
from egse.device import DeviceTimeoutError
|
|
5
|
+
from egse.hk import read_conversion_dict
|
|
6
|
+
from egse.metrics import define_metrics
|
|
7
|
+
from egse.protocol import CommandProtocol
|
|
8
|
+
from egse.settings import Settings
|
|
9
|
+
from egse.setup import load_setup
|
|
10
|
+
from egse.synoptics import SynopticsManagerProxy
|
|
11
|
+
from egse.system import format_datetime
|
|
12
|
+
from egse.tempcontrol.keithley.daq6510 import DAQ6510Controller
|
|
13
|
+
from egse.tempcontrol.keithley.daq6510 import DAQ6510Interface
|
|
14
|
+
from egse.tempcontrol.keithley.daq6510 import DAQ6510Simulator
|
|
15
|
+
from egse.tempcontrol.keithley.daq6510_devif import DAQ6510Command
|
|
16
|
+
from egse.zmq_ser import bind_address
|
|
17
|
+
|
|
18
|
+
COMMAND_SETTINGS = Settings.load(filename="daq6510.yaml")
|
|
19
|
+
|
|
20
|
+
MODULE_LOGGER = logging.getLogger(__name__)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class DAQ6510Protocol(CommandProtocol):
|
|
24
|
+
|
|
25
|
+
def __init__(self, control_server: ControlServer):
|
|
26
|
+
""" Initialisation of a new Protocol for DAQ6510 Management.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
control_server: Control Server for which to send out status and monitoring information
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
super().__init__()
|
|
33
|
+
self.control_server = control_server
|
|
34
|
+
|
|
35
|
+
if Settings.simulation_mode():
|
|
36
|
+
self.daq = DAQ6510Simulator()
|
|
37
|
+
else:
|
|
38
|
+
self.daq = DAQ6510Controller()
|
|
39
|
+
|
|
40
|
+
try:
|
|
41
|
+
self.daq.connect()
|
|
42
|
+
except (ConnectionError, DeviceTimeoutError):
|
|
43
|
+
MODULE_LOGGER.warning(
|
|
44
|
+
f"Couldn't establish a connection to the DAQ6510, check the log messages.")
|
|
45
|
+
|
|
46
|
+
self.load_commands(COMMAND_SETTINGS.Commands, DAQ6510Command, DAQ6510Interface)
|
|
47
|
+
self.build_device_method_lookup_table(self.daq)
|
|
48
|
+
|
|
49
|
+
setup = load_setup()
|
|
50
|
+
self.channels = setup.gse.DAQ6510.channels
|
|
51
|
+
|
|
52
|
+
self.hk_conversion_table = read_conversion_dict(self.control_server.get_storage_mnemonic(), setup=setup)
|
|
53
|
+
|
|
54
|
+
self.synoptics = SynopticsManagerProxy()
|
|
55
|
+
self.metrics = define_metrics(origin="DAS-DAQ6510", use_site=True, setup=setup)
|
|
56
|
+
|
|
57
|
+
def get_bind_address(self) -> str:
|
|
58
|
+
""" Returns a string with the bind address, the endpoint, for accepting connections and bind a socket to.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
Returns: String with the protocol and port to bind a socket to.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
return bind_address(
|
|
65
|
+
self.control_server.get_communication_protocol(),
|
|
66
|
+
self.control_server.get_commanding_port(),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
def get_status(self) -> dict:
|
|
70
|
+
""" Returns a dictionary with status information for the Control Server and the DAQ6510.
|
|
71
|
+
|
|
72
|
+
Returns: Dictionary with status information for the Control Server and the DAQ6510.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
return super().get_status()
|
|
76
|
+
|
|
77
|
+
def get_housekeeping(self) -> dict:
|
|
78
|
+
""" Returns a dictionary with housekeeping information about the DAQ6510.
|
|
79
|
+
|
|
80
|
+
Returns: Dictionary with housekeeping information about the DAQ6510.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
hk_dict = dict()
|
|
84
|
+
hk_dict["timestamp"] = format_datetime()
|
|
85
|
+
|
|
86
|
+
# # TODO I guess we have to do something along those lines
|
|
87
|
+
# # (We'll have to increase the HK delay, cfr. Agilents)
|
|
88
|
+
# measurement = self.daq.perform_measurement(channel_list=self.channels)
|
|
89
|
+
# temperatures = convert_hk_names(measurement, self.hk_conversion_table)
|
|
90
|
+
# hk_dict.update(temperatures)
|
|
91
|
+
#
|
|
92
|
+
# self.synoptics.store_th_synoptics(hk_dict)
|
|
93
|
+
#
|
|
94
|
+
# for key, value in hk_dict.items():
|
|
95
|
+
# if key != "timestamp":
|
|
96
|
+
# self.metrics[key].set(value)
|
|
97
|
+
|
|
98
|
+
return hk_dict
|
|
99
|
+
|
|
100
|
+
def quit(self) -> None:
|
|
101
|
+
""" Clean up and stop threads that were started by the process. """
|
|
102
|
+
|
|
103
|
+
# TODO
|
|
104
|
+
# self.synoptics.disconnect_cs()
|
|
105
|
+
pass
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: keithley-tempcontrol
|
|
3
|
+
Version: 2025.0.8
|
|
4
|
+
Summary: Keithley Temperature Control for CGSE
|
|
5
|
+
Author: IVS KU Leuven
|
|
6
|
+
Maintainer-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Keywords: CGSE,Common-EGSE,hardware testing,software framework,temperature control
|
|
9
|
+
Requires-Python: >=3.9
|
|
10
|
+
Requires-Dist: cgse-common
|
|
11
|
+
Requires-Dist: cgse-gui
|
|
12
|
+
Requires-Dist: pyqt5>=5.15.11
|
|
13
|
+
Provides-Extra: test
|
|
14
|
+
Requires-Dist: pytest; extra == 'test'
|
|
15
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
16
|
+
Requires-Dist: pytest-mock; extra == 'test'
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# Keithley Temperature Control
|
|
20
|
+
|
|
21
|
+
# Implemented Devices
|
|
22
|
+
|
|
23
|
+
- DAQ6510
|
|
24
|
+
|
|
25
|
+
## Reference Documents
|
|
26
|
+
- Model DAQ6510 Data Acquisition and Multimeter System Reference Manual (DAQ6510-901-01 Rev. B / September 2019)
|
|
27
|
+
- Model DAQ6510 Data Acquisition and Multimeter System User's Manual (DAQ6510-900-01 Rev. B / August 2019)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
egse/tempcontrol/keithley/__init__.py,sha256=8FLK4A7LLOdk0ChirOEPANJkYHvwrmx9lQV-cCNASQE,131
|
|
2
|
+
egse/tempcontrol/keithley/daq6510.py,sha256=rjZ3ARhK5y2wdSayO_t8lyKGM-PhgxedC08qre46d2A,24730
|
|
3
|
+
egse/tempcontrol/keithley/daq6510.yaml,sha256=dHHVNyUpOQpdrZpnxPbT6slsl-8Gbnhifj4Q8QOfOYg,4400
|
|
4
|
+
egse/tempcontrol/keithley/daq6510_cs.py,sha256=6WCrbMhoHt_Flr2WUfS29SxplxwC6SeVxPUOHrZ5fvw,5971
|
|
5
|
+
egse/tempcontrol/keithley/daq6510_devif.py,sha256=KQvb3oTmudtN2OHoekOtxu8YL3U7JjSZVlgQl3iZUcA,13107
|
|
6
|
+
egse/tempcontrol/keithley/daq6510_protocol.py,sha256=3alIykktQDwsp0HcBozadffChHKYELXu9nVdXJGBVnI,3681
|
|
7
|
+
keithley_tempcontrol-2025.0.8.dist-info/METADATA,sha256=g_poh2-yPVFZRqoewzdfX3BtJGmQfo_NOYbrJYm2vT0,938
|
|
8
|
+
keithley_tempcontrol-2025.0.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
9
|
+
keithley_tempcontrol-2025.0.8.dist-info/entry_points.txt,sha256=fUhmITl-i3J70JpC-xNJctr6KXdG8koYxkMLwU8CUSQ,345
|
|
10
|
+
keithley_tempcontrol-2025.0.8.dist-info/RECORD,,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
daq6510_cs = egse.tempcontrol.keithley.daq650_cs:cli
|
|
3
|
+
|
|
4
|
+
[gui_scripts]
|
|
5
|
+
daq6510_ui = egse.tempcontrol.keithley.daq6510_ui:main
|
|
6
|
+
|
|
7
|
+
[cgse.service.plugins]
|
|
8
|
+
daq6510_cs = scripts.cgse_service_plugins:daq6510_cs
|
|
9
|
+
|
|
10
|
+
[cgse.settings]
|
|
11
|
+
keithley-tempcontrol = keithley_tempcontrol:settings.yaml
|
|
12
|
+
|
|
13
|
+
[cgse.version]
|
|
14
|
+
keithley-tempcontrol = egse.plugins
|