hardware-control 3.0.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-3.0.0/docs/source → hardware-control-3.0.1}/CHANGELOG.md +11 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/PKG-INFO +1 -1
- {hardware-control-3.0.0 → hardware-control-3.0.1/docs/source}/CHANGELOG.md +11 -0
- hardware-control-3.0.1/docs/source/images/TPI.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/index.rst +1 -1
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/installation.rst +1 -1
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instrument_index.rst +1 -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-3.0.0 → hardware-control-3.0.1}/docs/source/outlook.md +3 -3
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/supported_instruments.rst +3 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/_version.py +2 -2
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/Instrument.py +3 -4
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/hc_widgets.py +3 -4
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_6024.py +31 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/picotech/Picoscope.py +4 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/trinity_power/tpi.py +36 -18
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/PKG-INFO +1 -1
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/SOURCES.txt +2 -0
- hardware-control-3.0.0/docs/source/instruments/picotech.rst +0 -10
- {hardware-control-3.0.0 → hardware-control-3.0.1}/.gitignore +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/.pre-commit-config.yaml +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/.readthedocs.yaml +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/COPYRIGHT +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/LICENSE +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/MANIFEST.in +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/README.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/bitbucket-pipelines.yml +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/Makefile +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/make.bat +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/adding_commands.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/adding_instruments.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/adding_user_interfaces.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/App.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/Dataset.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/HCMainWindow.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/Instrument.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/ZMQAdapter.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/ZMQRemoteAdapter.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/hooks.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/logging.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/zmq_helper.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base_index.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/conf.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/examples.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/DelayGenerator.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/FlowController.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/FunctionGenerator.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/IOModule.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/KeysightPowerSupply.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/MultiPowerSupply.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/Oscilloscope.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/RGA.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/TempMonitor.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/connection_status.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/data_widget.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/function_runner.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/hc_widgets.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/plot.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/qtconsole.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/scan_widget.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui_index.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/hardware_control.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/how_to_contribute.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/howtos.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/ADAM-6015.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/ADAM-6024.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Alicat_M-Series.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/CAENR14xxET.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/CAENR803x.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/DG535.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/GP356.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/GP_VQM835.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/HP-34401A.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/HP-3478A.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Keysight33500B.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Keysight4000X.jpeg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Keysight_E36312A.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Lake_Shore_224.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Lake_Shore_372.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/NI9000.jpeg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Pico_6000.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/RigolDP800.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/RigolDS100Z.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/SDG1000X.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/SRS_CIS.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/TDKLGenH.jpg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/DelayGenerator.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/FlowController.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/FunctionGenerator.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/IOModule.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/KeysightPowerSupply.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/MultiPowerSupply.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/Oscilloscope.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/RGA.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/TempMonitor.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/connection_status.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/data_widget.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/function_runner.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/plot.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/qtconsole.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/scan_example.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/scan_widget.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/advantech.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/alicat.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/caen.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/keysight.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/lakeshore.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/ni.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/rigol.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/siglent.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/srs.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/tdkl.rst +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/overview.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/using_hardware_control.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Caen14xxET_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/DelayGenerator_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FlowController_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FunctionGenerator_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FunctionGenerator_demo_Siglent.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/IOModule_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/KeysightPowerSupply_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/MicrowaveController_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Oscilloscope_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Oscilloscope_demo_Rigol.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Picoscope_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/README.md +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/RGA_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/RigolPowerSupply_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/TDKLGenH_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/TempMonitor_demo.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/IOModule_channel_data.json +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/keysight_powersupply_init.json +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/nidaq_grid_conf.json +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/dataset_plotting.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/hooks.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/interactive_python.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/remote_instrument/client.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/remote_instrument/main_app.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/scan_widget.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/App.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/Dataset.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/HCMainWindow.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/ZMQAdapter.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/ZMQRemoteAdapter.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/hooks.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/logging.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/zmq_helper.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/DelayGenerator.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/DeviceTemplate.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/FlowController.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/FunctionGenerator.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/IOModule.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/KeysightPowerSupply.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/MicrowaveControl.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/MultiPowerSupply.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/Oscilloscope.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/RGA.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/TempMonitor.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/TempMonitor_Adam.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/connection_status.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/data_widget.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/function_runner.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/plot.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/qtconsole.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/scan_widget.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/trace_plotter.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/BWlim.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/arrow.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/async_label.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/autosave_label.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/blue_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/burst.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-off.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-on.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-unknown.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ccurrent_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel1_yellow.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel2_green.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel3_blue.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel4_red.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_1.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_10.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_11.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_12.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_13.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_14.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_15.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_16.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_17.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_18.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_19.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_2.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_20.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_3.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_4.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_5.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_6.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_7.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_8.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_9.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/cvoltage_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/disabled_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/enabled_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/error_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/falling_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/falling_ind_pale.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/gas_flow_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/green_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/grey_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/grid_monitor_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/grid_power_supplies_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/high_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/horizontal_label.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_blue.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_darkgrey.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_green.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_grey.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_red.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/invert.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/low_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/measurement_label.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/modulation.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/na_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/offline_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-off.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-on.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-unkown.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/online_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/plasma_source_timing_settings_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/power_supply_controls_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/pulse.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rampdn_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rampup_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/red_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rising_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rising_ind_pale.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/scan.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/status_label.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/steady_ind.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/steady_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/stop.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/channel_labels.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/connection_label.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/func_gen.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/labels.afdesign +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/rise_fall_source.afdesign +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/trigger_label.png +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/voltage_off.svg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/HP_34401A.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/HP_3478A.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/Keithley_2001.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/Keithley_2400.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_6015.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_base.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/alicat/Alicat_M_Series.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/alicat/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/caen/Caen_RSeries.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/caen/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/demo/demoA.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_33500B.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_36300.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_4000X.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/Lakeshore224.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/Lakeshore372.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/LakeshoreBase.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/GP356.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/VQM835.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/ni/Ni_9000.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/ni/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/picotech/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/Rigol_DP832.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/Rigol_DS1000Z.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/siglent/Siglent_SDG.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/siglent/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_CIS200.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_DG535.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_DG645.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/tdkl/TDKL_GenH.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/tdkl/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/trinity_power/__init__.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/utility.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/dependency_links.txt +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/not-zip-safe +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/requires.txt +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/top_level.txt +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/pyproject.toml +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/setup.cfg +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/setup.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/tests/test_hooks.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/tests/test_instrument.py +0 -0
- {hardware-control-3.0.0 → hardware-control-3.0.1}/tests/test_zmq.py +0 -0
|
@@ -7,6 +7,17 @@ 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
|
+
|
|
10
21
|
## [3.0.0] 2023-02-18
|
|
11
22
|
|
|
12
23
|
The main new feature is updating to pyqt6.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hardware-control
|
|
3
|
-
Version: 3.0.
|
|
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"
|
|
@@ -7,6 +7,17 @@ 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
|
+
|
|
10
21
|
## [3.0.0] 2023-02-18
|
|
11
22
|
|
|
12
23
|
The main new feature is updating to pyqt6.
|
|
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
|
|
@@ -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
|
|
@@ -111,6 +111,9 @@ provide a pull request.
|
|
|
111
111
|
* - `Siglent SDG Series <https://www.siglent.eu/waveform-generators>`_ (LAN)
|
|
112
112
|
- .. image:: /images/SDG1000X.png
|
|
113
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
|
|
114
117
|
|
|
115
118
|
|
|
116
119
|
- IOModule:
|
|
@@ -90,7 +90,6 @@ class Instrument:
|
|
|
90
90
|
default_port: int = None,
|
|
91
91
|
pyvisa_backend: str = "@py",
|
|
92
92
|
) -> None:
|
|
93
|
-
|
|
94
93
|
self.name = instrument_name
|
|
95
94
|
self._online: bool = False
|
|
96
95
|
self.pyvisa_backend = pyvisa_backend
|
|
@@ -643,7 +642,7 @@ class Instrument:
|
|
|
643
642
|
|
|
644
643
|
def query_serial(self, command, delay):
|
|
645
644
|
self.device.write(command)
|
|
646
|
-
time.sleep(
|
|
645
|
+
time.sleep(delay)
|
|
647
646
|
reply = self.device.read(
|
|
648
647
|
termination=(self.read_termination or self._termination)
|
|
649
648
|
)
|
|
@@ -666,7 +665,7 @@ class Instrument:
|
|
|
666
665
|
|
|
667
666
|
if delay is not None:
|
|
668
667
|
inst_delay = delay
|
|
669
|
-
self.query_serial(command,
|
|
668
|
+
reply = self.query_serial(command, inst_delay)
|
|
670
669
|
|
|
671
670
|
elif self.connection_type == Instrument.SOCKET:
|
|
672
671
|
self.device.sendall(bytes(command + self._termination, self._encoding))
|
|
@@ -691,7 +690,7 @@ class Instrument:
|
|
|
691
690
|
)
|
|
692
691
|
|
|
693
692
|
return reply
|
|
694
|
-
except Exception:
|
|
693
|
+
except Exception as e:
|
|
695
694
|
logger.error(f"Query {command} failed in {self.name}", exc_info=True)
|
|
696
695
|
self._online = False
|
|
697
696
|
return None
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/hc_widgets.py
RENAMED
|
@@ -125,7 +125,6 @@ class HCMixin:
|
|
|
125
125
|
"""
|
|
126
126
|
|
|
127
127
|
def __init__(self, **kwargs) -> None:
|
|
128
|
-
|
|
129
128
|
app = kwargs.pop("app")
|
|
130
129
|
instrument = kwargs.pop("instrument")
|
|
131
130
|
parameter = kwargs.pop("parameter")
|
|
@@ -246,7 +245,6 @@ class HCLabel(HCMixin, QLabel):
|
|
|
246
245
|
min_width: int = 10,
|
|
247
246
|
auto_update=True,
|
|
248
247
|
) -> None:
|
|
249
|
-
|
|
250
248
|
super().__init__(
|
|
251
249
|
app=app,
|
|
252
250
|
instrument=instrument,
|
|
@@ -273,6 +271,8 @@ class HCLabel(HCMixin, QLabel):
|
|
|
273
271
|
text = f"{float(text):.3g} {self.unit}"
|
|
274
272
|
except:
|
|
275
273
|
text = f"{text} {self.unit}"
|
|
274
|
+
else:
|
|
275
|
+
text = str(text)
|
|
276
276
|
if self.min_width:
|
|
277
277
|
text = text.rjust(self.min_width)
|
|
278
278
|
super().setText(text)
|
|
@@ -378,7 +378,6 @@ class HCPushButton(HCMixin, QPushButton):
|
|
|
378
378
|
parameter: str,
|
|
379
379
|
label: str = "",
|
|
380
380
|
label_align: str = "left",
|
|
381
|
-
auto_update=True,
|
|
382
381
|
):
|
|
383
382
|
super().__init__(
|
|
384
383
|
app=app,
|
|
@@ -387,7 +386,7 @@ class HCPushButton(HCMixin, QPushButton):
|
|
|
387
386
|
label=label,
|
|
388
387
|
label_align=label_align,
|
|
389
388
|
text=label,
|
|
390
|
-
auto_update=
|
|
389
|
+
auto_update=False,
|
|
391
390
|
)
|
|
392
391
|
|
|
393
392
|
self.clicked.connect(self.value_change)
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import logging
|
|
8
|
+
import time
|
|
8
9
|
|
|
9
10
|
from ...base.hooks import range_validator, format_float
|
|
10
11
|
|
|
@@ -23,6 +24,15 @@ def _create_channel_parser(channel):
|
|
|
23
24
|
return parse_channel
|
|
24
25
|
|
|
25
26
|
|
|
27
|
+
def _create_channel_pulse(inst, channel):
|
|
28
|
+
def pulse():
|
|
29
|
+
inst.command(f"CH_DO{channel}_ON")
|
|
30
|
+
time.sleep(0.1)
|
|
31
|
+
inst.command(f"CH_DO{channel}_OFF")
|
|
32
|
+
|
|
33
|
+
return pulse
|
|
34
|
+
|
|
35
|
+
|
|
26
36
|
class Adam_6024(AdamBase):
|
|
27
37
|
"""Adam 6024 input/output module instrument class.
|
|
28
38
|
|
|
@@ -53,6 +63,9 @@ class Adam_6024(AdamBase):
|
|
|
53
63
|
self.n_input_channels = 7
|
|
54
64
|
self.n_output_channels = 2
|
|
55
65
|
|
|
66
|
+
self.n_digital_input_channels = 2
|
|
67
|
+
self.n_digital_output_channels = 2
|
|
68
|
+
|
|
56
69
|
for channel in range(self.n_input_channels):
|
|
57
70
|
self.add_parameter(
|
|
58
71
|
f"CH{channel}_READ_VOLTAGE",
|
|
@@ -67,3 +80,21 @@ class Adam_6024(AdamBase):
|
|
|
67
80
|
set_command=f"#01{channel:02d}{{}}",
|
|
68
81
|
pre_hooks=[range_validator(0, 10), format_float("06.3f")],
|
|
69
82
|
)
|
|
83
|
+
|
|
84
|
+
# turn on
|
|
85
|
+
for channel in range(self.n_digital_output_channels):
|
|
86
|
+
self.add_command(
|
|
87
|
+
command_name=f"CH_DO{channel}_ON",
|
|
88
|
+
command=f"#011{channel}01",
|
|
89
|
+
)
|
|
90
|
+
self.add_command(
|
|
91
|
+
command_name=f"CH_DO{channel}_OFF",
|
|
92
|
+
command=f"#011{channel}00",
|
|
93
|
+
)
|
|
94
|
+
self.add_command(
|
|
95
|
+
command_name=f"CH_DO{channel}_PULSE",
|
|
96
|
+
command=_create_channel_pulse(self, channel),
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
# note: channel 0 is DO0 (Pin 5), channel 1 is DO 1 (Pin2)
|
|
100
|
+
# trigger function - includes in and out signals
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/trinity_power/tpi.py
RENAMED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Instrument driver
|
|
2
|
+
Instrument driver for TPI from Trinity Power
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Move all COMMANDS2 into add_parameter, add_commnad
|
|
4
|
+
.. image:: /images/TPI.jpg
|
|
5
|
+
:height: 200
|
|
8
6
|
|
|
9
7
|
"""
|
|
10
8
|
|
|
11
9
|
from dataclasses import dataclass
|
|
12
10
|
import logging
|
|
13
11
|
import time
|
|
14
|
-
from typing import Any
|
|
15
12
|
|
|
16
13
|
import numpy as np
|
|
17
14
|
|
|
@@ -41,7 +38,12 @@ def validate_frequency(value: int):
|
|
|
41
38
|
class TPI(Instrument):
|
|
42
39
|
"""TPI Signal Generator
|
|
43
40
|
|
|
44
|
-
|
|
41
|
+
.. image:: /images/TPI.jpg
|
|
42
|
+
:height: 200
|
|
43
|
+
|
|
44
|
+
TPI-1001, TPI-1002, & TPI-1005.
|
|
45
|
+
|
|
46
|
+
Implements its own binary driver.
|
|
45
47
|
|
|
46
48
|
"""
|
|
47
49
|
|
|
@@ -53,22 +55,22 @@ class TPI(Instrument):
|
|
|
53
55
|
|
|
54
56
|
self.add_parameter(
|
|
55
57
|
"FREQUENCY",
|
|
56
|
-
Command(b"\x07\x09", 4, np.dtype("<i4")),
|
|
57
|
-
Command(b"\x08\x09", 4, np.dtype("<i4")),
|
|
58
|
-
post_hooks=[lambda x: int(x)],
|
|
58
|
+
read_command=Command(b"\x07\x09", 4, np.dtype("<i4")),
|
|
59
|
+
set_command=Command(b"\x08\x09", 4, np.dtype("<i4")),
|
|
60
|
+
post_hooks=[lambda x: str(int(x))],
|
|
59
61
|
)
|
|
60
62
|
self.add_parameter(
|
|
61
63
|
"OUTPUT_LEVEL",
|
|
62
|
-
Command(b"\x07\x0A", 1, np.dtype("i1")),
|
|
63
|
-
Command(b"\x08\x0A", 1, np.dtype("i1")),
|
|
64
|
-
post_hooks=[lambda x: int(x)],
|
|
64
|
+
read_command=Command(b"\x07\x0A", 1, np.dtype("i1")),
|
|
65
|
+
set_command=Command(b"\x08\x0A", 1, np.dtype("i1")),
|
|
66
|
+
post_hooks=[lambda x: str(int(x))],
|
|
65
67
|
)
|
|
66
68
|
|
|
67
69
|
self.add_parameter(
|
|
68
70
|
"OUTPUT_ON_OFF",
|
|
69
|
-
Command(b"\x07\x0B", 1, np.dtype(bool)),
|
|
70
|
-
Command(b"\x08\x0B", 1, np.dtype(bool)),
|
|
71
|
-
post_hooks=[lambda x: bool(x)],
|
|
71
|
+
read_command=Command(b"\x07\x0B", 1, np.dtype(bool)),
|
|
72
|
+
set_command=Command(b"\x08\x0B", 1, np.dtype(bool)),
|
|
73
|
+
post_hooks=[lambda x: str(bool(x))],
|
|
72
74
|
)
|
|
73
75
|
|
|
74
76
|
READ_ONLY_COMMANDS = {
|
|
@@ -96,6 +98,15 @@ class TPI(Instrument):
|
|
|
96
98
|
for k, v in COMMANDS.items():
|
|
97
99
|
self.add_command(k, v)
|
|
98
100
|
|
|
101
|
+
self.add_command("OUTPUT_ON", self.output_on)
|
|
102
|
+
self.add_command("OUTPUT_OFF", self.output_off)
|
|
103
|
+
|
|
104
|
+
def output_on(self):
|
|
105
|
+
self["OUTPUT_ON_OFF"] = 1
|
|
106
|
+
|
|
107
|
+
def output_off(self):
|
|
108
|
+
self["OUTPUT_ON_OFF"] = 0
|
|
109
|
+
|
|
99
110
|
def config(self):
|
|
100
111
|
"""Needs to be called when coming online."""
|
|
101
112
|
self.config_serial(
|
|
@@ -112,9 +123,12 @@ class TPI(Instrument):
|
|
|
112
123
|
|
|
113
124
|
def try_connect(self) -> bool:
|
|
114
125
|
"""Overwrite try_connect to always call config when getting online."""
|
|
126
|
+
|
|
115
127
|
ret = super().try_connect()
|
|
116
128
|
if self._online:
|
|
117
129
|
self.config()
|
|
130
|
+
self.command("USER_CONTROL")
|
|
131
|
+
|
|
118
132
|
return ret
|
|
119
133
|
|
|
120
134
|
def read_package(self):
|
|
@@ -190,14 +204,18 @@ class TPI(Instrument):
|
|
|
190
204
|
|
|
191
205
|
self.device.write_raw(package)
|
|
192
206
|
|
|
193
|
-
def query_serial(self, command):
|
|
207
|
+
def query_serial(self, command, delay):
|
|
194
208
|
self.write_package(command.command)
|
|
195
|
-
time.sleep(
|
|
209
|
+
time.sleep(delay)
|
|
196
210
|
reply = self.read_package()
|
|
211
|
+
reply = reply[2:]
|
|
212
|
+
reply = np.frombuffer(reply, dtype=command.parameter_type)[0]
|
|
213
|
+
|
|
197
214
|
return reply
|
|
198
215
|
|
|
199
216
|
def write(self, command):
|
|
200
217
|
self.write_package(command.command)
|
|
218
|
+
self.read_package()
|
|
201
219
|
|
|
202
220
|
def set_value(self, parameter: str, value) -> None:
|
|
203
221
|
if parameter in self.set_commands:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hardware-control
|
|
3
|
-
Version: 3.0.
|
|
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"
|
|
@@ -77,6 +77,7 @@ docs/source/images/RigolDS100Z.png
|
|
|
77
77
|
docs/source/images/SDG1000X.png
|
|
78
78
|
docs/source/images/SRS_CIS.jpg
|
|
79
79
|
docs/source/images/TDKLGenH.jpg
|
|
80
|
+
docs/source/images/TPI.jpg
|
|
80
81
|
docs/source/images/controls/DelayGenerator.png
|
|
81
82
|
docs/source/images/controls/FlowController.png
|
|
82
83
|
docs/source/images/controls/FunctionGenerator.png
|
|
@@ -104,6 +105,7 @@ docs/source/instruments/rigol.rst
|
|
|
104
105
|
docs/source/instruments/siglent.rst
|
|
105
106
|
docs/source/instruments/srs.rst
|
|
106
107
|
docs/source/instruments/tdkl.rst
|
|
108
|
+
docs/source/instruments/trinity_power.rst
|
|
107
109
|
examples/dataset_plotting.py
|
|
108
110
|
examples/hooks.py
|
|
109
111
|
examples/interactive_python.py
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Picotech
|
|
2
|
-
========
|
|
3
|
-
|
|
4
|
-
hardware_control.instruments.picotech.Picotech_6000 module
|
|
5
|
-
----------------------------------------------------------
|
|
6
|
-
|
|
7
|
-
.. automodule:: hardware_control.instruments.picotech.Picotech_6000
|
|
8
|
-
:members:
|
|
9
|
-
:undoc-members:
|
|
10
|
-
:show-inheritance:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/DelayGenerator.rst
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/FlowController.rst
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/FunctionGenerator.rst
RENAMED
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/KeysightPowerSupply.rst
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/MultiPowerSupply.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/connection_status.rst
RENAMED
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/function_runner.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/DelayGenerator.png
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/FlowController.png
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/FunctionGenerator.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/MultiPowerSupply.png
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/Oscilloscope.png
RENAMED
|
File without changes
|
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/TempMonitor.png
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/connection_status.png
RENAMED
|
File without changes
|
{hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/data_widget.png
RENAMED
|
File without changes
|