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.
Files changed (306) hide show
  1. {hardware-control-3.0.0/docs/source → hardware-control-3.0.1}/CHANGELOG.md +11 -0
  2. {hardware-control-3.0.0 → hardware-control-3.0.1}/PKG-INFO +1 -1
  3. {hardware-control-3.0.0 → hardware-control-3.0.1/docs/source}/CHANGELOG.md +11 -0
  4. hardware-control-3.0.1/docs/source/images/TPI.jpg +0 -0
  5. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/index.rst +1 -1
  6. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/installation.rst +1 -1
  7. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instrument_index.rst +1 -0
  8. hardware-control-3.0.1/docs/source/instruments/picotech.rst +10 -0
  9. hardware-control-3.0.1/docs/source/instruments/trinity_power.rst +11 -0
  10. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/outlook.md +3 -3
  11. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/supported_instruments.rst +3 -0
  12. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/_version.py +2 -2
  13. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/Instrument.py +3 -4
  14. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/hc_widgets.py +3 -4
  15. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_6024.py +31 -0
  16. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/picotech/Picoscope.py +4 -0
  17. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/trinity_power/tpi.py +36 -18
  18. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/PKG-INFO +1 -1
  19. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/SOURCES.txt +2 -0
  20. hardware-control-3.0.0/docs/source/instruments/picotech.rst +0 -10
  21. {hardware-control-3.0.0 → hardware-control-3.0.1}/.gitignore +0 -0
  22. {hardware-control-3.0.0 → hardware-control-3.0.1}/.pre-commit-config.yaml +0 -0
  23. {hardware-control-3.0.0 → hardware-control-3.0.1}/.readthedocs.yaml +0 -0
  24. {hardware-control-3.0.0 → hardware-control-3.0.1}/COPYRIGHT +0 -0
  25. {hardware-control-3.0.0 → hardware-control-3.0.1}/LICENSE +0 -0
  26. {hardware-control-3.0.0 → hardware-control-3.0.1}/MANIFEST.in +0 -0
  27. {hardware-control-3.0.0 → hardware-control-3.0.1}/README.md +0 -0
  28. {hardware-control-3.0.0 → hardware-control-3.0.1}/bitbucket-pipelines.yml +0 -0
  29. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/Makefile +0 -0
  30. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/make.bat +0 -0
  31. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/adding_commands.md +0 -0
  32. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/adding_instruments.md +0 -0
  33. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/adding_user_interfaces.md +0 -0
  34. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/App.rst +0 -0
  35. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/Dataset.rst +0 -0
  36. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/HCMainWindow.rst +0 -0
  37. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/Instrument.rst +0 -0
  38. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/ZMQAdapter.rst +0 -0
  39. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/ZMQRemoteAdapter.rst +0 -0
  40. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/hooks.rst +0 -0
  41. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/logging.rst +0 -0
  42. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base/zmq_helper.rst +0 -0
  43. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/base_index.rst +0 -0
  44. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/conf.py +0 -0
  45. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/examples.md +0 -0
  46. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/DelayGenerator.rst +0 -0
  47. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/FlowController.rst +0 -0
  48. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/FunctionGenerator.rst +0 -0
  49. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/IOModule.rst +0 -0
  50. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/KeysightPowerSupply.rst +0 -0
  51. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/MultiPowerSupply.rst +0 -0
  52. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/Oscilloscope.rst +0 -0
  53. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/RGA.rst +0 -0
  54. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/controls/TempMonitor.rst +0 -0
  55. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/connection_status.rst +0 -0
  56. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/data_widget.rst +0 -0
  57. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/function_runner.rst +0 -0
  58. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/hc_widgets.rst +0 -0
  59. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/plot.rst +0 -0
  60. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/qtconsole.rst +0 -0
  61. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui/widgets/scan_widget.rst +0 -0
  62. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/gui_index.rst +0 -0
  63. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/hardware_control.rst +0 -0
  64. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/how_to_contribute.rst +0 -0
  65. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/howtos.rst +0 -0
  66. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/ADAM-6015.jpg +0 -0
  67. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/ADAM-6024.jpg +0 -0
  68. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Alicat_M-Series.jpg +0 -0
  69. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/CAENR14xxET.jpg +0 -0
  70. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/CAENR803x.jpg +0 -0
  71. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/DG535.jpg +0 -0
  72. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/GP356.jpg +0 -0
  73. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/GP_VQM835.jpg +0 -0
  74. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/HP-34401A.jpg +0 -0
  75. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/HP-3478A.jpg +0 -0
  76. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Keysight33500B.png +0 -0
  77. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Keysight4000X.jpeg +0 -0
  78. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Keysight_E36312A.png +0 -0
  79. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Lake_Shore_224.png +0 -0
  80. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Lake_Shore_372.png +0 -0
  81. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/NI9000.jpeg +0 -0
  82. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/Pico_6000.jpg +0 -0
  83. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/RigolDP800.png +0 -0
  84. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/RigolDS100Z.png +0 -0
  85. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/SDG1000X.png +0 -0
  86. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/SRS_CIS.jpg +0 -0
  87. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/TDKLGenH.jpg +0 -0
  88. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/DelayGenerator.png +0 -0
  89. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/FlowController.png +0 -0
  90. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/FunctionGenerator.png +0 -0
  91. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/IOModule.png +0 -0
  92. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/KeysightPowerSupply.png +0 -0
  93. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/MultiPowerSupply.png +0 -0
  94. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/Oscilloscope.png +0 -0
  95. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/RGA.png +0 -0
  96. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/controls/TempMonitor.png +0 -0
  97. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/connection_status.png +0 -0
  98. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/data_widget.png +0 -0
  99. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/function_runner.png +0 -0
  100. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/plot.png +0 -0
  101. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/qtconsole.png +0 -0
  102. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/scan_example.png +0 -0
  103. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/images/widgets/scan_widget.png +0 -0
  104. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/advantech.rst +0 -0
  105. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/alicat.rst +0 -0
  106. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/caen.rst +0 -0
  107. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/keysight.rst +0 -0
  108. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/lakeshore.rst +0 -0
  109. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/ni.rst +0 -0
  110. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/rigol.rst +0 -0
  111. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/siglent.rst +0 -0
  112. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/srs.rst +0 -0
  113. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/instruments/tdkl.rst +0 -0
  114. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/overview.md +0 -0
  115. {hardware-control-3.0.0 → hardware-control-3.0.1}/docs/source/using_hardware_control.md +0 -0
  116. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Caen14xxET_demo.py +0 -0
  117. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/DelayGenerator_demo.py +0 -0
  118. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FlowController_demo.py +0 -0
  119. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FunctionGenerator_demo.py +0 -0
  120. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/FunctionGenerator_demo_Siglent.py +0 -0
  121. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/IOModule_demo.py +0 -0
  122. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/KeysightPowerSupply_demo.py +0 -0
  123. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/MicrowaveController_demo.py +0 -0
  124. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Oscilloscope_demo.py +0 -0
  125. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Oscilloscope_demo_Rigol.py +0 -0
  126. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/Picoscope_demo.py +0 -0
  127. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/README.md +0 -0
  128. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/RGA_demo.py +0 -0
  129. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/RigolPowerSupply_demo.py +0 -0
  130. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/TDKLGenH_demo.py +0 -0
  131. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/TempMonitor_demo.py +0 -0
  132. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/IOModule_channel_data.json +0 -0
  133. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/keysight_powersupply_init.json +0 -0
  134. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/Single_Instrument_Demos/settings_files/nidaq_grid_conf.json +0 -0
  135. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/dataset_plotting.py +0 -0
  136. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/hooks.py +0 -0
  137. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/interactive_python.py +0 -0
  138. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/remote_instrument/client.py +0 -0
  139. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/remote_instrument/main_app.py +0 -0
  140. {hardware-control-3.0.0 → hardware-control-3.0.1}/examples/scan_widget.py +0 -0
  141. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/__init__.py +0 -0
  142. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/App.py +0 -0
  143. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/Dataset.py +0 -0
  144. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/HCMainWindow.py +0 -0
  145. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/ZMQAdapter.py +0 -0
  146. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/ZMQRemoteAdapter.py +0 -0
  147. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/__init__.py +0 -0
  148. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/hooks.py +0 -0
  149. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/logging.py +0 -0
  150. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/base/zmq_helper.py +0 -0
  151. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/__init__.py +0 -0
  152. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/DelayGenerator.py +0 -0
  153. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/DeviceTemplate.py +0 -0
  154. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/FlowController.py +0 -0
  155. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/FunctionGenerator.py +0 -0
  156. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/IOModule.py +0 -0
  157. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/KeysightPowerSupply.py +0 -0
  158. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/MicrowaveControl.py +0 -0
  159. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/MultiPowerSupply.py +0 -0
  160. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/Oscilloscope.py +0 -0
  161. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/RGA.py +0 -0
  162. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/TempMonitor.py +0 -0
  163. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/TempMonitor_Adam.py +0 -0
  164. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/controls/__init__.py +0 -0
  165. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/__init__.py +0 -0
  166. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/connection_status.py +0 -0
  167. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/data_widget.py +0 -0
  168. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/function_runner.py +0 -0
  169. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/plot.py +0 -0
  170. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/qtconsole.py +0 -0
  171. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/scan_widget.py +0 -0
  172. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/gui/widgets/trace_plotter.py +0 -0
  173. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/BWlim.png +0 -0
  174. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/arrow.png +0 -0
  175. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/async_label.png +0 -0
  176. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/autosave_label.png +0 -0
  177. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/blue_ind.svg +0 -0
  178. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/burst.png +0 -0
  179. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-off.svg +0 -0
  180. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-on.svg +0 -0
  181. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/button-power-unknown.svg +0 -0
  182. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ccurrent_label.svg +0 -0
  183. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel1_yellow.png +0 -0
  184. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel2_green.png +0 -0
  185. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel3_blue.png +0 -0
  186. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel4_red.png +0 -0
  187. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_1.png +0 -0
  188. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_10.png +0 -0
  189. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_11.png +0 -0
  190. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_12.png +0 -0
  191. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_13.png +0 -0
  192. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_14.png +0 -0
  193. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_15.png +0 -0
  194. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_16.png +0 -0
  195. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_17.png +0 -0
  196. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_18.png +0 -0
  197. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_19.png +0 -0
  198. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_2.png +0 -0
  199. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_20.png +0 -0
  200. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_3.png +0 -0
  201. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_4.png +0 -0
  202. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_5.png +0 -0
  203. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_6.png +0 -0
  204. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_7.png +0 -0
  205. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_8.png +0 -0
  206. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/channel_9.png +0 -0
  207. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/cvoltage_label.svg +0 -0
  208. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/disabled_label.svg +0 -0
  209. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/enabled_label.svg +0 -0
  210. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/error_label.svg +0 -0
  211. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/falling_ind.svg +0 -0
  212. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/falling_ind_pale.svg +0 -0
  213. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/gas_flow_label.svg +0 -0
  214. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/green_ind.svg +0 -0
  215. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/grey_ind.svg +0 -0
  216. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/grid_monitor_label.svg +0 -0
  217. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/grid_power_supplies_label.svg +0 -0
  218. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/high_label.svg +0 -0
  219. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/horizontal_label.png +0 -0
  220. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_blue.png +0 -0
  221. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_darkgrey.png +0 -0
  222. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_green.png +0 -0
  223. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_grey.png +0 -0
  224. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/ind_red.png +0 -0
  225. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/invert.png +0 -0
  226. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/low_label.svg +0 -0
  227. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/measurement_label.png +0 -0
  228. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/modulation.png +0 -0
  229. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/na_label.svg +0 -0
  230. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/offline_label.svg +0 -0
  231. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-off.svg +0 -0
  232. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-on.svg +0 -0
  233. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/on-off-indicator-unkown.svg +0 -0
  234. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/online_label.svg +0 -0
  235. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/plasma_source_timing_settings_label.svg +0 -0
  236. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/power_supply_controls_label.svg +0 -0
  237. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/pulse.png +0 -0
  238. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rampdn_label.svg +0 -0
  239. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rampup_label.svg +0 -0
  240. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/red_ind.svg +0 -0
  241. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rising_ind.svg +0 -0
  242. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/rising_ind_pale.svg +0 -0
  243. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/scan.png +0 -0
  244. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/status_label.png +0 -0
  245. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/steady_ind.svg +0 -0
  246. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/steady_label.svg +0 -0
  247. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/stop.svg +0 -0
  248. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/channel_labels.svg +0 -0
  249. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/connection_label.svg +0 -0
  250. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/func_gen.svg +0 -0
  251. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/labels.afdesign +0 -0
  252. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/svg/rise_fall_source.afdesign +0 -0
  253. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/trigger_label.png +0 -0
  254. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/icons/voltage_off.svg +0 -0
  255. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/HP_34401A.py +0 -0
  256. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/HP_3478A.py +0 -0
  257. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/HP/__init__.py +0 -0
  258. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/Keithley_2001.py +0 -0
  259. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/Keithley_2400.py +0 -0
  260. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/Keithley/__init__.py +0 -0
  261. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/__init__.py +0 -0
  262. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_6015.py +0 -0
  263. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/Adam_base.py +0 -0
  264. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/advantech/__init__.py +0 -0
  265. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/alicat/Alicat_M_Series.py +0 -0
  266. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/alicat/__init__.py +0 -0
  267. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/caen/Caen_RSeries.py +0 -0
  268. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/caen/__init__.py +0 -0
  269. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/demo/demoA.py +0 -0
  270. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_33500B.py +0 -0
  271. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_36300.py +0 -0
  272. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/Keysight_4000X.py +0 -0
  273. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/keysight/__init__.py +0 -0
  274. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/Lakeshore224.py +0 -0
  275. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/Lakeshore372.py +0 -0
  276. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/LakeshoreBase.py +0 -0
  277. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/lakeshore/__init__.py +0 -0
  278. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/GP356.py +0 -0
  279. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/VQM835.py +0 -0
  280. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/mks/__init__.py +0 -0
  281. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/ni/Ni_9000.py +0 -0
  282. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/ni/__init__.py +0 -0
  283. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/picotech/__init__.py +0 -0
  284. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/Rigol_DP832.py +0 -0
  285. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/Rigol_DS1000Z.py +0 -0
  286. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/rigol/__init__.py +0 -0
  287. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/siglent/Siglent_SDG.py +0 -0
  288. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/siglent/__init__.py +0 -0
  289. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_CIS200.py +0 -0
  290. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_DG535.py +0 -0
  291. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/SRS_DG645.py +0 -0
  292. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/srs/__init__.py +0 -0
  293. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/tdkl/TDKL_GenH.py +0 -0
  294. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/tdkl/__init__.py +0 -0
  295. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/trinity_power/__init__.py +0 -0
  296. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control/instruments/utility.py +0 -0
  297. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/dependency_links.txt +0 -0
  298. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/not-zip-safe +0 -0
  299. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/requires.txt +0 -0
  300. {hardware-control-3.0.0 → hardware-control-3.0.1}/hardware_control.egg-info/top_level.txt +0 -0
  301. {hardware-control-3.0.0 → hardware-control-3.0.1}/pyproject.toml +0 -0
  302. {hardware-control-3.0.0 → hardware-control-3.0.1}/setup.cfg +0 -0
  303. {hardware-control-3.0.0 → hardware-control-3.0.1}/setup.py +0 -0
  304. {hardware-control-3.0.0 → hardware-control-3.0.1}/tests/test_hooks.py +0 -0
  305. {hardware-control-3.0.0 → hardware-control-3.0.1}/tests/test_instrument.py +0 -0
  306. {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.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.
@@ -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 hardware-control tries to minimize the
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
@@ -1,7 +1,7 @@
1
1
  Installation
2
2
  ============
3
3
 
4
- Hardware control requires python ≥ 3.6.
4
+ Hardware control requires python ≥ 3.7.
5
5
 
6
6
  The code is available on `PyPi
7
7
  <https://pypi.org/project/hardware-control>`_ and therefore can be
@@ -33,3 +33,4 @@ drivers for the NI-DAQ modules and picoscopes.
33
33
  instruments/siglent
34
34
  instruments/srs
35
35
  instruments/tdkl
36
+ instruments/trinity_power
@@ -0,0 +1,10 @@
1
+ Picotech
2
+ ========
3
+
4
+ hardware_control.instruments.picotech.Picoscope module
5
+ ------------------------------------------------------
6
+
7
+ .. automodule:: hardware_control.instruments.picotech.Picoscope
8
+ :members:
9
+ :undoc-members:
10
+ :show-inheritance:
@@ -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:
@@ -1,4 +1,4 @@
1
1
  # file generated by setuptools_scm
2
2
  # don't change, don't track in version control
3
- __version__ = version = '3.0.0'
4
- __version_tuple__ = version_tuple = (3, 0, 0)
3
+ __version__ = version = '3.0.1'
4
+ __version_tuple__ = version_tuple = (3, 0, 1)
@@ -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(inst_delay)
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, delay)
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
@@ -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=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
@@ -1,7 +1,11 @@
1
1
  """
2
+ Control class to handle different picoscopes.
3
+
2
4
  .. image:: /images/Pico_6000.jpg
3
5
  :height: 200
4
6
 
7
+ Currently supports 2000, 5000, and 6000 Picoscopes.
8
+
5
9
  """
6
10
 
7
11
  from functools import partial
@@ -1,17 +1,14 @@
1
1
  """
2
- Instrument driver fro TPI from Trinity Power
2
+ Instrument driver for TPI from Trinity Power
3
3
 
4
- TOOD: refactor query and set_value, so that many checks are still done in Instruemnt
5
- and only the actual write is overwritten here
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
- TPI-1001, TPI-1002, & TPI-1005
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(inst_delay)
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.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: