quarchpy 2.1.20.dev3__py2.py3-none-any.whl → 2.1.22__py2.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 (184) hide show
  1. quarchpy/.idea/.name +1 -1
  2. quarchpy/.idea/modules.xml +1 -0
  3. quarchpy/.idea/quarchpy.iml +4 -1
  4. quarchpy/.idea/workspace.xml +231 -21
  5. quarchpy/__pycache__/__init__.cpython-311.pyc +0 -0
  6. quarchpy/__pycache__/_version.cpython-311.pyc +0 -0
  7. quarchpy/__pycache__/connection.cpython-311.pyc +0 -0
  8. quarchpy/__pycache__/run.cpython-311.pyc +0 -0
  9. quarchpy/_version.py +1 -1
  10. quarchpy/config_files/__pycache__/__init__.cpython-311.pyc +0 -0
  11. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-311.pyc +0 -0
  12. quarchpy/connection_specific/QPS/qis/qis.jar +0 -0
  13. quarchpy/connection_specific/QPS/qis/qis_lib/{CInterface-1.7.8.jar → CInterface-1.8.0.jar} +0 -0
  14. quarchpy/connection_specific/QPS/{qps_lib/QuarchCommon-0.2.9.jar → qis/qis_lib/QuarchCommon-0.2.12.jar} +0 -0
  15. quarchpy/connection_specific/QPS/qis/qis_lib/jmdns-3.5.9.jar +0 -0
  16. quarchpy/connection_specific/QPS/qis/resources/filters/iec_filters.xml +0 -9
  17. quarchpy/connection_specific/QPS/qps.jar +0 -0
  18. quarchpy/connection_specific/QPS/{qis/qis_lib/QuarchCommon-0.2.9.jar → qps_lib/QuarchCommon-0.2.12.jar} +0 -0
  19. quarchpy/connection_specific/QPS/qps_lib/{qis-1.40.jar → qis-1.41.jar} +0 -0
  20. quarchpy/connection_specific/QPS/resources/profiles/3_PHASE_PAM_AC_DEFAULT.scf +90 -0
  21. quarchpy/connection_specific/QPS/resources/profiles/3_PHASE_PAM_AC_FULL.scf +144 -0
  22. quarchpy/connection_specific/QPS/scriptCommands.txt +2 -2
  23. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-311.pyc +0 -0
  24. quarchpy/connection_specific/__pycache__/__init__.cpython-311.pyc +0 -0
  25. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-311.pyc +0 -0
  26. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-311.pyc +0 -0
  27. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-311.pyc +0 -0
  28. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-311.pyc +0 -0
  29. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-311.pyc +0 -0
  30. quarchpy/connection_specific/__pycache__/connection_Telnet.cpython-311.pyc +0 -0
  31. quarchpy/connection_specific/__pycache__/connection_USB.cpython-311.pyc +0 -0
  32. quarchpy/connection_specific/__pycache__/connection_mDNS.cpython-311.pyc +0 -0
  33. quarchpy/connection_specific/connection_QIS.py +8 -3
  34. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-311.pyc +0 -0
  35. quarchpy/connection_specific/serial/__pycache__/rfc2217.cpython-311.pyc +0 -0
  36. quarchpy/connection_specific/serial/__pycache__/rs485.cpython-311.pyc +0 -0
  37. quarchpy/connection_specific/serial/__pycache__/serialcli.cpython-311.pyc +0 -0
  38. quarchpy/connection_specific/serial/__pycache__/serialjava.cpython-311.pyc +0 -0
  39. quarchpy/connection_specific/serial/__pycache__/serialposix.cpython-311.pyc +0 -0
  40. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-311.pyc +0 -0
  41. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-311.pyc +0 -0
  42. quarchpy/connection_specific/serial/__pycache__/win32.cpython-311.pyc +0 -0
  43. quarchpy/connection_specific/serial/threaded/__pycache__/__init__.cpython-311.pyc +0 -0
  44. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  45. quarchpy/connection_specific/serial/tools/__pycache__/hexlify_codec.cpython-311.pyc +0 -0
  46. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-311.pyc +0 -0
  47. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-311.pyc +0 -0
  48. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_linux.cpython-311.pyc +0 -0
  49. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_osx.cpython-311.pyc +0 -0
  50. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_posix.cpython-311.pyc +0 -0
  51. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-311.pyc +0 -0
  52. quarchpy/connection_specific/serial/tools/__pycache__/miniterm.cpython-311.pyc +0 -0
  53. quarchpy/connection_specific/serial/urlhandler/__pycache__/__init__.cpython-311.pyc +0 -0
  54. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_alt.cpython-311.pyc +0 -0
  55. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_hwgrep.cpython-311.pyc +0 -0
  56. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_loop.cpython-311.pyc +0 -0
  57. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_rfc2217.cpython-311.pyc +0 -0
  58. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_socket.cpython-311.pyc +0 -0
  59. quarchpy/connection_specific/serial/urlhandler/__pycache__/protocol_spy.cpython-311.pyc +0 -0
  60. quarchpy/connection_specific/usb_libs/MS32/__pycache__/__init__.cpython-311.pyc +0 -0
  61. quarchpy/connection_specific/usb_libs/MS64/__pycache__/__init__.cpython-311.pyc +0 -0
  62. quarchpy/connection_specific/usb_libs/__pycache__/__init__.cpython-311.pyc +0 -0
  63. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-311.pyc +0 -0
  64. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-311.pyc +0 -0
  65. quarchpy/debug/__pycache__/SystemTest.cpython-311.pyc +0 -0
  66. quarchpy/debug/__pycache__/__init__.cpython-311.pyc +0 -0
  67. quarchpy/debug/__pycache__/__main__.cpython-311.pyc +0 -0
  68. quarchpy/debug/__pycache__/module_debug.cpython-311.pyc +0 -0
  69. quarchpy/debug/__pycache__/simple_terminal.cpython-311.pyc +0 -0
  70. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-311.pyc +0 -0
  71. quarchpy/debug/__pycache__/versionCompare.cpython-311.pyc +0 -0
  72. quarchpy/device/__pycache__/__init__.cpython-311.pyc +0 -0
  73. quarchpy/device/__pycache__/device.cpython-311.pyc +0 -0
  74. quarchpy/device/__pycache__/quarchArray.cpython-311.pyc +0 -0
  75. quarchpy/device/__pycache__/quarchPPM.cpython-311.pyc +0 -0
  76. quarchpy/device/__pycache__/quarchQPS.cpython-311.pyc +0 -0
  77. quarchpy/device/__pycache__/scanDevices.cpython-311.pyc +0 -0
  78. quarchpy/device/scanDevices.py +1 -1
  79. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-311.pyc +0 -0
  80. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-311.pyc +0 -0
  81. quarchpy/disk_test/__pycache__/__init__.cpython-311.pyc +0 -0
  82. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-311.pyc +0 -0
  83. quarchpy/docs/CHANGES.rst +10 -0
  84. quarchpy/docs/__pycache__/__init__.cpython-311.pyc +0 -0
  85. quarchpy/docs/__pycache__/conf.cpython-311.pyc +0 -0
  86. quarchpy/docs/_build/doctrees/CHANGES.doctree +0 -0
  87. quarchpy/docs/_build/doctrees/environment.pickle +0 -0
  88. quarchpy/docs/_build/doctrees/index.doctree +0 -0
  89. quarchpy/docs/_build/doctrees/readme.doctree +0 -0
  90. quarchpy/docs/_build/doctrees/source/changelog.doctree +0 -0
  91. quarchpy/docs/_build/doctrees/source/licenses.doctree +0 -0
  92. quarchpy/docs/_build/doctrees/source/modules.doctree +0 -0
  93. quarchpy/docs/_build/doctrees/source/quarchpy.calibration.doctree +0 -0
  94. quarchpy/docs/_build/doctrees/source/quarchpy.config_files.doctree +0 -0
  95. quarchpy/docs/_build/doctrees/source/quarchpy.connection_specific.doctree +0 -0
  96. quarchpy/docs/_build/doctrees/source/quarchpy.debug.doctree +0 -0
  97. quarchpy/docs/_build/doctrees/source/quarchpy.device.doctree +0 -0
  98. quarchpy/docs/_build/doctrees/source/quarchpy.disk_test.doctree +0 -0
  99. quarchpy/docs/_build/doctrees/source/quarchpy.doctree +0 -0
  100. quarchpy/docs/_build/doctrees/source/quarchpy.fio.doctree +0 -0
  101. quarchpy/docs/_build/doctrees/source/quarchpy.iometer.doctree +0 -0
  102. quarchpy/docs/_build/doctrees/source/quarchpy.qis.doctree +0 -0
  103. quarchpy/docs/_build/doctrees/source/quarchpy.qps.doctree +0 -0
  104. quarchpy/docs/_build/doctrees/source/quarchpy.user_interface.doctree +0 -0
  105. quarchpy/docs/_build/doctrees/source/quarchpy.utilities.doctree +0 -0
  106. quarchpy/docs/_build/doctrees/source/readme.doctree +0 -0
  107. quarchpy/docs/_build/html/CHANGES.html +142 -116
  108. quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +20 -1
  109. quarchpy/docs/_build/html/_static/alabaster.css +9 -14
  110. quarchpy/docs/_build/html/_static/basic.css +1 -1
  111. quarchpy/docs/_build/html/_static/pygments.css +1 -1
  112. quarchpy/docs/_build/html/genindex.html +33 -11
  113. quarchpy/docs/_build/html/index.html +65 -62
  114. quarchpy/docs/_build/html/objects.inv +0 -0
  115. quarchpy/docs/_build/html/py-modindex.html +11 -7
  116. quarchpy/docs/_build/html/readme.html +6 -7
  117. quarchpy/docs/_build/html/search.html +6 -7
  118. quarchpy/docs/_build/html/searchindex.js +1 -1
  119. quarchpy/docs/_build/html/source/changelog.html +201 -171
  120. quarchpy/docs/_build/html/source/licenses.html +6 -7
  121. quarchpy/docs/_build/html/source/modules.html +7 -8
  122. quarchpy/docs/_build/html/source/quarchpy.calibration.html +6 -7
  123. quarchpy/docs/_build/html/source/quarchpy.config_files.html +6 -7
  124. quarchpy/docs/_build/html/source/quarchpy.connection_specific.html +9 -8
  125. quarchpy/docs/_build/html/source/quarchpy.debug.html +6 -7
  126. quarchpy/docs/_build/html/source/quarchpy.device.html +81 -12
  127. quarchpy/docs/_build/html/source/quarchpy.disk_test.html +6 -7
  128. quarchpy/docs/_build/html/source/quarchpy.fio.html +34 -9
  129. quarchpy/docs/_build/html/source/quarchpy.html +18 -8
  130. quarchpy/docs/_build/html/source/quarchpy.iometer.html +6 -7
  131. quarchpy/docs/_build/html/source/quarchpy.qis.html +23 -28
  132. quarchpy/docs/_build/html/source/quarchpy.qps.html +8 -9
  133. quarchpy/docs/_build/html/source/quarchpy.user_interface.html +15 -8
  134. quarchpy/docs/_build/html/source/quarchpy.utilities.html +6 -7
  135. quarchpy/docs/_build/html/source/readme.html +6 -7
  136. quarchpy/fio/__pycache__/FIO_interface.cpython-311.pyc +0 -0
  137. quarchpy/fio/__pycache__/__init__.cpython-311.pyc +0 -0
  138. quarchpy/fio/__pycache__/fioDiskFinder.cpython-311.pyc +0 -0
  139. quarchpy/fio/__pycache__/performanceClass.cpython-311.pyc +0 -0
  140. quarchpy/fio/__pycache__/test_performance_class.cpython-311.pyc +0 -0
  141. quarchpy/iometer/__pycache__/__init__.cpython-311.pyc +0 -0
  142. quarchpy/iometer/__pycache__/gen_iometer_template.cpython-311.pyc +0 -0
  143. quarchpy/iometer/__pycache__/iometerFuncs.cpython-311.pyc +0 -0
  144. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-311.pyc +0 -0
  145. quarchpy/qis/__pycache__/__init__.cpython-311.pyc +0 -0
  146. quarchpy/qis/__pycache__/qisFuncs.cpython-311.pyc +0 -0
  147. quarchpy/qis/qisFuncs.py +4 -3
  148. quarchpy/qps/__pycache__/__init__.cpython-311.pyc +0 -0
  149. quarchpy/qps/__pycache__/qpsFuncs.cpython-311.pyc +0 -0
  150. quarchpy/qps/qpsFuncs.py +3 -1
  151. quarchpy/user_interface/__pycache__/__init__.cpython-311.pyc +0 -0
  152. quarchpy/user_interface/__pycache__/user_interface.cpython-311.pyc +0 -0
  153. quarchpy/user_interface/user_interface.py +17 -1
  154. quarchpy/utilities/__pycache__/BitManipulation.cpython-311.pyc +0 -0
  155. quarchpy/utilities/__pycache__/TestCenter.cpython-311.pyc +0 -0
  156. quarchpy/utilities/__pycache__/TimeValue.cpython-311.pyc +0 -0
  157. quarchpy/utilities/__pycache__/Version.cpython-311.pyc +0 -0
  158. quarchpy/utilities/__pycache__/__init__.cpython-311.pyc +0 -0
  159. {quarchpy-2.1.20.dev3.dist-info → quarchpy-2.1.22.dist-info}/METADATA +11 -1
  160. {quarchpy-2.1.20.dev3.dist-info → quarchpy-2.1.22.dist-info}/RECORD +162 -155
  161. quarchpy/.idea/inspectionProfiles/Project_Default.xml +0 -26
  162. quarchpy/connection_specific/QPS/qis/qis_lib/CInterface-1.7.04.jar +0 -0
  163. quarchpy/connection_specific/QPS/qis/qis_lib/QuarchCommon-0.2.6.jar +0 -0
  164. quarchpy/connection_specific/QPS/qis/qis_lib/commons-csv-1.8.jar +0 -0
  165. quarchpy/connection_specific/QPS/qis/qis_lib/commons-lang3-3.2.1.jar +0 -0
  166. quarchpy/connection_specific/QPS/qis/resources/filters/filters.csv +0 -1004
  167. quarchpy/connection_specific/QPS/qis/resources/filters/iec_filters.xml.bak +0 -26
  168. quarchpy/connection_specific/QPS/qps_lib/QuarchCommon-0.2.6.jar +0 -0
  169. quarchpy/connection_specific/QPS/qps_lib/commons-lang3-3.12.0.jar +0 -0
  170. quarchpy/connection_specific/QPS/qps_lib/jfxtras-labs-8.0-r6.jar +0 -0
  171. quarchpy/connection_specific/QPS/qps_lib/opencsv-5.9.jar +0 -0
  172. quarchpy/connection_specific/QPS/qps_lib/qis-1.39.jar +0 -0
  173. quarchpy/connection_specific/connection_QIS.py.bak +0 -1738
  174. quarchpy/debug/TextScanIP.py +0 -11
  175. quarchpy/device/device.py.bak +0 -504
  176. quarchpy/device/quarchPPM.py.bak +0 -67
  177. quarchpy/device/quarchQPS.py.bak +0 -396
  178. quarchpy/device/scanDevices.py.bak +0 -661
  179. quarchpy/docs/CHANGES.rst.bak +0 -364
  180. quarchpy/qps/qpsFuncs.py.bak +0 -231
  181. quarchpy/user_interface/user_interface.py.bak +0 -749
  182. quarchpy/utilities/TestCenter.py.bak +0 -150
  183. {quarchpy-2.1.20.dev3.dist-info → quarchpy-2.1.22.dist-info}/WHEEL +0 -0
  184. {quarchpy-2.1.20.dev3.dist-info → quarchpy-2.1.22.dist-info}/top_level.txt +0 -0
