hardware-control 2.2.0__tar.gz → 3.0.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.
- {hardware-control-2.2.0 → hardware-control-3.0.1}/.pre-commit-config.yaml +3 -3
- {hardware-control-2.2.0 → hardware-control-3.0.1}/.readthedocs.yaml +7 -1
- {hardware-control-2.2.0/docs/source → hardware-control-3.0.1}/CHANGELOG.md +43 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/PKG-INFO +3 -3
- {hardware-control-2.2.0 → hardware-control-3.0.1}/bitbucket-pipelines.yml +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1/docs/source}/CHANGELOG.md +43 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/adding_user_interfaces.md +9 -6
- hardware-control-3.0.1/docs/source/images/Lake_Shore_372.png +0 -0
- hardware-control-3.0.1/docs/source/images/TPI.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/index.rst +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/installation.rst +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instrument_index.rst +2 -0
- hardware-control-3.0.1/docs/source/instruments/lakeshore.rst +27 -0
- hardware-control-3.0.1/docs/source/instruments/picotech.rst +10 -0
- hardware-control-3.0.1/docs/source/instruments/trinity_power.rst +11 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/outlook.md +3 -3
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/supported_instruments.rst +6 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/using_hardware_control.md +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Caen14xxET_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/DelayGenerator_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FlowController_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FunctionGenerator_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FunctionGenerator_demo_Siglent.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/IOModule_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/KeysightPowerSupply_demo.py +2 -2
- hardware-control-3.0.1/examples/Single_Instrument_Demos/MicrowaveController_demo.py +63 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Oscilloscope_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Oscilloscope_demo_Rigol.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Picoscope_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/RGA_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/RigolPowerSupply_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/TDKLGenH_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/TempMonitor_demo.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/dataset_plotting.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/hooks.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/interactive_python.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/remote_instrument/main_app.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/scan_widget.py +1 -1
- hardware-control-3.0.1/hardware_control/_version.py +4 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/App.py +2 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/Dataset.py +12 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/HCMainWindow.py +2 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/Instrument.py +13 -9
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/__init__.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/hooks.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/DelayGenerator.py +4 -4
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/DeviceTemplate.py +1 -9
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/FlowController.py +1 -9
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/FunctionGenerator.py +2 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/IOModule.py +2 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/KeysightPowerSupply.py +1 -1
- hardware-control-3.0.1/hardware_control/gui/controls/MicrowaveControl.py +106 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/MultiPowerSupply.py +13 -9
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/Oscilloscope.py +18 -10
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/RGA.py +2 -19
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/TempMonitor.py +2 -14
- hardware-control-3.0.1/hardware_control/gui/controls/TempMonitor_Adam.py +66 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/controls/__init__.py +2 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/connection_status.py +3 -3
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/data_widget.py +2 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/function_runner.py +2 -2
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/hc_widgets.py +92 -24
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/plot.py +18 -10
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/scan_widget.py +50 -27
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/trace_plotter.py +5 -3
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/HP_34401A.py +6 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/HP_3478A.py +0 -1
- hardware-control-3.0.1/hardware_control/instruments/Keithley/Keithley_2001.py +73 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/Keithley_2400.py +10 -15
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/__init__.py +1 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/__init__.py +3 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_6015.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_6024.py +31 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/caen/Caen_RSeries.py +6 -3
- hardware-control-3.0.1/hardware_control/instruments/lakeshore/Lakeshore224.py +54 -0
- hardware-control-3.0.1/hardware_control/instruments/lakeshore/Lakeshore372.py +40 -0
- hardware-control-2.2.0/hardware_control/instruments/lakeshore/Lakeshore224.py → hardware-control-3.0.1/hardware_control/instruments/lakeshore/LakeshoreBase.py +11 -30
- hardware-control-3.0.1/hardware_control/instruments/lakeshore/__init__.py +3 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/VQM835.py +2 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/ni/Ni_9000.py +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/picotech/Picoscope.py +4 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_CIS200.py +2 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_DG535.py +4 -3
- hardware-control-3.0.1/hardware_control/instruments/srs/SRS_DG645.py +202 -0
- hardware-control-3.0.1/hardware_control/instruments/trinity_power/__init__.py +1 -0
- hardware-control-3.0.1/hardware_control/instruments/trinity_power/tpi.py +243 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control.egg-info/PKG-INFO +3 -3
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control.egg-info/SOURCES.txt +13 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control.egg-info/requires.txt +4 -5
- {hardware-control-2.2.0 → hardware-control-3.0.1}/pyproject.toml +1 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/setup.cfg +6 -7
- hardware-control-2.2.0/docs/source/instruments/picotech.rst +0 -10
- hardware-control-2.2.0/hardware_control/_version.py +0 -5
- hardware-control-2.2.0/hardware_control/instruments/lakeshore/__init__.py +0 -1
- {hardware-control-2.2.0 → hardware-control-3.0.1}/.gitignore +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/COPYRIGHT +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/LICENSE +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/MANIFEST.in +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/README.md +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/Makefile +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/make.bat +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/adding_commands.md +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/adding_instruments.md +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/App.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/Dataset.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/HCMainWindow.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/Instrument.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/ZMQAdapter.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/ZMQRemoteAdapter.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/hooks.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/logging.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base/zmq_helper.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/base_index.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/conf.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/examples.md +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/DelayGenerator.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/FlowController.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/FunctionGenerator.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/IOModule.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/KeysightPowerSupply.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/MultiPowerSupply.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/Oscilloscope.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/RGA.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/controls/TempMonitor.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/connection_status.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/data_widget.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/function_runner.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/hc_widgets.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/plot.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/qtconsole.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui/widgets/scan_widget.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/gui_index.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/hardware_control.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/how_to_contribute.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/howtos.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/ADAM-6015.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/ADAM-6024.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/Alicat_M-Series.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/CAENR14xxET.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/CAENR803x.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/DG535.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/GP356.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/GP_VQM835.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/HP-34401A.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/HP-3478A.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/Keysight33500B.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/Keysight4000X.jpeg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/Keysight_E36312A.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/Lake_Shore_224.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/NI9000.jpeg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/Pico_6000.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/RigolDP800.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/RigolDS100Z.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/SDG1000X.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/SRS_CIS.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/TDKLGenH.jpg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/DelayGenerator.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/FlowController.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/FunctionGenerator.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/IOModule.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/KeysightPowerSupply.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/MultiPowerSupply.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/Oscilloscope.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/RGA.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/controls/TempMonitor.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/connection_status.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/data_widget.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/function_runner.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/plot.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/qtconsole.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/scan_example.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/images/widgets/scan_widget.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/advantech.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/alicat.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/caen.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/keysight.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/ni.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/rigol.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/siglent.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/srs.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/instruments/tdkl.rst +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/docs/source/overview.md +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/README.md +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/IOModule_channel_data.json +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/keysight_powersupply_init.json +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/nidaq_grid_conf.json +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/examples/remote_instrument/client.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/ZMQAdapter.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/ZMQRemoteAdapter.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/logging.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/base/zmq_helper.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/qtconsole.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/BWlim.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/arrow.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/async_label.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/autosave_label.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/blue_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/burst.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-off.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-on.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-unknown.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/ccurrent_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel1_yellow.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel2_green.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel3_blue.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel4_red.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_1.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_10.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_11.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_12.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_13.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_14.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_15.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_16.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_17.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_18.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_19.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_2.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_20.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_3.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_4.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_5.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_6.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_7.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_8.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/channel_9.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/cvoltage_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/disabled_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/enabled_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/error_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/falling_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/falling_ind_pale.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/gas_flow_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/green_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/grey_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/grid_monitor_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/grid_power_supplies_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/high_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/horizontal_label.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/ind_blue.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/ind_darkgrey.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/ind_green.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/ind_grey.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/ind_red.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/invert.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/low_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/measurement_label.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/modulation.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/na_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/offline_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-off.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-on.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-unkown.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/online_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/plasma_source_timing_settings_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/power_supply_controls_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/pulse.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/rampdn_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/rampup_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/red_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/rising_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/rising_ind_pale.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/scan.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/status_label.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/steady_ind.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/steady_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/stop.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/svg/channel_labels.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/svg/connection_label.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/svg/func_gen.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/svg/labels.afdesign +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/svg/rise_fall_source.afdesign +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/trigger_label.png +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/icons/voltage_off.svg +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_base.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/alicat/Alicat_M_Series.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/alicat/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/caen/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/demo/demoA.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_33500B.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_36300.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_4000X.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/GP356.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/ni/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/picotech/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/Rigol_DP832.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/Rigol_DS1000Z.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/siglent/Siglent_SDG.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/siglent/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/tdkl/TDKL_GenH.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/tdkl/__init__.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control/instruments/utility.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control.egg-info/dependency_links.txt +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control.egg-info/not-zip-safe +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/hardware_control.egg-info/top_level.txt +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/setup.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/tests/test_hooks.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/tests/test_instrument.py +0 -0
- {hardware-control-2.2.0 → hardware-control-3.0.1}/tests/test_zmq.py +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
-
rev: v4.0
|
|
3
|
+
rev: v4.4.0
|
|
4
4
|
hooks:
|
|
5
5
|
- id: trailing-whitespace
|
|
6
6
|
- id: requirements-txt-fixer
|
|
7
7
|
- id: debug-statements
|
|
8
8
|
- id: check-merge-conflict
|
|
9
9
|
- repo: https://github.com/asottile/pyupgrade
|
|
10
|
-
rev:
|
|
10
|
+
rev: v3.3.1
|
|
11
11
|
hooks:
|
|
12
12
|
- id: pyupgrade
|
|
13
13
|
args: ["--py36-plus"]
|
|
14
14
|
- repo: https://github.com/psf/black
|
|
15
|
-
rev:
|
|
15
|
+
rev: 23.1.0
|
|
16
16
|
hooks:
|
|
17
17
|
- id: black
|
|
18
18
|
language_version: python3
|
|
@@ -7,6 +7,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.0.1] 2023-02-18
|
|
11
|
+
|
|
12
|
+
### CHANGED
|
|
13
|
+
- updated docs
|
|
14
|
+
- Removed auto_update from HCPushButton since it connects to a command not a parameter
|
|
15
|
+
|
|
16
|
+
### FIXED
|
|
17
|
+
- HCLabel: force convertion to string, so that call to .rjust works all the time
|
|
18
|
+
- TPI: several fixes
|
|
19
|
+
- Fix quering for a serial device
|
|
20
|
+
|
|
21
|
+
## [3.0.0] 2023-02-18
|
|
22
|
+
|
|
23
|
+
The main new feature is updating to pyqt6.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- Update from PyQt5 to PyQt6
|
|
27
|
+
- Update to pymodbus > 3.0.0
|
|
28
|
+
- Update to nidaqmx >= 0.6.4
|
|
29
|
+
- Update qtconsole >= 5.3.2
|
|
30
|
+
- any parameter used in a HC-widget or dataset will now by default be updated in app
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
- fixed button click in MultiPowerSupply
|
|
34
|
+
- fixed removing continuous command from Oscilloscope
|
|
35
|
+
- fixed setting value in HCSpinBox
|
|
36
|
+
- fixed try_reconnect for DG5353
|
|
37
|
+
- fixed autoscale in plot widget
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
- TPI: new microwave controller
|
|
41
|
+
- Lakeshore 372: new instrument driver
|
|
42
|
+
- Keithley 2400: add voltage measurements
|
|
43
|
+
- Keithley 2001: new driver
|
|
44
|
+
- SRS CIS200: add clear offset command
|
|
45
|
+
- SRS DG645: new driver
|
|
46
|
+
- CAEN: new function to read out v_max
|
|
47
|
+
|
|
48
|
+
### Removed
|
|
49
|
+
- GPy dependencies
|
|
50
|
+
|
|
10
51
|
## [2.2.0] 2022-07-26
|
|
11
52
|
|
|
12
53
|
### Added
|
|
@@ -17,7 +58,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
17
58
|
|
|
18
59
|
## [2.1.1] 2022-04-14
|
|
19
60
|
|
|
20
|
-
###
|
|
61
|
+
### Fixed
|
|
21
62
|
- Author list in setup.cfg cannot be multiline
|
|
22
63
|
|
|
23
64
|
## [2.1.0] 2022-04-13
|
|
@@ -88,5 +129,6 @@ Started to use the program at our test stands. Lots of cleanup and improvements
|
|
|
88
129
|
- Clean up examples
|
|
89
130
|
|
|
90
131
|
## [0.0.2] 2020-07-08
|
|
132
|
+
|
|
91
133
|
### Added
|
|
92
134
|
- first release on pypi
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hardware-control
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.1
|
|
4
4
|
Summary: A package to write QT programs to control hardware
|
|
5
5
|
Home-page: https://bitbucket.org/berkeleylab/hardware-control.git
|
|
6
6
|
Author: "Ariel Amsellem, Arun Persaud, Brian Mak, Brian Wynne, Grant Giesbrecht, Timo Bauer, Zhihao Qin"
|
|
@@ -14,13 +14,13 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: License :: OSI Approved :: BSD License
|
|
16
16
|
Classifier: Intended Audience :: Science/Research
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.7
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.8
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
23
|
-
Requires-Python: >=3.
|
|
23
|
+
Requires-Python: >=3.7
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
26
|
|
|
@@ -9,6 +9,6 @@ pipelines:
|
|
|
9
9
|
- pip
|
|
10
10
|
script:
|
|
11
11
|
- apt-get update -y
|
|
12
|
-
- apt-get install -y
|
|
12
|
+
- apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libdbus-1-dev
|
|
13
13
|
- pip install .
|
|
14
14
|
- pytest -v tests/* --junitxml=test-reports/report.xml
|
|
@@ -7,6 +7,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.0.1] 2023-02-18
|
|
11
|
+
|
|
12
|
+
### CHANGED
|
|
13
|
+
- updated docs
|
|
14
|
+
- Removed auto_update from HCPushButton since it connects to a command not a parameter
|
|
15
|
+
|
|
16
|
+
### FIXED
|
|
17
|
+
- HCLabel: force convertion to string, so that call to .rjust works all the time
|
|
18
|
+
- TPI: several fixes
|
|
19
|
+
- Fix quering for a serial device
|
|
20
|
+
|
|
21
|
+
## [3.0.0] 2023-02-18
|
|
22
|
+
|
|
23
|
+
The main new feature is updating to pyqt6.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- Update from PyQt5 to PyQt6
|
|
27
|
+
- Update to pymodbus > 3.0.0
|
|
28
|
+
- Update to nidaqmx >= 0.6.4
|
|
29
|
+
- Update qtconsole >= 5.3.2
|
|
30
|
+
- any parameter used in a HC-widget or dataset will now by default be updated in app
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
- fixed button click in MultiPowerSupply
|
|
34
|
+
- fixed removing continuous command from Oscilloscope
|
|
35
|
+
- fixed setting value in HCSpinBox
|
|
36
|
+
- fixed try_reconnect for DG5353
|
|
37
|
+
- fixed autoscale in plot widget
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
- TPI: new microwave controller
|
|
41
|
+
- Lakeshore 372: new instrument driver
|
|
42
|
+
- Keithley 2400: add voltage measurements
|
|
43
|
+
- Keithley 2001: new driver
|
|
44
|
+
- SRS CIS200: add clear offset command
|
|
45
|
+
- SRS DG645: new driver
|
|
46
|
+
- CAEN: new function to read out v_max
|
|
47
|
+
|
|
48
|
+
### Removed
|
|
49
|
+
- GPy dependencies
|
|
50
|
+
|
|
10
51
|
## [2.2.0] 2022-07-26
|
|
11
52
|
|
|
12
53
|
### Added
|
|
@@ -17,7 +58,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
17
58
|
|
|
18
59
|
## [2.1.1] 2022-04-14
|
|
19
60
|
|
|
20
|
-
###
|
|
61
|
+
### Fixed
|
|
21
62
|
- Author list in setup.cfg cannot be multiline
|
|
22
63
|
|
|
23
64
|
## [2.1.0] 2022-04-13
|
|
@@ -88,5 +129,6 @@ Started to use the program at our test stands. Lots of cleanup and improvements
|
|
|
88
129
|
- Clean up examples
|
|
89
130
|
|
|
90
131
|
## [0.0.2] 2020-07-08
|
|
132
|
+
|
|
91
133
|
### Added
|
|
92
134
|
- first release on pypi
|
|
@@ -27,12 +27,15 @@ structures.
|
|
|
27
27
|
|
|
28
28
|
#### Hardware-Control Widgets
|
|
29
29
|
|
|
30
|
-
Hardware-Control defines a set of modified widgets to simplify
|
|
31
|
-
interfaces. Examples of such widgets include the
|
|
32
|
-
which extend the standard Qt classes
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
Hardware-Control defines a set of modified widgets to simplify
|
|
31
|
+
building instrument interfaces. Examples of such widgets include the
|
|
32
|
+
`HCPushButton` and `HCLineEdit`, which extend the standard Qt classes
|
|
33
|
+
by connecting them to driver command/parameters names, and
|
|
34
|
+
automatically registering them within the main app. We recommend using
|
|
35
|
+
these widgets (rather than QtWidget objects) since they are
|
|
36
|
+
pre-configured for reading/setting instrument parameters and conveying
|
|
37
|
+
instrument commands. They will also add the instrument/parameter to
|
|
38
|
+
the list of variables that will get automatically pulled by the app.
|
|
36
39
|
|
|
37
40
|
### 3. Getting Help
|
|
38
41
|
|
|
Binary file
|
|
Binary file
|
|
@@ -4,7 +4,7 @@ Welcome to Hardware-control's documentation!
|
|
|
4
4
|
Hardware-control is a Python package designed to simplify creating
|
|
5
5
|
instrument control programs (for example for power supplies,
|
|
6
6
|
oscilloscopes, etc.). By using reusable front ends (widgets) and
|
|
7
|
-
instrument drivers
|
|
7
|
+
instrument drivers. Hardware-control tries to minimize the
|
|
8
8
|
effort and code required to communicate with instruments in the lab.
|
|
9
9
|
|
|
10
10
|
Hardware-control uses a few basic constructs to organize its
|
|
@@ -26,9 +26,11 @@ drivers for the NI-DAQ modules and picoscopes.
|
|
|
26
26
|
instruments/alicat
|
|
27
27
|
instruments/caen
|
|
28
28
|
instruments/keysight
|
|
29
|
+
instruments/lakeshore
|
|
29
30
|
instruments/ni
|
|
30
31
|
instruments/picotech
|
|
31
32
|
instruments/rigol
|
|
32
33
|
instruments/siglent
|
|
33
34
|
instruments/srs
|
|
34
35
|
instruments/tdkl
|
|
36
|
+
instruments/trinity_power
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Lake Shore
|
|
2
|
+
==========
|
|
3
|
+
|
|
4
|
+
hardware_control.instruments.lakeshore.LakeshoreBase module
|
|
5
|
+
-----------------------------------------------------------
|
|
6
|
+
|
|
7
|
+
.. automodule:: hardware_control.instruments.lakeshore.LakeshoreBase
|
|
8
|
+
:members:
|
|
9
|
+
:undoc-members:
|
|
10
|
+
:show-inheritance:
|
|
11
|
+
|
|
12
|
+
hardware_control.instruments.lakeshore.Lakeshore224 module
|
|
13
|
+
----------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
.. automodule:: hardware_control.instruments.lakeshore.Lakeshore224
|
|
16
|
+
:members:
|
|
17
|
+
:undoc-members:
|
|
18
|
+
:show-inheritance:
|
|
19
|
+
|
|
20
|
+
hardware_control.instruments.lakeshore.Lakeshore372 module
|
|
21
|
+
----------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
.. automodule:: hardware_control.instruments.lakeshore.Lakeshore372
|
|
24
|
+
:members:
|
|
25
|
+
:undoc-members:
|
|
26
|
+
:show-inheritance:
|
|
27
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Trinity Power
|
|
2
|
+
=============
|
|
3
|
+
|
|
4
|
+
hardware_control.instruments.trinity_power.tpi module
|
|
5
|
+
-----------------------------------------------------
|
|
6
|
+
|
|
7
|
+
.. automodule:: hardware_control.instruments.trinity_power.TPI
|
|
8
|
+
:members:
|
|
9
|
+
:undoc-members:
|
|
10
|
+
:show-inheritance:
|
|
11
|
+
|
|
@@ -5,11 +5,11 @@ Plans for the future include (but are not limited to):
|
|
|
5
5
|
- Adding more instrument drivers
|
|
6
6
|
- Expanding the instrument drivers we have to implement more parameters/commands
|
|
7
7
|
- Modifying the auto-update functionality of the main app to be more flexible, e.g. custom timeout for each instrument
|
|
8
|
-
- Looking into using binary ZMQ messages and sending for example numpy arrays over ZMQ instead of strings
|
|
8
|
+
- Looking into using binary ZMQ messages and sending for example numpy arrays over ZMQ instead of strings (e.g., using msgpack)
|
|
9
9
|
- Create a custom widget that shows all logging messages and lets you filter them on the fly (by loglevel and instrument driver, etc.)
|
|
10
10
|
- Code improvement:
|
|
11
11
|
- adding more type hints
|
|
12
12
|
- adding more tests (e.g. figuring out how to test Qt apps)
|
|
13
|
-
- improving the code base (running linters such as pylint)
|
|
14
|
-
- update to Qt6
|
|
13
|
+
- improving the code base (running linters such as pylint, ruff)
|
|
15
14
|
- replace some logging instances with raising an exception where appropiate (currently we only use logger.error)
|
|
15
|
+
- in the instrument drivers switch from commands (no argument) and parameters (one argument) to something that can handle multiple arguments
|
|
@@ -70,6 +70,9 @@ provide a pull request.
|
|
|
70
70
|
* - `Lake Shore Model 224 <https://www.lakeshore.com/products/categories/overview/temperature-products/cryogenic-temperature-monitors/model-224-temperature-monitor>`_
|
|
71
71
|
- .. image:: /images/Lake_Shore_224.png
|
|
72
72
|
:height: 100
|
|
73
|
+
* - `Lake Shore Model 372 <https://www.lakeshore.com/products/categories/overview/temperature-products/ac-resistance-bridges/model-372-ac-resistance-bridge-temperature-controller>`_
|
|
74
|
+
- .. image:: /images/Lake_Shore_372.png
|
|
75
|
+
:height: 100
|
|
73
76
|
|
|
74
77
|
|
|
75
78
|
- Ion Gauge:
|
|
@@ -108,6 +111,9 @@ provide a pull request.
|
|
|
108
111
|
* - `Siglent SDG Series <https://www.siglent.eu/waveform-generators>`_ (LAN)
|
|
109
112
|
- .. image:: /images/SDG1000X.png
|
|
110
113
|
:height: 100
|
|
114
|
+
* - `Trinity Power TPI <https://rf-consultant.com/products/tpi-1001-b-signal-generator/>`_ (USB)
|
|
115
|
+
- .. image:: /images/TPI.jpg
|
|
116
|
+
:height: 100
|
|
111
117
|
|
|
112
118
|
|
|
113
119
|
- IOModule:
|
|
@@ -114,7 +114,7 @@ To run your program, just call `sys.exit(app.exec_())`!
|
|
|
114
114
|
A complete sample program could look like this:
|
|
115
115
|
|
|
116
116
|
# Import required modules
|
|
117
|
-
from
|
|
117
|
+
from PyQt6.QtWidgets import QGridLayout, QWidget
|
|
118
118
|
import sys
|
|
119
119
|
|
|
120
120
|
import hardware_control as hc
|
|
@@ -20,8 +20,8 @@ import sys
|
|
|
20
20
|
|
|
21
21
|
from docopt import docopt
|
|
22
22
|
|
|
23
|
-
from
|
|
24
|
-
from
|
|
23
|
+
from PyQt6.QtWidgets import QWidget, QGridLayout
|
|
24
|
+
from PyQt6.QtGui import QDoubleValidator
|
|
25
25
|
|
|
26
26
|
import hardware_control as hc
|
|
27
27
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Microwave-Controller demo
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
MicrowaveController_demo.py [--conn_addr=CONN_ADD] [--dummy] [--debug] [--console] [--info]
|
|
6
|
+
|
|
7
|
+
Options:
|
|
8
|
+
--conn_addr=CONN_ADD Connection address of physical instrument [default: None].
|
|
9
|
+
Required if not in dummy mode.
|
|
10
|
+
--dummy Use dummy connection for instruments that return semi-random data
|
|
11
|
+
so that one can run the program away from the test stand.
|
|
12
|
+
--debug Allow debug print statements.
|
|
13
|
+
--info Allow info print statements.
|
|
14
|
+
--console Print logger output to console.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
import logging
|
|
18
|
+
import sys
|
|
19
|
+
|
|
20
|
+
from docopt import docopt
|
|
21
|
+
|
|
22
|
+
from PyQt6.QtWidgets import QGridLayout, QTabWidget
|
|
23
|
+
|
|
24
|
+
import hardware_control as hc
|
|
25
|
+
|
|
26
|
+
commands = docopt(__doc__)
|
|
27
|
+
dummy = commands["--dummy"]
|
|
28
|
+
conn_addr = commands["--conn_addr"]
|
|
29
|
+
|
|
30
|
+
logger = logging.getLogger(__name__)
|
|
31
|
+
hc.setup_logging_docopt(logger, commands)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Demo(hc.HCMainWindow):
|
|
35
|
+
def __init__(self, dummy):
|
|
36
|
+
super().__init__(dummy=dummy)
|
|
37
|
+
|
|
38
|
+
self.setWindowTitle("Microwave Controller Demo")
|
|
39
|
+
|
|
40
|
+
# This is the main widget (a widget with tabs), actual device widgets are added to it
|
|
41
|
+
self.tabs = QTabWidget()
|
|
42
|
+
|
|
43
|
+
# Create an flow controller Alicat_M_Series instrument backend and add it to the app
|
|
44
|
+
self.app.add_instrument(hc.instruments.TPI.TPI("MW", conn_addr))
|
|
45
|
+
|
|
46
|
+
# Create a FlowController GUI control that connects to the instrument backend
|
|
47
|
+
self.instr_ctrl = hc.gui.MicrowaveController(
|
|
48
|
+
self.app, "MW", "Mirowave Controller"
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# Create an interactive ipython console
|
|
52
|
+
self.ipython = hc.gui.Qtconsole(self.app)
|
|
53
|
+
|
|
54
|
+
# Create tabs for the flow controller control and the ipython console, respectively
|
|
55
|
+
self.tabs.addTab(self.instr_ctrl, "Instruments")
|
|
56
|
+
self.tabs.addTab(self.ipython, "Interactive")
|
|
57
|
+
|
|
58
|
+
self.setCentralWidget(self.tabs)
|
|
59
|
+
self.show()
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
main_window = Demo(dummy=dummy)
|
|
63
|
+
sys.exit(main_window.app.exec_())
|
|
@@ -7,8 +7,8 @@ import time
|
|
|
7
7
|
from typing import Union, Optional, Callable, Any, List
|
|
8
8
|
from datetime import datetime
|
|
9
9
|
|
|
10
|
-
from
|
|
11
|
-
from
|
|
10
|
+
from PyQt6.QtWidgets import QApplication
|
|
11
|
+
from PyQt6.QtCore import QTimer
|
|
12
12
|
import zmq
|
|
13
13
|
|
|
14
14
|
from .Dataset import Dataset
|