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.
@@ -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,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -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