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.
- quarchpy/_version.py +1 -1
- quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.000.qfg +81 -0
- quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.200.qfg +82 -0
- quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.202.qfg +88 -0
- quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.210.qfg +89 -0
- quarchpy/config_files/Power_Margining/~-c/QTL1824-01 - Power Margining Module V2 - Triggering v4.211.qfg +122 -0
- quarchpy/config_files/Power_Margining/~-c/QTL1824-03 - Power Margining Module V2 - Triggering v4.213.qfg +122 -0
- quarchpy/config_files/Power_Margining/~-c/QTL1847-01 - Power Margining Module V2 v4.213.qfg +122 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Power Margining Module v4.101.qfg +79 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Power Margining Module v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Power Margining Module v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1455-02 - Test Power Margining Module v4.004.qfg +74 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1658-01 - Power Margining Module w. Triggering v4.101.qfg +79 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1658-01 - Power Margining Module w. Triggering v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1658-01 - Power Margining Module w. Triggering v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.105.qfg +79 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1730-01 - 3v3 Power Margining Module v4.105.qfg +79 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1730-01 - 3v3 Power Margining Module v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~-m/QTL1730-01 - 3v3 Power Margining Module v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.000.qfg +81 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.200.qfg +82 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.202.qfg +88 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.210.qfg +89 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1824-01 - Power Margining Module V2 - Triggering v4.211.qfg +122 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1824-03 - Power Margining Module V2 - Triggering v4.213.qfg +122 -0
- quarchpy/config_files/Power_Margining/~~c/QTL1847-01 - Power Margining Module V2 v4.213.qfg +122 -0
- quarchpy/config_files/Power_Margining/~~d/QTL1944-xx - HD Power Module v5.000.qfg +124 -0
- quarchpy/config_files/Power_Margining/~~d/QTL1944-xx - HD Power Module v5.003.qfg +125 -0
- quarchpy/config_files/Power_Margining/~~d/QTL1995-xx - x6 HD Power Module v5.002.qfg +123 -0
- quarchpy/config_files/Power_Margining/~~d/QTL1995-xx - x6 HD Power Module v5.003.qfg +124 -0
- quarchpy/config_files/Power_Margining/~~d/QTL1999-xx - Single HD Power Module v5.002.qfg +123 -0
- quarchpy/config_files/Power_Margining/~~d/QTL1999-xx - Single HD Power Module v5.003.qfg +124 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Power Margining Module v4.101.qfg +79 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Power Margining Module v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Power Margining Module v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1455-02 - Test Power Margining Module v4.004.qfg +74 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1658-01 - Power Margining Module w. Triggering v4.101.qfg +79 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1658-01 - Power Margining Module w. Triggering v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1658-01 - Power Margining Module w. Triggering v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.105.qfg +79 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1727-01 - 3v3 Power Margining Module w. Triggering v4.201.qfg +83 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1730-01 - 3v3 Power Margining Module v4.105.qfg +79 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1730-01 - 3v3 Power Margining Module v4.200.qfg +81 -0
- quarchpy/config_files/Power_Margining/~~m/QTL1730-01 - 3v3 Power Margining Module v4.201.qfg +83 -0
- quarchpy/config_files/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/config_files/__pycache__/quarch_config_parser.cpython-38.pyc +0 -0
- quarchpy/config_files/quarch_config_parser.py +4 -0
- quarchpy/config_files/quarch_config_parser.py.bak +6 -2
- quarchpy/config_files/~_pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/config_files/~_pycache__/quarch_config_parser.cpython-38.pyc +0 -0
- quarchpy/connection_specific/QPS/qis/Comms.properties.xml +102 -0
- quarchpy/connection_specific/QPS/qis/help.txt +1 -2
- quarchpy/connection_specific/QPS/qis/hs_err_pid128840.log +346 -0
- quarchpy/connection_specific/QPS/qis/qis.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.4.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/jna-platform.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/jna.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-linux-arm.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-linux-x86.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-linux-x86_64.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-osx-x86.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-osx-x86_64.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-windows-x86.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/libusb4java-1.2.0-windows-x86_64.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/netty-all-4.0.37.Final.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/swingx-all-1.6.4.jar +0 -0
- quarchpy/connection_specific/QPS/qis/qis_lib/usb4java-1.2.0.jar +0 -0
- quarchpy/connection_specific/QPS/qis/~icense/LGPL.txt +167 -0
- quarchpy/connection_specific/QPS/qis/~icense/LICENSE.txt +202 -0
- quarchpy/connection_specific/QPS/qis/~icense/NOTICE.txt +143 -0
- quarchpy/connection_specific/QPS/qps.jar +0 -0
- quarchpy/connection_specific/QPS/scriptCommands.txt +175 -1034
- quarchpy/connection_specific/QPS/~eviceconfig/QTL1995-02.XML +280 -0
- quarchpy/connection_specific/QPS/~eviceconfig/QTL1999-02.XML +292 -0
- quarchpy/connection_specific/QPS/~eviceconfig/QTL2312-01.XML +193 -0
- quarchpy/connection_specific/QPS/~eviceconfig/default.xml +292 -0
- quarchpy/connection_specific/QPS/~icense/LGPL.txt +167 -0
- quarchpy/connection_specific/QPS/~icense/LICENSE.txt +202 -0
- quarchpy/connection_specific/QPS/~icense/Material-Icons-license.txt +51 -0
- quarchpy/connection_specific/QPS/~icense/Material-Icons.txt +1 -0
- quarchpy/connection_specific/QPS/~icense/NOTICE.txt +143 -0
- quarchpy/connection_specific/QPS/~icense/Netty-license.txt +143 -0
- quarchpy/connection_specific/QPS/~icense/argparse4j-license.txt +25 -0
- quarchpy/connection_specific/QPS/~icense/controlsfx-license.txt +26 -0
- quarchpy/connection_specific/QPS/~icense/usb4java-license.txt +167 -0
- quarchpy/connection_specific/__pycache__/StreamChannels.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QIS.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_QPS.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_ReST.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_Serial.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_TCP.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_Telnet.cpython-38.pyc +0 -0
- quarchpy/connection_specific/__pycache__/connection_USB.cpython-38.pyc +0 -0
- quarchpy/connection_specific/connection_QIS.py +8 -33
- quarchpy/connection_specific/connection_QPS.py +0 -1
- quarchpy/connection_specific/connection_ReST.py +15 -0
- quarchpy/connection_specific/serial/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/rfc2217.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/rfc2217.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/rs485.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/rs485.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialcli.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialcli.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialjava.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialjava.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialposix.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialposix.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/win32.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/win32.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/__pycache__/win32.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/threaded/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/threaded/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/hexlify_codec.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/hexlify_codec.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_linux.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_linux.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_osx.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_osx.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_posix.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_posix.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-39.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/miniterm.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/tools/__pycache__/miniterm.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_alt.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_alt.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_hwgrep.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_hwgrep.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_loop.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_loop.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_rfc2217.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_rfc2217.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_socket.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_socket.cpython-38.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_spy.cpython-37.pyc +0 -0
- quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_spy.cpython-38.pyc +0 -0
- quarchpy/connection_specific/usb_libs/MS32/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/usb_libs/MS32/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/usb_libs/MS64/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/usb_libs/MS64/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-37.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-38.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-37.pyc +0 -0
- quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/SystemTest.cpython-37.pyc +0 -0
- quarchpy/debug/__pycache__/SystemTest.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/SystemTest.cpython-39.pyc +0 -0
- quarchpy/debug/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/debug/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/debug/__pycache__/__main__.cpython-37.pyc +0 -0
- quarchpy/debug/__pycache__/__main__.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/simple_terminal.cpython-37.pyc +0 -0
- quarchpy/debug/__pycache__/simple_terminal.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-37.pyc +0 -0
- quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/versionCompare.cpython-37.pyc +0 -0
- quarchpy/debug/__pycache__/versionCompare.cpython-38.pyc +0 -0
- quarchpy/debug/__pycache__/versionCompare.cpython-39.pyc +0 -0
- quarchpy/debug/simple_terminal.py +1 -2
- quarchpy/device/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/device/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/device/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/device/__pycache__/device.cpython-37.pyc +0 -0
- quarchpy/device/__pycache__/device.cpython-38.pyc +0 -0
- quarchpy/device/__pycache__/device.cpython-39.pyc +0 -0
- quarchpy/device/__pycache__/quarchArray.cpython-37.pyc +0 -0
- quarchpy/device/__pycache__/quarchArray.cpython-38.pyc +0 -0
- quarchpy/device/__pycache__/quarchArray.cpython-39.pyc +0 -0
- quarchpy/device/__pycache__/quarchPPM.cpython-37.pyc +0 -0
- quarchpy/device/__pycache__/quarchPPM.cpython-38.pyc +0 -0
- quarchpy/device/__pycache__/quarchPPM.cpython-39.pyc +0 -0
- quarchpy/device/__pycache__/quarchQPS.cpython-37.pyc +0 -0
- quarchpy/device/__pycache__/quarchQPS.cpython-38.pyc +0 -0
- quarchpy/device/__pycache__/quarchQPS.cpython-39.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-37.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-38.pyc +0 -0
- quarchpy/device/__pycache__/scanDevices.cpython-39.pyc +0 -0
- quarchpy/device/device.py +16 -67
- quarchpy/device/quarchArray.py +1 -1
- quarchpy/device/quarchPPM.py +1 -1
- quarchpy/device/quarchQPS.py +30 -36
- quarchpy/device/scanDevices.py +85 -92
- quarchpy/disk_test/DiskTargetSelection.py +2 -1
- quarchpy/docs/CHANGES.rst +0 -7
- quarchpy/docs/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/docs/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/docs/__pycache__/conf.cpython-37.pyc +0 -0
- quarchpy/docs/__pycache__/conf.cpython-38.pyc +0 -0
- quarchpy/docs/_build/html/_static/jquery-3.5.1.js +10872 -0
- quarchpy/docs/_build/html/_static/underscore-1.13.1.js +2042 -0
- quarchpy/fio/__pycache__/FIO_interface.cpython-37.pyc +0 -0
- quarchpy/fio/__pycache__/FIO_interface.cpython-38.pyc +0 -0
- quarchpy/fio/__pycache__/FIO_interface.cpython-39.pyc +0 -0
- quarchpy/fio/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/fio/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/fio/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/fio/__pycache__/fioDiskFinder.cpython-37.pyc +0 -0
- quarchpy/fio/__pycache__/fioDiskFinder.cpython-38.pyc +0 -0
- quarchpy/fio/__pycache__/fioDiskFinder.cpython-39.pyc +0 -0
- quarchpy/fio/__pycache__/performanceClass.cpython-37.pyc +0 -0
- quarchpy/fio/__pycache__/performanceClass.cpython-38.pyc +0 -0
- quarchpy/fio/__pycache__/test_performance_class.cpython-37.pyc +0 -0
- quarchpy/fio/__pycache__/test_performance_class.cpython-38.pyc +0 -0
- quarchpy/iometer/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/iometer/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/iometer/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/iometer/__pycache__/gen_iometer_template.cpython-38.pyc +0 -0
- quarchpy/iometer/__pycache__/iometerFuncs.cpython-37.pyc +0 -0
- quarchpy/iometer/__pycache__/iometerFuncs.cpython-38.pyc +0 -0
- quarchpy/iometer/__pycache__/iometerFuncs.cpython-39.pyc +0 -0
- quarchpy/iometer/iometerFuncs.py +36 -53
- quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-38.pyc +0 -0
- quarchpy/qis/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/qis/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/qis/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-37.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-38.pyc +0 -0
- quarchpy/qis/__pycache__/qisFuncs.cpython-39.pyc +0 -0
- quarchpy/qps/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/qps/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/qps/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/qps/__pycache__/qpsFuncs.cpython-37.pyc +0 -0
- quarchpy/qps/__pycache__/qpsFuncs.cpython-38.pyc +0 -0
- quarchpy/qps/__pycache__/qpsFuncs.cpython-39.pyc +0 -0
- quarchpy/user_interface/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/user_interface/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/user_interface/__pycache__/__init__.cpython-39.pyc +0 -0
- quarchpy/user_interface/__pycache__/user_interface.cpython-37.pyc +0 -0
- quarchpy/user_interface/__pycache__/user_interface.cpython-38.pyc +0 -0
- quarchpy/user_interface/__pycache__/user_interface.cpython-39.pyc +0 -0
- quarchpy/user_interface/user_interface.py +1 -1
- quarchpy/utilities/__pycache__/BitManipulation.cpython-37.pyc +0 -0
- quarchpy/utilities/__pycache__/BitManipulation.cpython-38.pyc +0 -0
- quarchpy/utilities/__pycache__/TestCenter.cpython-37.pyc +0 -0
- quarchpy/utilities/__pycache__/TestCenter.cpython-38.pyc +0 -0
- quarchpy/utilities/__pycache__/TestCenter.cpython-39.pyc +0 -0
- quarchpy/utilities/__pycache__/TimeValue.cpython-38.pyc +0 -0
- quarchpy/utilities/__pycache__/__init__.cpython-37.pyc +0 -0
- quarchpy/utilities/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/utilities/__pycache__/__init__.cpython-39.pyc +0 -0
- {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/METADATA +1 -8
- {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/RECORD +271 -73
- quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-38.pyc +0 -0
- quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-38.pyc +0 -0
- quarchpy/disk_test/__pycache__/__init__.cpython-38.pyc +0 -0
- quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-38.pyc +0 -0
- {quarchpy-2.1.10.dev4.dist-info → quarchpy-2.1.10.dev6.dist-info}/WHEEL +0 -0
- {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
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
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
|
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()
|
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
|
-
|
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
|
quarchpy/device/quarchArray.py
CHANGED
quarchpy/device/quarchPPM.py
CHANGED
@@ -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=
|
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):
|
quarchpy/device/quarchQPS.py
CHANGED
@@ -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
|
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
|
38
|
-
|
39
|
-
|
40
|
-
|
33
|
+
return quarchStream(self.quarchDevice, directory)
|
41
34
|
|
42
35
|
|
43
|
-
class quarchStream:
|
44
|
-
def __init__(self, quarchQPS, directory
|
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
|
-
|
52
|
-
if
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
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
|
-
|
72
|
-
|
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
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
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
|
"""
|
quarchpy/device/scanDevices.py
CHANGED
@@ -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: " +
|
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: " +
|
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
|
-
|
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
|
-
|
187
|
+
specifiedDevice = None
|
191
188
|
|
192
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
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
|
''''''
|
quarchpy/docs/CHANGES.rst
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|