quarchpy 2.1.10.dev4__py3-none-any.whl → 2.1.10.dev6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. quarchpy/_version.py +1 -1
  2. quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.000.qfg +81 -0
  3. quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.200.qfg +82 -0
  4. quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.202.qfg +88 -0
  5. quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.210.qfg +89 -0
  6. quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.211.qfg +122 -0
  7. quarchpy/config_files/Power_Margining/~-c/QTL1824-03 - Power Margining Module V2 - Triggering v4.213.qfg +122 -0
  8. quarchpy/config_files/Power_Margining/~-c/QTL1847-01 - Power Margining Module V2 v4.213.qfg +122 -0
  9. quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Power Margining Module v4.101.qfg +79 -0
  10. quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Power Margining Module v4.200.qfg +81 -0
  11. quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Power Margining Module v4.201.qfg +83 -0
  12. quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Test Power Margining Module v4.004.qfg +74 -0
  13. quarchpy/config_files/Power_Margining/~-m/QTL1658-01 - Power Margining Module w. Triggering v4.101.qfg +79 -0
  14. quarchpy/config_files/Power_Margining/~-m/QTL1658-01 - Power Margining Module w. Triggering v4.200.qfg +81 -0
  15. quarchpy/config_files/Power_Margining/~-m/QTL1658-01 - Power Margining Module w. Triggering v4.201.qfg +83 -0
  16. quarchpy/config_files/Power_Margining/~-m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.105.qfg +79 -0
  17. quarchpy/config_files/Power_Margining/~-m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.200.qfg +81 -0
  18. quarchpy/config_files/Power_Margining/~-m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.201.qfg +83 -0
  19. quarchpy/config_files/Power_Margining/~-m/QTL1730-01 - 3v3 Power Margining Module v4.105.qfg +79 -0
  20. quarchpy/config_files/Power_Margining/~-m/QTL1730-01 - 3v3 Power Margining Module v4.200.qfg +81 -0
  21. quarchpy/config_files/Power_Margining/~-m/QTL1730-01 - 3v3 Power Margining Module v4.201.qfg +83 -0
  22. quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.000.qfg +81 -0
  23. quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.200.qfg +82 -0
  24. quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.202.qfg +88 -0
  25. quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.210.qfg +89 -0
  26. quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.211.qfg +122 -0
  27. quarchpy/config_files/Power_Margining/~~c/QTL1824-03 - Power Margining Module V2 - Triggering v4.213.qfg +122 -0
  28. quarchpy/config_files/Power_Margining/~~c/QTL1847-01 - Power Margining Module V2 v4.213.qfg +122 -0
  29. quarchpy/config_files/Power_Margining/~~d/QTL1944-xx - HD Power Module v5.000.qfg +124 -0
  30. quarchpy/config_files/Power_Margining/~~d/QTL1944-xx - HD Power Module v5.003.qfg +125 -0
  31. quarchpy/config_files/Power_Margining/~~d/QTL1995-xx - x6 HD Power Module v5.002.qfg +123 -0
  32. quarchpy/config_files/Power_Margining/~~d/QTL1995-xx - x6 HD Power Module v5.003.qfg +124 -0
  33. quarchpy/config_files/Power_Margining/~~d/QTL1999-xx - Single HD Power Module v5.002.qfg +123 -0
  34. quarchpy/config_files/Power_Margining/~~d/QTL1999-xx - Single HD Power Module v5.003.qfg +124 -0
  35. quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Power Margining Module v4.101.qfg +79 -0
  36. quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Power Margining Module v4.200.qfg +81 -0
  37. quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Power Margining Module v4.201.qfg +83 -0
  38. quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Test Power Margining Module v4.004.qfg +74 -0
  39. quarchpy/config_files/Power_Margining/~~m/QTL1658-01 - Power Margining Module w. Triggering v4.101.qfg +79 -0
  40. quarchpy/config_files/Power_Margining/~~m/QTL1658-01 - Power Margining Module w. Triggering v4.200.qfg +81 -0
  41. quarchpy/config_files/Power_Margining/~~m/QTL1658-01 - Power Margining Module w. Triggering v4.201.qfg +83 -0
  42. quarchpy/config_files/Power_Margining/~~m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.105.qfg +79 -0
  43. quarchpy/config_files/Power_Margining/~~m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.200.qfg +81 -0
  44. quarchpy/config_files/Power_Margining/~~m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.201.qfg +83 -0
  45. quarchpy/config_files/Power_Margining/~~m/QTL1730-01 - 3v3 Power Margining Module v4.105.qfg +79 -0
  46. quarchpy/config_files/Power_Margining/~~m/QTL1730-01 - 3v3 Power Margining Module v4.200.qfg +81 -0
  47. quarchpy/config_files/Power_Margining/~~m/QTL1730-01 - 3v3 Power Margining Module v4.201.qfg +83 -0
  48. quarchpy/config_files/__pycache__/__init__.cpython-38.pyc +0 -0
  49. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-38.pyc +0 -0
  50. quarchpy/config_files/quarch_config_parser.py +4 -0
  51. quarchpy/config_files/quarch_config_parser.py.bak +6 -2
  52. quarchpy/config_files/~_pycache__/__init__.cpython-38.pyc +0 -0
  53. quarchpy/config_files/~_pycache__/quarch_config_parser.cpython-38.pyc +0 -0
  54. quarchpy/connection_specific/QPS/qis/Comms.properties.xml +102 -0
  55. quarchpy/connection_specific/QPS/qis/help.txt +1 -2
  56. quarchpy/connection_specific/QPS/qis/hs_err_pid128840.log +346 -0
  57. quarchpy/connection_specific/QPS/qis/qis.jar +0 -0
  58. quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.4.jar +0 -0
  59. quarchpy/connection_specific/QPS/qis/qis_lib/jna-platform.jar +0 -0
  60. quarchpy/connection_specific/QPS/qis/qis_lib/jna.jar +0 -0
  61. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-linux-arm.jar +0 -0
  62. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-linux-x86.jar +0 -0
  63. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-linux-x86_64.jar +0 -0
  64. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-osx-x86.jar +0 -0
  65. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-osx-x86_64.jar +0 -0
  66. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-windows-x86.jar +0 -0
  67. quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-windows-x86_64.jar +0 -0
  68. quarchpy/connection_specific/QPS/qis/qis_lib/netty-all-4.0.37.Final.jar +0 -0
  69. quarchpy/connection_specific/QPS/qis/qis_lib/swingx-all-1.6.4.jar +0 -0
  70. quarchpy/connection_specific/QPS/qis/qis_lib/usb4java-1.2.0.jar +0 -0
  71. quarchpy/connection_specific/QPS/qis/~icense/LGPL.txt +167 -0
  72. quarchpy/connection_specific/QPS/qis/~icense/LICENSE.txt +202 -0
  73. quarchpy/connection_specific/QPS/qis/~icense/NOTICE.txt +143 -0
  74. quarchpy/connection_specific/QPS/qps.jar +0 -0
  75. quarchpy/connection_specific/QPS/scriptCommands.txt +175 -1034
  76. quarchpy/connection_specific/QPS/~eviceconfig/QTL1995-02.XML +280 -0
  77. quarchpy/connection_specific/QPS/~eviceconfig/QTL1999-02.XML +292 -0
  78. quarchpy/connection_specific/QPS/~eviceconfig/QTL2312-01.XML +193 -0
  79. quarchpy/connection_specific/QPS/~eviceconfig/default.xml +292 -0
  80. quarchpy/connection_specific/QPS/~icense/LGPL.txt +167 -0
  81. quarchpy/connection_specific/QPS/~icense/LICENSE.txt +202 -0
  82. quarchpy/connection_specific/QPS/~icense/Material-Icons-license.txt +51 -0
  83. quarchpy/connection_specific/QPS/~icense/Material-Icons.txt +1 -0
  84. quarchpy/connection_specific/QPS/~icense/NOTICE.txt +143 -0
  85. quarchpy/connection_specific/QPS/~icense/Netty-license.txt +143 -0
  86. quarchpy/connection_specific/QPS/~icense/argparse4j-license.txt +25 -0
  87. quarchpy/connection_specific/QPS/~icense/controlsfx-license.txt +26 -0
  88. quarchpy/connection_specific/QPS/~icense/usb4java-license.txt +167 -0
  89. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-38.pyc +0 -0
  90. quarchpy/connection_specific/__pycache__/__init__.cpython-38.pyc +0 -0
  91. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-38.pyc +0 -0
  92. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-38.pyc +0 -0
  93. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-38.pyc +0 -0
  94. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-38.pyc +0 -0
  95. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-38.pyc +0 -0
  96. quarchpy/connection_specific/__pycache__/connection_Telnet.cpython-38.pyc +0 -0
  97. quarchpy/connection_specific/__pycache__/connection_USB.cpython-38.pyc +0 -0
  98. quarchpy/connection_specific/connection_QIS.py +8 -33
  99. quarchpy/connection_specific/connection_QPS.py +0 -1
  100. quarchpy/connection_specific/connection_ReST.py +15 -0
  101. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-37.pyc +0 -0
  102. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-38.pyc +0 -0
  103. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-39.pyc +0 -0
  104. quarchpy/connection_specific/serial/__pycache__/rfc2217.cpython-37.pyc +0 -0
  105. quarchpy/connection_specific/serial/__pycache__/rfc2217.cpython-38.pyc +0 -0
  106. quarchpy/connection_specific/serial/__pycache__/rs485.cpython-37.pyc +0 -0
  107. quarchpy/connection_specific/serial/__pycache__/rs485.cpython-38.pyc +0 -0
  108. quarchpy/connection_specific/serial/__pycache__/serialcli.cpython-37.pyc +0 -0
  109. quarchpy/connection_specific/serial/__pycache__/serialcli.cpython-38.pyc +0 -0
  110. quarchpy/connection_specific/serial/__pycache__/serialjava.cpython-37.pyc +0 -0
  111. quarchpy/connection_specific/serial/__pycache__/serialjava.cpython-38.pyc +0 -0
  112. quarchpy/connection_specific/serial/__pycache__/serialposix.cpython-37.pyc +0 -0
  113. quarchpy/connection_specific/serial/__pycache__/serialposix.cpython-38.pyc +0 -0
  114. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-37.pyc +0 -0
  115. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-38.pyc +0 -0
  116. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-39.pyc +0 -0
  117. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-37.pyc +0 -0
  118. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-38.pyc +0 -0
  119. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-39.pyc +0 -0
  120. quarchpy/connection_specific/serial/__pycache__/win32.cpython-37.pyc +0 -0
  121. quarchpy/connection_specific/serial/__pycache__/win32.cpython-38.pyc +0 -0
  122. quarchpy/connection_specific/serial/__pycache__/win32.cpython-39.pyc +0 -0
  123. quarchpy/connection_specific/serial/threaded/__pycache__/__init__.cpython-37.pyc +0 -0
  124. quarchpy/connection_specific/serial/threaded/__pycache__/__init__.cpython-38.pyc +0 -0
  125. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-37.pyc +0 -0
  126. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-38.pyc +0 -0
  127. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-39.pyc +0 -0
  128. quarchpy/connection_specific/serial/tools/__pycache__/hexlify_codec.cpython-37.pyc +0 -0
  129. quarchpy/connection_specific/serial/tools/__pycache__/hexlify_codec.cpython-38.pyc +0 -0
  130. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-37.pyc +0 -0
  131. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-38.pyc +0 -0
  132. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-39.pyc +0 -0
  133. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-37.pyc +0 -0
  134. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-38.pyc +0 -0
  135. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-39.pyc +0 -0
  136. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_linux.cpython-37.pyc +0 -0
  137. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_linux.cpython-38.pyc +0 -0
  138. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_osx.cpython-37.pyc +0 -0
  139. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_osx.cpython-38.pyc +0 -0
  140. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_posix.cpython-37.pyc +0 -0
  141. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_posix.cpython-38.pyc +0 -0
  142. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-37.pyc +0 -0
  143. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-38.pyc +0 -0
  144. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-39.pyc +0 -0
  145. quarchpy/connection_specific/serial/tools/__pycache__/miniterm.cpython-37.pyc +0 -0
  146. quarchpy/connection_specific/serial/tools/__pycache__/miniterm.cpython-38.pyc +0 -0
  147. quarchpy/connection_specific/serial/urlhandler/__pycache__/__init__.cpython-37.pyc +0 -0
  148. quarchpy/connection_specific/serial/urlhandler/__pycache__/__init__.cpython-38.pyc +0 -0
  149. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_alt.cpython-37.pyc +0 -0
  150. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_alt.cpython-38.pyc +0 -0
  151. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_hwgrep.cpython-37.pyc +0 -0
  152. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_hwgrep.cpython-38.pyc +0 -0
  153. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_loop.cpython-37.pyc +0 -0
  154. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_loop.cpython-38.pyc +0 -0
  155. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_rfc2217.cpython-37.pyc +0 -0
  156. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_rfc2217.cpython-38.pyc +0 -0
  157. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_socket.cpython-37.pyc +0 -0
  158. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_socket.cpython-38.pyc +0 -0
  159. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_spy.cpython-37.pyc +0 -0
  160. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_spy.cpython-38.pyc +0 -0
  161. quarchpy/connection_specific/usb_libs/MS32/__pycache__/__init__.cpython-37.pyc +0 -0
  162. quarchpy/connection_specific/usb_libs/MS32/__pycache__/__init__.cpython-38.pyc +0 -0
  163. quarchpy/connection_specific/usb_libs/MS64/__pycache__/__init__.cpython-37.pyc +0 -0
  164. quarchpy/connection_specific/usb_libs/MS64/__pycache__/__init__.cpython-38.pyc +0 -0
  165. quarchpy/connection_specific/usb_libs/__pycache__/__init__.cpython-37.pyc +0 -0
  166. quarchpy/connection_specific/usb_libs/__pycache__/__init__.cpython-38.pyc +0 -0
  167. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-37.pyc +0 -0
  168. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-38.pyc +0 -0
  169. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-37.pyc +0 -0
  170. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-38.pyc +0 -0
  171. quarchpy/debug/__pycache__/SystemTest.cpython-37.pyc +0 -0
  172. quarchpy/debug/__pycache__/SystemTest.cpython-38.pyc +0 -0
  173. quarchpy/debug/__pycache__/SystemTest.cpython-39.pyc +0 -0
  174. quarchpy/debug/__pycache__/__init__.cpython-37.pyc +0 -0
  175. quarchpy/debug/__pycache__/__init__.cpython-38.pyc +0 -0
  176. quarchpy/debug/__pycache__/__init__.cpython-39.pyc +0 -0
  177. quarchpy/debug/__pycache__/__main__.cpython-37.pyc +0 -0
  178. quarchpy/debug/__pycache__/__main__.cpython-38.pyc +0 -0
  179. quarchpy/debug/__pycache__/simple_terminal.cpython-37.pyc +0 -0
  180. quarchpy/debug/__pycache__/simple_terminal.cpython-38.pyc +0 -0
  181. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-37.pyc +0 -0
  182. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-38.pyc +0 -0
  183. quarchpy/debug/__pycache__/versionCompare.cpython-37.pyc +0 -0
  184. quarchpy/debug/__pycache__/versionCompare.cpython-38.pyc +0 -0
  185. quarchpy/debug/__pycache__/versionCompare.cpython-39.pyc +0 -0
  186. quarchpy/debug/simple_terminal.py +1 -2
  187. quarchpy/device/__pycache__/__init__.cpython-37.pyc +0 -0
  188. quarchpy/device/__pycache__/__init__.cpython-38.pyc +0 -0
  189. quarchpy/device/__pycache__/__init__.cpython-39.pyc +0 -0
  190. quarchpy/device/__pycache__/device.cpython-37.pyc +0 -0
  191. quarchpy/device/__pycache__/device.cpython-38.pyc +0 -0
  192. quarchpy/device/__pycache__/device.cpython-39.pyc +0 -0
  193. quarchpy/device/__pycache__/quarchArray.cpython-37.pyc +0 -0
  194. quarchpy/device/__pycache__/quarchArray.cpython-38.pyc +0 -0
  195. quarchpy/device/__pycache__/quarchArray.cpython-39.pyc +0 -0
  196. quarchpy/device/__pycache__/quarchPPM.cpython-37.pyc +0 -0
  197. quarchpy/device/__pycache__/quarchPPM.cpython-38.pyc +0 -0
  198. quarchpy/device/__pycache__/quarchPPM.cpython-39.pyc +0 -0
  199. quarchpy/device/__pycache__/quarchQPS.cpython-37.pyc +0 -0
  200. quarchpy/device/__pycache__/quarchQPS.cpython-38.pyc +0 -0
  201. quarchpy/device/__pycache__/quarchQPS.cpython-39.pyc +0 -0
  202. quarchpy/device/__pycache__/scanDevices.cpython-37.pyc +0 -0
  203. quarchpy/device/__pycache__/scanDevices.cpython-38.pyc +0 -0
  204. quarchpy/device/__pycache__/scanDevices.cpython-39.pyc +0 -0
  205. quarchpy/device/device.py +16 -67
  206. quarchpy/device/quarchArray.py +1 -1
  207. quarchpy/device/quarchPPM.py +1 -1
  208. quarchpy/device/quarchQPS.py +30 -36
  209. quarchpy/device/scanDevices.py +85 -92
  210. quarchpy/disk_test/DiskTargetSelection.py +2 -1
  211. quarchpy/docs/CHANGES.rst +0 -7
  212. quarchpy/docs/__pycache__/__init__.cpython-37.pyc +0 -0
  213. quarchpy/docs/__pycache__/__init__.cpython-38.pyc +0 -0
  214. quarchpy/docs/__pycache__/conf.cpython-37.pyc +0 -0
  215. quarchpy/docs/__pycache__/conf.cpython-38.pyc +0 -0
  216. quarchpy/docs/_build/html/_static/jquery-3.5.1.js +10872 -0
  217. quarchpy/docs/_build/html/_static/underscore-1.13.1.js +2042 -0
  218. quarchpy/fio/__pycache__/FIO_interface.cpython-37.pyc +0 -0
  219. quarchpy/fio/__pycache__/FIO_interface.cpython-38.pyc +0 -0
  220. quarchpy/fio/__pycache__/FIO_interface.cpython-39.pyc +0 -0
  221. quarchpy/fio/__pycache__/__init__.cpython-37.pyc +0 -0
  222. quarchpy/fio/__pycache__/__init__.cpython-38.pyc +0 -0
  223. quarchpy/fio/__pycache__/__init__.cpython-39.pyc +0 -0
  224. quarchpy/fio/__pycache__/fioDiskFinder.cpython-37.pyc +0 -0
  225. quarchpy/fio/__pycache__/fioDiskFinder.cpython-38.pyc +0 -0
  226. quarchpy/fio/__pycache__/fioDiskFinder.cpython-39.pyc +0 -0
  227. quarchpy/fio/__pycache__/performanceClass.cpython-37.pyc +0 -0
  228. quarchpy/fio/__pycache__/performanceClass.cpython-38.pyc +0 -0
  229. quarchpy/fio/__pycache__/test_performance_class.cpython-37.pyc +0 -0
  230. quarchpy/fio/__pycache__/test_performance_class.cpython-38.pyc +0 -0
  231. quarchpy/iometer/__pycache__/__init__.cpython-37.pyc +0 -0
  232. quarchpy/iometer/__pycache__/__init__.cpython-38.pyc +0 -0
  233. quarchpy/iometer/__pycache__/__init__.cpython-39.pyc +0 -0
  234. quarchpy/iometer/__pycache__/gen_iometer_template.cpython-38.pyc +0 -0
  235. quarchpy/iometer/__pycache__/iometerFuncs.cpython-37.pyc +0 -0
  236. quarchpy/iometer/__pycache__/iometerFuncs.cpython-38.pyc +0 -0
  237. quarchpy/iometer/__pycache__/iometerFuncs.cpython-39.pyc +0 -0
  238. quarchpy/iometer/iometerFuncs.py +36 -53
  239. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-38.pyc +0 -0
  240. quarchpy/qis/__pycache__/__init__.cpython-37.pyc +0 -0
  241. quarchpy/qis/__pycache__/__init__.cpython-38.pyc +0 -0
  242. quarchpy/qis/__pycache__/__init__.cpython-39.pyc +0 -0
  243. quarchpy/qis/__pycache__/qisFuncs.cpython-37.pyc +0 -0
  244. quarchpy/qis/__pycache__/qisFuncs.cpython-38.pyc +0 -0
  245. quarchpy/qis/__pycache__/qisFuncs.cpython-39.pyc +0 -0
  246. quarchpy/qps/__pycache__/__init__.cpython-37.pyc +0 -0
  247. quarchpy/qps/__pycache__/__init__.cpython-38.pyc +0 -0
  248. quarchpy/qps/__pycache__/__init__.cpython-39.pyc +0 -0
  249. quarchpy/qps/__pycache__/qpsFuncs.cpython-37.pyc +0 -0
  250. quarchpy/qps/__pycache__/qpsFuncs.cpython-38.pyc +0 -0
  251. quarchpy/qps/__pycache__/qpsFuncs.cpython-39.pyc +0 -0
  252. quarchpy/user_interface/__pycache__/__init__.cpython-37.pyc +0 -0
  253. quarchpy/user_interface/__pycache__/__init__.cpython-38.pyc +0 -0
  254. quarchpy/user_interface/__pycache__/__init__.cpython-39.pyc +0 -0
  255. quarchpy/user_interface/__pycache__/user_interface.cpython-37.pyc +0 -0
  256. quarchpy/user_interface/__pycache__/user_interface.cpython-38.pyc +0 -0
  257. quarchpy/user_interface/__pycache__/user_interface.cpython-39.pyc +0 -0
  258. quarchpy/user_interface/user_interface.py +1 -1
  259. quarchpy/utilities/__pycache__/BitManipulation.cpython-37.pyc +0 -0
  260. quarchpy/utilities/__pycache__/BitManipulation.cpython-38.pyc +0 -0
  261. quarchpy/utilities/__pycache__/TestCenter.cpython-37.pyc +0 -0
  262. quarchpy/utilities/__pycache__/TestCenter.cpython-38.pyc +0 -0
  263. quarchpy/utilities/__pycache__/TestCenter.cpython-39.pyc +0 -0
  264. quarchpy/utilities/__pycache__/TimeValue.cpython-38.pyc +0 -0
  265. quarchpy/utilities/__pycache__/__init__.cpython-37.pyc +0 -0
  266. quarchpy/utilities/__pycache__/__init__.cpython-38.pyc +0 -0
  267. quarchpy/utilities/__pycache__/__init__.cpython-39.pyc +0 -0
  268. {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/METADATA +1 -8
  269. {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/RECORD +271 -73
  270. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-38.pyc +0 -0
  271. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-38.pyc +0 -0
  272. quarchpy/disk_test/__pycache__/__init__.cpython-38.pyc +0 -0
  273. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-38.pyc +0 -0
  274. {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/WHEEL +0 -0
  275. {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/top_level.txt +0 -0
quarchpy/device/device.py CHANGED
@@ -115,62 +115,30 @@ class quarchDevice:
115
115
  # Creates the connection object.
116
116
  self.connectionObj = QISConnection(self.ConString, host, port)
117
117
 
118
+ #TODO This is a list of contype::serialnumber when connecting over rest and TCP we need to be comparing IP address NOT contype::serialNumber.
118
119
  list = self.connectionObj.qis.getDeviceList()
119
120
  list_str = "".join(list).lower()
120
121
 
121
- timeout = time.time() + int(timeout) # now + n seconds
122
-
123
- # check for device in list, has a timeout
124
- while time.time() < timeout:
125
-
126
- # Check if it's a module's QTL number
127
- if "qtl" not in self.ConString.lower():
128
-
129
- # If not, check if it contains a valid IP address format
130
- ip_address = re.search(r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", self.ConString)
131
- if not ip_address:
132
- raise ValueError(f"ConString {self.ConString} does not contain a valid QTL number or IP address")
133
-
134
- # Attempt to get QTL number from qis "$list details"
135
- temp_str = _check_ip_in_qis_list(ip_address.group(), self.connectionObj.qis.get_list_details())
136
- if temp_str:
137
- # If found
138
- self.ConString = temp_str
139
- break
140
-
141
- logging.debug("Did not find ip address in list details, attempt targetted qis scan")
142
-
143
- # If it's not present in the list already, then try scanning for it via qis
144
- # Scan is purposefully after initial check! 09/03/2023
145
- # Valid response example "Located device: 192.168.1.3"
146
- if "located" in str(self.connectionObj.qis.scanIP(self.ConString)).lower():
147
- # Note - Qis takes a moment or 2 to add this newly located device to the $list 21/03/23
148
- timeout += 20 # Extend the timeout as the drive was located
149
-
150
- while time.time() < timeout:
151
- # try find the new device again from ipaddress
152
- temp_str = _check_ip_in_qis_list(ip_address.group(), self.connectionObj.qis.get_list_details())
153
- if temp_str:
154
- # If the item is found, break out of this loop
155
- self.ConString = temp_str
156
- break
157
- time.sleep(1) # Slow down the poll
158
- else:
159
- # if it's not found, continue and allow program to timeout
160
- continue
161
- # Break out of both loops
122
+ #check for device in list, has a timeout
123
+ while 1:
124
+ if (self.timeout == 0 or "qtl" not in self.ConString.lower()):
125
+ #If the quarch module is not found using a standard scan, it may be on a different subnet. Do ipAddressLookup for a module at this address.
126
+ try:
127
+ response = self.connectionObj.qis.scanIP(self.ConString)
128
+ logging.debug("$scan " + self.ConString + "= " + response)
129
+ self.ConString = response
162
130
  break
131
+ except:
132
+ raise ValueError("Search timeout - no Quarch module found.")
163
133
 
164
- elif str(self.ConString).lower() in str(list_str).lower():
165
- # If we have QTL device, and it's in list, nothing more needs done.
134
+ elif (self.ConString in list_str):
166
135
  break
136
+
167
137
  else:
168
138
  time.sleep(1)
139
+ self.timeout -= 1
169
140
  list = self.connectionObj.qis.getDeviceList()
170
141
  list_str = "".join(list).lower()
171
- else:
172
- # If we didn't hit a 'break' condition in the above loop, then it timed out
173
- raise TimeoutError(f"Could not find module '{self.ConString}' from Qis within specified time")
174
142
 
175
143
  self.connectionObj.qis.sendAndReceiveCmd(cmd="$default " + self.ConString)
176
144
 
@@ -271,7 +239,7 @@ class quarchDevice:
271
239
  logging.debug("Attempting to open " + self.ConType[:3] + " connection")
272
240
 
273
241
  if self.ConType[:3] == "QIS":
274
- self.connectionObj.qis.connect() #todo should have a return val so that failed connections are caught.
242
+ self.connectionObj.qis.connect()
275
243
 
276
244
  elif self.ConType == "PY":
277
245
  del self.connectionObj
@@ -279,7 +247,7 @@ class quarchDevice:
279
247
  return self.connectionObj
280
248
 
281
249
  elif self.ConType[:3] == "QPS":
282
- return self.connectionObj.qps.connect(self.ConString)
250
+ self.connectionObj.qps.connect(self.ConString)
283
251
 
284
252
  else:
285
253
  raise Exception("Connection type not recognised")
@@ -434,25 +402,6 @@ class quarchDevice:
434
402
  return None
435
403
 
436
404
 
437
- def _check_ip_in_qis_list(ip_address, detailed_device_list):
438
- """
439
- Checks if the IP address is in qis device list
440
- :param detailed_device_list: list formatted return from qis command "$list details"
441
- :return String : return contype and constring for module if it's in list, else None
442
- """
443
- # logging.debug(f"List details from Qis : \n{str(''.join(detailed_device_list))}")
444
-
445
- for module in detailed_device_list:
446
- # Note for future developers : Restricted this to only TCP modules, not RESt
447
- if ip_address in module and "tcp" in module.lower():
448
- # '1) REST::QTL2312-01-009 IP:192.168.1.5 Port:80 NBName:2312-01-009 Stream:No Name:Power Analysis Module'
449
- # Split on spaces and grab second element ("tcp::qtl2312-01-009")
450
- ret_string = module.split()[1]
451
- return ret_string
452
-
453
- # If the ip address wasn't found, then return none
454
- return None
455
-
456
405
  # TODO: Can we make this an '_' internal function?
457
406
  def checkModuleFormat(ConString):
458
407
  ConnectionTypes = ["USB", "SERIAL", "TELNET", "REST", "TCP"] # acceptable conTypes
@@ -74,6 +74,6 @@ class subDevice(quarchDevice):
74
74
  pos = x.find(':')
75
75
  lineNum = x[:pos]
76
76
  returnStr += (x[pos+1:].strip() + "\r\n")
77
- returnStr = returnStr.strip()
77
+ returnStr = returnStr.strip()
78
78
  return returnStr
79
79
 
@@ -12,7 +12,7 @@ class quarchPPM(quarchDevice):
12
12
  if numb_colons == 1:
13
13
  self.ConString = self.ConString.replace(':', '::')
14
14
 
15
- def startStream(self, fileName='streamData.txt', fileMaxMB=200000, streamName ='Stream With No Name', streamDuration = None, streamAverage = None, releaseOnData = False, separator=","):
15
+ def startStream(self, fileName='streamData.txt', fileMaxMB=2000, streamName ='Stream With No Name', streamDuration = None, streamAverage = None, releaseOnData = False, separator=","):
16
16
  return self.connectionObj.qis.startStream(self.ConString, fileName, fileMaxMB, streamName, streamAverage, releaseOnData, separator, streamDuration)
17
17
 
18
18
  def streamRunningStatus(self):
@@ -28,54 +28,48 @@ class quarchQPS(quarchDevice):
28
28
  self.IP_address = quarchDevice.connectionObj.qps.host
29
29
  self.port_number = quarchDevice.connectionObj.qps.port
30
30
 
31
- def startStream(self, directory, unserInput=True):
32
- """
33
- directory - str - desired stream dir
34
- unserInput=True - if a failure occurs userInput=True allows user to rectify problem with user input. set to False if user interaction is not available (automating).
35
- """
31
+ def startStream(self, directory):
36
32
  time.sleep(1) #TODO remove this sleep once script->QPS timeing issue resolved. This works fine in the meantime
37
- return quarchStream(self.quarchDevice, directory, unserInput)
38
-
39
-
40
-
33
+ return quarchStream(self.quarchDevice, directory)
41
34
 
42
35
 
43
- class quarchStream:
44
- def __init__(self, quarchQPS, directory, unserInput=True):
36
+ class quarchStream(quarchQPS):
37
+ def __init__(self, quarchQPS, directory):
45
38
  self.connectionObj = quarchQPS.connectionObj
39
+
46
40
  self.IP_address = quarchQPS.connectionObj.qps.host
47
41
  self.port_number = quarchQPS.connectionObj.qps.port
42
+
48
43
  self.ConString = quarchQPS.ConString
49
44
  self.ConType = quarchQPS.ConType
45
+
50
46
  time.sleep(1)
51
- response = self.startQPSStream(directory)
52
- if not "fail:" in response.lower():
53
- return
54
- else:
55
- if unserInput is False:
56
- raise Exception(response)
57
- else:
58
- self.failCheck(response)
59
-
60
- def startQPSStream(self, newDirectory):
61
- '''STARTS the stream '''
62
- response = self.connectionObj.qps.sendCmdVerbose("$start stream " + str(newDirectory))
63
- return response
64
-
65
- def failCheck(self, response):
66
- ''' handles failed starting of stream that requires input from user to fix.'''
67
- while "fail:" in response.lower():
68
- if "Fail: Directory already exists" in response:
47
+
48
+ #check to see if any invalid file entries
49
+ newDirectory = self.failCheck(directory)
50
+
51
+ def failCheck(self, newDirectory):
52
+ validResponse = False
53
+
54
+ while (validResponse == False):
55
+ #send the command to start stream
56
+ response = self.connectionObj.qps.sendCmdVerbose( "$start stream " + str(newDirectory))
57
+ #if the stream fails, loop until user enters valid name
58
+ if "Fail" in response: #TODO should check when this fail is not a path name issue
69
59
  print (response)
70
60
  print("Please enter a new file name:")
71
- if sys.version_info.major==3:
72
- newDir = input()
61
+ #grab directory bar end file / folder
62
+ path = os.path.dirname(newDirectory)
63
+ #get a new file name
64
+ if sys.version_info.major==3:
65
+ newEnd = input()
73
66
  else:
74
- newDir = raw_input()
75
- response = self.startQPSStream( newDir)
76
- else: # If its a failure we don't know how to handle.
77
- raise Exception(response)
78
- return response
67
+ newEnd = raw_input()
68
+ #append user input to directory
69
+ newDirectory = path.replace("\\\\","\\") + newEnd
70
+ else:
71
+ validResponse = True;
72
+ return newDirectory
79
73
 
80
74
  def get_stats(self, format="df"):
81
75
  """
@@ -104,7 +104,7 @@ def list_USB(debuPrint=False):
104
104
  if not os.path.isfile("/etc/udev/rules.d/20-quarchmodules.rules"):
105
105
  usb_permission_error = True
106
106
  usb_modules["USB:???"] = "LOCKED MODULE"
107
-
107
+ continue
108
108
 
109
109
  try:
110
110
  module_sn = i_handle.getASCIIStringDescriptor(3)
@@ -119,7 +119,7 @@ def list_USB(debuPrint=False):
119
119
  if (debuPrint): printText(i_handle.getASCIIStringDescriptor(3) + " " + i_handle.getASCIIStringDescriptor(
120
120
  2) + " " + i_handle.getASCIIStringDescriptor(1))
121
121
  except Exception as err:
122
- logging.error("USB exception on reading descriptor strings: " + str(err))
122
+ logging.error("USB exception on reading descriptor strings: " + err)
123
123
  usb_modules["USB:???"] = "LOCKED MODULE"
124
124
  continue
125
125
 
@@ -137,7 +137,7 @@ def list_USB(debuPrint=False):
137
137
  logging.debug("Closing USB handle to quarch module: " + str(i))
138
138
  i_handle.close()
139
139
  except Exception as err:
140
- logging.error("Exception on closing USB port: " + str(err))
140
+ logging.error("Exception on closing USB port: " + err)
141
141
  continue
142
142
 
143
143
  # before returning the list of usb modules scan through the list for a 1944 create a quarch device and use sendCommand("*enclosure?")
@@ -177,105 +177,98 @@ def list_USB(debuPrint=False):
177
177
  List all Quarch devices found over LAN, using a UDP broadcast scan
178
178
  '''
179
179
  def list_network(target_conn="all", debugPring=False, lanTimeout=1, ipAddressLookup=None):
180
+ # Create and configure the socket for broadcast.
181
+ mySocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
182
+ mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
183
+ mySocket.settimeout(lanTimeout)
180
184
 
181
- ipList = socket.gethostbyname_ex(socket.gethostname())
182
- logging.debug(os.path.basename(__file__) + ": Discovered the following interfaces: " + str(ipList))
183
- retVal={}
184
- for ip in ipList[2]:
185
- # Create and configure the socket for broadcast.
186
- mySocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
187
- mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
188
- mySocket.settimeout(lanTimeout)
185
+ lan_modules = dict()
189
186
 
190
- lan_modules = dict()
187
+ specifiedDevice = None
191
188
 
192
- specifiedDevice = None
189
+ if ipAddressLookup is not None:
190
+ # Attempts to find the device through UDP then REST
191
+ specifiedDevice = lookupDevice(str(ipAddressLookup).strip(), mySocket, lan_modules )
193
192
 
194
- if ipAddressLookup is not None:
195
- # Attempts to find the device through UDP then REST
196
- specifiedDevice = lookupDevice(str(ipAddressLookup).strip(), mySocket, lan_modules )
197
193
 
198
194
 
195
+ # Broadcast the message.
196
+ logging.debug("Broadcast LAN discovery message for UDP scan")
197
+ mySocket.sendto(b'Discovery: Who is out there?\0\n', ('255.255.255.255', 30303))
199
198
 
200
- # Broadcast the message.
201
- logging.debug("Broadcast LAN discovery message for UDP scan")
202
- mySocket.bind((ip,56732))
203
- mySocket.sendto(b'Discovery: Who is out there?\0\n', ('255.255.255.255', 30303))
204
- #mySocket.sendto(b'Discovery: Who is out there?\0\n', ('255.255.255.255', 30303)) #56732
199
+ counter = 0
205
200
 
206
- counter = 0
201
+ # Receive messages until timeout.
202
+ while True:
203
+ network_modules = {}
204
+ counter += 1
205
+ # Receive raw message until timeout, then break.
206
+ try:
207
+ msg_received = mySocket.recvfrom(256)
208
+ except:
209
+ # check if any a device was targeted directly and allow parse
210
+ if specifiedDevice is not None:
211
+ msg_received = specifiedDevice
212
+ specifiedDevice = None
213
+ else:
214
+ break
215
+ cont = 0
216
+
217
+ # print(msg_received)
218
+ # Used split \r\n since values of 13 or 10 were looked at as /r and /n when using splitlines
219
+ # This fixes for all cases except if 13 is followed by 10.
220
+ splits = msg_received[0].split(b"\r\n")
221
+ del splits[-1]
222
+ for lines in splits:
223
+ if cont <= 1:
224
+ index = cont
225
+ data = repr(lines).replace("'", "").replace("b", "")
226
+ cont += 1
227
+ else:
228
+ index = repr(lines[0]).replace("'", "")
229
+ data = repr(lines[1:]).replace("'", "").replace("b", "")
207
230
 
208
- # Receive messages until timeout.
209
- while True:
210
- network_modules = {}
211
- counter += 1
212
- # Receive raw message until timeout, then break.
213
- try:
214
- msg_received = mySocket.recvfrom(256)
215
- except:
216
- # check if any a device was targeted directly and allow parse
217
- if specifiedDevice is not None:
218
- msg_received = specifiedDevice
219
- specifiedDevice = None
220
- else:
221
- break
222
- cont = 0
223
-
224
- # print(msg_received)
225
- # Used split \r\n since values of 13 or 10 were looked at as /r and /n when using splitlines
226
- # This fixes for all cases except if 13 is followed by 10.
227
- splits = msg_received[0].split(b"\r\n")
228
- del splits[-1]
229
- for lines in splits:
230
- if cont <= 1:
231
- index = cont
232
- data = repr(lines).replace("'", "").replace("b", "")
233
- cont += 1
234
- else:
235
- index = repr(lines[0]).replace("'", "")
236
- data = repr(lines[1:]).replace("'", "").replace("b", "")
237
-
238
- network_modules[index] = data
239
-
240
- module_name = get_user_level_serial_number(network_modules)
241
- logging.debug("Found UDP response: " + module_name)
242
-
243
- ip_module = msg_received[1][0].strip()
231
+ network_modules[index] = data
244
232
 
245
- try:
246
- # Add a QTL before modules without it.
247
- if "QTL" not in module_name.decode("utf-8"):
248
- module_name = "QTL" + module_name.decode("utf-8")
249
- except:
250
- # Add a QTL before modules without it.
251
- if "QTL" not in module_name:
252
- module_name = "QTL" + module_name
253
-
254
- # Checks if there's a value in the TELNET key.
255
- if (target_conn.lower() == "all" or target_conn.lower() == "telnet"):
256
- if network_modules.get("\\x8a") or network_modules.get("138"):
257
- # Append the information to the list.
258
- lan_modules["TELNET:" + ip_module] = module_name
259
- logging.debug("Found Telnet module: " + module_name)
260
-
261
- # Checks if there's a value in the REST key.
262
- if (target_conn.lower() == "all" or target_conn.lower() == "rest"):
263
- if network_modules.get("\\x84") or network_modules.get("132"):
264
- # Append the information to the list.
265
- lan_modules["REST:" + ip_module] = module_name
266
- logging.debug("Found REST module: " + module_name)
267
-
268
- # Checks if there's a value in the TCP key.
269
- if (target_conn.lower() == "all" or target_conn.lower() == "tcp"):
270
- if network_modules.get("\\x85") or network_modules.get("133"):
271
- # Append the information to the list.
272
- lan_modules["TCP:" + ip_module] = module_name
273
- logging.debug("Found TCP module: " + module_name)
274
-
275
- mySocket.close()
276
- logging.debug("Finished UDP scan")
277
- retVal.update(lan_modules)
278
- return retVal
233
+ module_name = get_user_level_serial_number(network_modules)
234
+ logging.debug("Found UDP response: " + module_name)
235
+
236
+ ip_module = msg_received[1][0].strip()
237
+
238
+ try:
239
+ # Add a QTL before modules without it.
240
+ if "QTL" not in module_name.decode("utf-8"):
241
+ module_name = "QTL" + module_name.decode("utf-8")
242
+ except:
243
+ # Add a QTL before modules without it.
244
+ if "QTL" not in module_name:
245
+ module_name = "QTL" + module_name
246
+
247
+ # Checks if there's a value in the TELNET key.
248
+ if (target_conn.lower() == "all" or target_conn.lower() == "telnet"):
249
+ if network_modules.get("\\x8a") or network_modules.get("138"):
250
+ # Append the information to the list.
251
+ lan_modules["TELNET:" + ip_module] = module_name
252
+ logging.debug("Found Telnet module: " + module_name)
253
+
254
+ # Checks if there's a value in the REST key.
255
+ if (target_conn.lower() == "all" or target_conn.lower() == "rest"):
256
+ if network_modules.get("\\x84") or network_modules.get("132"):
257
+ # Append the information to the list.
258
+ lan_modules["REST:" + ip_module] = module_name
259
+ logging.debug("Found REST module: " + module_name)
260
+
261
+ # Checks if there's a value in the TCP key.
262
+ if (target_conn.lower() == "all" or target_conn.lower() == "tcp"):
263
+ if network_modules.get("\\x85") or network_modules.get("133"):
264
+ # Append the information to the list.
265
+ lan_modules["TCP:" + ip_module] = module_name
266
+ logging.debug("Found TCP module: " + module_name)
267
+
268
+ mySocket.close()
269
+ logging.debug("Finished UDP scan")
270
+
271
+ return lan_modules
279
272
 
280
273
 
281
274
  ''''''
@@ -31,6 +31,7 @@ def getDiskTargetSelection (purpose = "iometer"):
31
31
 
32
32
  if purpose.lower() == "iometer":
33
33
  iometerObject = iometerDiskFinder()
34
- driveInfo = iometerObject.returnDisk()
34
+ disk = iometerObject.returnDisk()
35
+ driveInfo = disk
35
36
 
36
37
  return driveInfo
quarchpy/docs/CHANGES.rst CHANGED
@@ -13,13 +13,6 @@ Quarchpy
13
13
  Change Log
14
14
  ----------
15
15
 
16
- 2.1.11
17
- ------
18
- - New QPS v1.31
19
- - New QIS v1.34
20
-
21
- 2.1.10
22
- ------
23
16
 
24
17
  2.1.8
25
18
  -----