@@ -1,364 +0,0 @@
1
- ====================
2
- Changelog (Quarchpy)
3
- ====================
4
- Quarchpy
5
- --------
6
- *QuarchPy is a python package designed to provide an easy-to-use API which will work seamlessly over any connection option: USB, Serial and LAN. With it, you can create your own scripts for controlling Quarch devices - without having to worry about the low-level code involved with communication.*
7
-
8
- *The package contains all prerequisites needed as a single PyPI project, which can be installed from the python online repository using PIP. This makes it easy to install and update, while also providing you with full access to the source code if you want to make changes or additions.*
9
-
10
- *QuarchPy can also communicate to the device via QIS (Quarch Instrument Server), QPS (Quarch Power Studio), or simply using Python scripts. Both QIS and QPS are included with the QuarchPy Package - they are ready to use (Java and drivers may also be needed).*
11
-
12
-
13
- Change Log
14
- ----------
15
-
16
- 2.1.19
17
- ------
18
- - Imporoved QIS streaming
19
- - Bug fixes
20
- - Added zeroconf, numpy and pandas as requirements
21
-
22
- 2.1.17
23
- ------
24
- - Improved QIS QPS launching on Linux sytems
25
- - System debug for linux systems
26
-
27
- 2.1.16
28
- ------
29
- - FIO mb/s parsing
30
- - Improved QIS QPS launching
31
-
32
- 2.1.15
33
- ------
34
- - minor bug fix
35
-
36
- 2.1.14
37
- ------
38
- - minor bug fixes and logging improvements.
39
-
40
- 2.1.13
41
- ------
42
- - New QPS v1.36
43
- - New QIS v1.39
44
- - minor bug fixes and logging improvements.
45
-
46
- 2.1.12
47
- ------
48
- - New QPS v1.35
49
- - New QIS v1.38
50
- - minor bug fixes and removal of depracated code.
51
-
52
- 2.1.11
53
- ------
54
- - New QPS v1.32
55
- - New QIS v1.37
56
- - quarchpy.run module_debug added for checking state of module and DUT
57
-
58
- 2.1.10
59
- ------
60
- - New QPS v1.29
61
- - New QIS v1.33
62
-
63
- 2.1.8
64
- -----
65
- - New QPS v1.28
66
-
67
- 2.1.7
68
- -----
69
- - New QPS v1.27
70
- - New QIS v1.32
71
-
72
- 2.1.6
73
- -----
74
- - New QPS v1.26
75
- - New QIS v1.31
76
-
77
- 2.1.5
78
- -----
79
- - New QPS v1.24
80
-
81
- 2.1.4
82
- -----
83
- - New QPS v1.23
84
- - New QIS v1.29
85
-
86
- 2.1.3
87
- -----
88
- - New QPS v1.22
89
- - modules on the network can now be connected to using conType:QTLNumber eg. TCP:QTL1999-02-001.
90
- - fixed QIS not closing with QPS when launch with by QPS
91
- - closeConnection added to QIS api
92
- - display table formats multiline items and handles empty cells
93
-
94
- 2.1.2
95
- -----
96
- - QPS v1.20
97
- - QIS v1.19
98
-
99
- 2.1.1
100
- -----
101
- - Seperation of QIS module scan and QIS select device
102
- - Added getQuarchDevice which is a wrapper around quarchDevice that allows connections to sub-devices in array controllers over all connection types
103
- - Version compare updated to use __version__ rather than pkg_resources
104
- - Seperated the SystenTest (debug_info) into seperate parts with flags to allow the user to skip certain parts. This allows the test to be run without user interaction of selecting a module.
105
-
106
-
107
- 2.1.0
108
- -----
109
- - logging improvements
110
- - usb locked devices fix for CentOS, Ubuntu, and Fedora
111
-
112
- 2.0.22
113
- ------
114
- - Calibration and QCS removed from quarchpy and are not in their own packages
115
- - New command "python -m quarchpy.run debug -usbfix" sets USB rules to fix quarch modules appearing as locked devices on Linux OS
116
-
117
- 2.0.21
118
- ------
119
- - new QIS v1.23
120
-
121
- 2.0.20
122
- ------
123
- - New modules added to calibration, wiring prompt added, logging improvements
124
- - Fixes for PAM streaming using QIS
125
- - Added Quarchpy.run list_drives
126
- - Improved communication for connection_QPS
127
- - Improved QCS debugging
128
- - Reworked QCS drive detection for upcoming custom drive detection
129
- - "quarchpy.run list_drives" command added
130
-
131
-
132
- 2.0.19
133
- ------
134
- - QPS v1.17
135
- - Quarchpy run terminal runs the simple python terminal to talk to modules
136
- - Scan Specific IP address for Quarch module via QIS/QPS added
137
- - Updated performance class for new QCS tests
138
- - Fixed Centos QCS drive selection bug
139
- - Improved QCS connection classes
140
- - Improved features for QCS
141
- - Minor bug fixes
142
-
143
- 2.0.18
144
- ------
145
- - QPS 1.13
146
- - Iomenter drive location bugfix
147
- - Units added to stats export from QPS
148
- - Changed QCS tests to work off of a python format
149
- - Updated drive detection in QCS
150
- - Updated communication to TLS
151
-
152
- 2.0.16
153
- ------
154
- - QPS 1.11
155
-
156
- 2.0.15
157
- ------
158
- - QIS v1.19.03 and QPS 1.10.12
159
- - Updated debug info test
160
- - Snapshots and stats from QPS functions added
161
- - Calibration updates
162
-
163
- 2.0.14
164
- ------
165
- - QPS annotations through quarchpy improvements
166
-
167
- 2.0.13
168
- ------
169
- - Python2 bug fixes
170
- - UI tidy up
171
- - New custom annotations and comments QPS API
172
-
173
- 2.0.12
174
- ------
175
- - Fixed issue with array module scan over UDP outside of subnet
176
- - Bug fix for HD connection via USB in linux
177
- - Added headless launch of QIS
178
- - Added Shinx auto documentation
179
- - Fixed issue with USB command response timeout in longer QCS tests
180
- - Fixed issue where UDP locate parser was using the legacy header, not the quarch fields
181
- - Improved qurchpy.run oarsing and help generation
182
- - Fixed syntax warnings for string literal comparisons
183
- - Calibration wait for specific module uptime and report file updates
184
-
185
- 2.0.11
186
- ------
187
- - Improved list selection for devices
188
- - Fixed bug when scanning for devices within an Array
189
- - Module detection fixes for QCS and PAM/Rev-B HD
190
- - Clean up of calibration switchbox code and user logging
191
-
192
- 2.0.10
193
- ------
194
- - QCS server logging cleaned up
195
- - Additional platform tests added to debug_info test
196
- - Cleaned up print() statements and replaced with logging calls
197
- - Help message added to quarchpy.run command
198
- - Module detection fixes for QCS
199
- - Improved calibration prompts
200
- - Added initial calibration stubs for the PAM
201
- - QCS improvements to linux drive enumeration tests
202
-
203
- 2.0.9
204
- -----
205
- - Significant QCS additions including power testing
206
- - Added remote switchbox to calibration utility
207
- - Various minor bug fixes and improvements to calibration utility
208
-
209
- 2.0.8
210
- -----
211
- - Added readme.md for PyPi description
212
- - Fixed bug in QIS when checking if QIS is running
213
- - Various minor additions for QCS
214
-
215
- 2.0.7
216
- -----
217
- - Changes since 2.0.2
218
- - Minor bug fixes
219
- - Calibration Changes
220
- - QIS folder gone, QIS now in QPS only
221
- - Run package added
222
- - Update quarchpy added
223
- - SystemTest improvements
224
- - UI changes, input validation, smart port select
225
-
226
- 2.0.2
227
- -----
228
- - UI Package added
229
- - Connection over TCP for python added
230
- - Logging on devices
231
- - Drive test core added
232
-
233
- 2.0.0
234
- -----
235
- - Major folder restructure
236
- - Added test center support
237
- - Detected streaming devices
238
- - Added latest qps1.09 and qis
239
- - Minor bug fixes
240
-
241
- 1.8.0
242
- -----
243
-
244
- - Tab to white space convert
245
- - Updated __init__ file to co-allign with python practices
246
- - Updated project structure
247
- - Added documents for changes and Script Locations
248
- - Disk selection update
249
- - Compatibility with Python 3 and Linux Improved!
250
-
251
- 1.7.6
252
- -----
253
-
254
- - Fixes bug with usb connection
255
-
256
- 1.7.5
257
- -----
258
- - Fixed USB DLL Compatibility
259
- - Fixed potential path issues with Qis and Qps open
260
-
261
- 1.7.4
262
- -----
263
-
264
- - Updated to QPS 1.08
265
-
266
- 1.7.3
267
- -----
268
-
269
- - Additional Bug Fixes
270
-
271
- 1.7.2
272
- -----
273
-
274
- - Bug fixing timings for QIS (LINUX + WINDOWS)
275
-
276
- 1.7.1
277
- -----
278
-
279
- - Updated FIO for use with Linux and to allow arguments without values
280
- - Fixes path problem on Linux
281
- - Fixes FIO on Linux
282
-
283
- 1.7.0
284
- -----
285
-
286
- - Improved compatability with Windows and Ubuntu
287
-
288
- 1.6.1
289
- ------
290
-
291
- - Updating USB Scan
292
- - Adding functionality to specify OS bit architecture (windows)
293
-
294
- 1.6.0
295
- -----
296
- - custom $scan IP
297
- - fixes QIS detection
298
- - implements custom separator for stream files
299
- - Bug fix - QIS Load
300
-
301
- 1.5.4
302
- -----
303
-
304
- - Updating README and LICENSE
305
-
306
- 1.5.2
307
- -----
308
-
309
- - Bug Fix - Case sensitivity issue with devices
310
-
311
- 1.5.1
312
- -----
313
-
314
- - Additional Bug Fixes
315
-
316
- 1.5.0
317
- -----
318
-
319
- - Integration with FIO
320
- - Additional QPS functionality
321
- - Added device search timeout
322
-
323
- 1.4.1
324
- -----
325
-
326
- - Fixed the wmi error when importing quarchpy.
327
-
328
- 1.4.0
329
- ---
330
-
331
- - Integration with QPS
332
- - supports Iometer testing
333
- - Additional fixes for wait times
334
-
335
- 1.3.4
336
- -----
337
-
338
- - Implemented resampling and a better way to launch QIS from the script.
339
-
340
- 1.3.3
341
- -----
342
-
343
- - Implements isQisRunning
344
- - Implements qisInterface
345
- - Changes startLocalQIS to startLocalQis
346
- - Fixes a bug in QIS interface listDevices that didn't allow it to work with Python 3
347
-
348
- 1.3.2
349
- -----
350
-
351
- - Bug Fix running QIS locally
352
-
353
- 1.3.1
354
- -----
355
-
356
- - Implements startLocalQIS
357
- - Packs QIS v1.6 - fixes the bugs with QIS >v1.6 and multiple modules
358
- - Updates quarchPPM (connection_specific)
359
- - Compatible with x6 PPM QIS stream.
360
-
361
- 1.2.0
362
- -----
363
-
364
- - Changes to object model
@@ -1,231 +0,0 @@
1
- import os, sys
2
- import datetime
3
- import time, platform
4
- from quarchpy.qis import isQisRunning, startLocalQis
5
- from quarchpy.connection_specific.connection_QIS import QisInterface
6
- from quarchpy.connection_specific.connection_QPS import QpsInterface
7
- from quarchpy.user_interface import *
8
- import subprocess
9
- import logging
10
-
11
-
12
- def isQpsRunning(host='127.0.0.1', port=9822, timeout=0):
13
- '''
14
- This func will return true if QPS is running with a working QIS connection. This is becuase
15
- '''
16
- myQps=None
17
- logging.debug("Checking if QPS is running")
18
- start = time.time()
19
- while True:
20
- try:
21
- myQps = QpsInterface(host, port)
22
- break
23
- except Exception as e:
24
- logging.debug("Error when making QPS interface. QPS may not be running.")
25
- logging.debug(e)
26
- if (time.time() - start) > timeout:
27
- break
28
- if myQps is None:
29
- logging.debug("QPS is not running")
30
- return False
31
-
32
- logging.debug("Checking if QPS reports a QIS connection") # "$qis status" returns connected if it has ever had a QIS connection.
33
- answer=0
34
- counter=0
35
- while True:
36
- answer = myQps.sendCmdVerbose(cmd="$qis status")
37
- if answer.lower()=="connected":
38
- logging.debug("QPS Running With QIS Connected")
39
- break
40
- else:
41
- logging.debug("QPS Running QIS NOT found. Waiting and retrying.")
42
- time.sleep(0.5)
43
- counter += 1
44
- if counter > 5:
45
- logging.debug("QPS Running QIS NOT found after "+str(counter)+" attempts.")
46
- return False
47
-
48
- logging.debug("Checking if QPS/QIS comms are running")
49
- start = time.time()
50
- while True:
51
- try:
52
- answer = myQps.sendCmdVerbose(cmd="$list")
53
- break
54
- except:
55
- pass
56
- if (time.time() - start) > timeout:
57
- break
58
-
59
- # check for a 1 showing the first module to be displayed, or a no module/device error message.
60
- if answer[0] == "1" or "no device" in str(answer).lower() or "no module" in str(answer).lower():
61
- logging.debug("QPS and QIS are running and responding with valid $list info")
62
- return True
63
- else:
64
- logging.debug("QPS did not return expected output from $list")
65
- logging.debug("$list: " + str(answer))
66
- return False
67
-
68
-
69
- def startLocalQps(keepQisRunning=False, args=[]):
70
- if keepQisRunning:
71
- if not isQisRunning():
72
- startLocalQis()
73
- temp =""
74
- args = temp.join(args)
75
-
76
- QpsPath = os.path.dirname(os.path.abspath(__file__))
77
- QpsPath, junk = os.path.split(QpsPath)
78
- QpsPath = os.path.join(QpsPath, "connection_specific", "QPS", "qps.jar")
79
-
80
- current_direc = os.getcwd()
81
-
82
- os.chdir(os.path.dirname(QpsPath))
83
-
84
- command = "-jar \"" + QpsPath + "\""
85
-
86
- currentOs = platform.system()
87
-
88
- if currentOs in "Windows":
89
- if "-logging=ON" not in str(args):
90
- command = "start /high /b javaw -Djava.awt.headless=true " + command + " " + str(args)
91
- else:
92
- command = "java " + command + " " + str(args)
93
- # command = "start /high /b javaw -Djava.awt.headless=true " + command + " " + str(args) # Running application with this method seems to prevent QPS from logging to terminal
94
- # command = command + " -ccs=HIDE" # note: multiple -ccs options ignored
95
- os.system(command)
96
- elif currentOs in "Linux":
97
- command = command + "-ccs=HIDE"
98
- if sys.version_info[0] < 3:
99
- os.popen2("java " + command + " 2>&1")
100
- else:
101
- os.popen("java " + command + " 2>&1")
102
- else: # default to Windows
103
- command = "start /high /b javaw -Djava.awt.headless=true " + command + " " + str(args)
104
- command = command + " -ccs=HIDE"
105
- os.system(command)
106
-
107
- while not isQpsRunning():
108
- time.sleep(0.3)
109
- pass
110
-
111
- os.chdir(current_direc)
112
-
113
-
114
- def closeQps(host='127.0.0.1', port=9822):
115
- myQps = QpsInterface(host, port)
116
- myQps.sendCmdVerbose("$shutdown")
117
- del myQps
118
- time.sleep(1) #needed as calling "isQpsRunning()" will throw an error if it ties to connect while shutdown is in progress.
119
-
120
- def GetQpsModuleSelection(QpsConnection, favouriteOnly=True, additionalOptions=['rescan', 'all con types', 'ip scan'], scan=True):
121
- favourite = favouriteOnly
122
- ip_address = None
123
- while True:
124
- printText("QPS scanning for devices")
125
- tableHeaders = ["Module"]
126
- # Request a list of all USB and LAN accessible power modules
127
- if ip_address == None:
128
- devList = QpsConnection.getDeviceList(scan=scan)
129
- else:
130
- devList = QpsConnection.getDeviceList(scan=scan, ipAddress=ip_address)
131
- if "no device" in devList[0].lower() or "no module" in devList[0].lower():
132
- favourite = False # If no device found conPref wont match and will bugout
133
-
134
- # Removes rest devices
135
- devList = [x for x in devList if "rest" not in x]
136
- message = "Select a quarch module"
137
-
138
- if (favourite):
139
- index = 0
140
- sortedDevList = []
141
- conPref = ["USB", "TCP", "SERIAL", "REST", "TELNET"]
142
- while len(sortedDevList) != len(devList):
143
- for device in devList:
144
- if conPref[index] in device.upper():
145
- sortedDevList.append(device)
146
- index += 1
147
- devList = sortedDevList
148
-
149
- # new dictionary only containing one favourite connection to each device.
150
- favConDevList = []
151
- index = 0
152
- for device in sortedDevList:
153
- if (favConDevList == [] or not device.split("::")[1] in str(favConDevList)):
154
- favConDevList.append(device)
155
- devList = favConDevList
156
-
157
- if User_interface.instance != None and User_interface.instance.selectedInterface == "testcenter":
158
- tempString = ""
159
- for module in devList:
160
- tempString+=module+"="+module+","
161
- devList = tempString[0:-1]
162
-
163
-
164
- myDeviceID = listSelection(title=message, message=message, selectionList=devList,
165
- additionalOptions=additionalOptions, nice=True, tableHeaders=tableHeaders, indexReq=True)
166
-
167
- if myDeviceID in 'rescan':
168
- ip_address = None
169
- favourite = True
170
- continue
171
- elif myDeviceID in 'all con types':
172
- printText('Displaying all conection types...')
173
- favourite = False
174
- continue
175
- elif myDeviceID in 'ip scan':
176
- ip_address = requestDialog("Please input IP Address of the module you would like to connect to: ")
177
- favourite = False
178
- continue
179
- else:
180
- return myDeviceID
181
-
182
-
183
-
184
-
185
- '''
186
- Legacy function to handle old scripts which call an adjustTime function to get QPS format time.
187
- This is now done in the QPS module level, so this function returns a integer linux millisecond value
188
- as per the old one
189
- '''
190
-
191
-
192
- def legacyAdjustTime(timestamp):
193
- return timestamp
194
-
195
-
196
- '''
197
- Simple function to convert a timestamp or Python datetime object into QPS format time
198
- QPS requires time in mS with no decimal point, so this is converted here
199
- '''
200
-
201
-
202
- def toQpsTimeStamp(timestamp):
203
- """
204
- DEPRICATED - QPS expects time passed as a sring and error hadling is done in QPS.
205
- Returns the parameter passed as a valid qps timestamp
206
- Assumes
207
-
208
- # 1620817118182 - ACCEPTED value for QPS - Milliseconds, 13 chars
209
-
210
- # 1620817126 - time.time() Value - Seconds
211
-
212
- :param int/float/datetime: Timestamp, mS
213
- :return: int : QPS valid time, mS
214
- """
215
-
216
- # Python datetime object
217
- if (type(timestamp) is datetime):
218
- newTime = time.mktime(timestamp.timetuple())
219
- return int(newTime * 1000)
220
- # If numeric, assume standard unix time in milliseconds
221
- elif (type(timestamp) is float or type(timestamp) is int):
222
- return int(timestamp)
223
- else:
224
- # Try if its a numeric value string first (assumed to be milliseconds)
225
- try:
226
- timestamp = float(timestamp)
227
- return int(timestamp)
228
- # Fall back to assuming a standard format time string
229
- except:
230
- newTime = time.mktime(datetime.datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S:%f").timetuple())
231
- return int(newTime * 1000)