tektronix / tm_devices Goto Github PK
View Code? Open in Web Editor NEWTest & Measurement Device Management
Home Page: https://tm-devices.readthedocs.io/stable/
License: Apache License 2.0
Test & Measurement Device Management
Home Page: https://tm-devices.readthedocs.io/stable/
License: Apache License 2.0
Arguments data type is mismatched in the following APIs:
Models affected: Keithley SMU 2450|2451|2460|2470 Source Measure Units.
API | PI | Comments |
---|---|---|
smu.commands.buffer.write.format() | buffer.write.format() | String argument mapped to integer. |
smu.commands.buffer.make() | buffer.make() | Return type is a table instead of a variable. |
Create a driver object named "smu" for any of the affected models.
Use the "smu" driver object to write and query the above-mentioned APIs.
Examples:
smu.commands.buffer.write.format()
smu.commands.buffer.make()
Error: There is a mismatch in the data type of one of the arguments and return type is a table instead of a variable.
Operating System:
Software Version:
Alternative way to make the API functional as expected:
buffervar1 = smu.write("buffer.make(200, buffer.STYLE_FULL)")
smu.write("buffer.write.format(extBuffer, buffer.UNIT_WATT, buffer.DIGITS_3_5)")
We've noticed this import error upon from tm_devices import DeviceManager
on Intel core I5 Macs with the Ventura 13.4 operating system
Error Domain=KMErrorDomain Code=71 "Insufficient permissions for action: Unable to load 'com.highpoint-tech.kext.HighPointIOP' in unprivileged request." UserInfo={NSLocalizedDescription=Insufficient permissions for action: Unable to load 'com.highpoint-tech.kext.HighPointIOP' in unprivileged request.}
python3
to start the Python CLIfrom tm_devices import DeviceManager
Python 3.11
No response
The ReadtheDocs servers only have 8GB of memory available. Building the docs for this package use more memory than that due to the large API.
Here is a script that can be used (at least on Windows) to track memory usage during the documentation build process.
"""Build the documentation and monitor memory usage."""
import os
import pathlib
import shutil
import threading
import time
from sphinx.application import Sphinx
import psutil
# os.environ["SKIP_TM_DEVICES_API_GENERATION"] = "true"
def monitor_memory():
max_mem = 0
thread_max_mem = 0
while True:
mem = psutil.virtual_memory().percent
if mem > max_mem:
max_mem = mem
process = psutil.Process()
thread_mem = process.memory_info().rss / 1024 / 1024 # memory usage of the process in MB
if thread_mem > thread_max_mem:
thread_max_mem = thread_mem
print(
# f"Current memory usage: {mem}%"
# f" | "
# f"Max memory usage: {max_mem}%"
# f" | "
f"Max thread memory usage: {thread_max_mem:.2f} MB"
# f" | "
# f"Total memory usage: {psutil.virtual_memory().used / 1024 / 1024:.2f} MB"
,
end="\r",
flush=True
)
time.sleep(0.5)
if __name__ == "__main__":
# create a new thread and start running the memory monitoring script
memory_monitor_thread = threading.Thread(target=monitor_memory, daemon=True)
memory_monitor_thread.start()
start_dir = os.getcwd()
docs_dir = os.path.dirname(__file__) + "/docs"
os.chdir(docs_dir)
shutil.rmtree(f"{docs_dir}/_build", ignore_errors=True)
shutil.rmtree(f"{docs_dir}/_autoapi", ignore_errors=True)
start_time = time.perf_counter()
# cmd = f"{sys.executable} -m sphinx -b html -W --keep-going . _build"
try:
app = Sphinx(
srcdir=pathlib.Path("."),
confdir=pathlib.Path("."),
outdir=pathlib.Path("_build/html"),
buildername="html",
doctreedir=pathlib.Path("_build/html/.doctrees"),
warningiserror=True,
keep_going=True,
status=None,
)
app.build()
finally:
total_time = time.perf_counter() - start_time
total_min, total_sec = divmod(total_time, 60)
print(f"\n\nFinished building docs in {total_min} minutes and {total_sec:.4f} seconds")
os.chdir(start_dir)
No response
Timeout Error on Subsequent USB TMC Connections to the Oscilloscope.
Affected Model: MSO 4 series Oscilloscopes.
The API behaves as expected during the initial connection; however, upon subsequent USB TMC connections to the oscilloscope, an unexpected timeout error occurs, contrasting with the behavior observed in connections through PyVisa.
scope.commands.idn.query()
Operating System:
Software Version:
Connection type
Note:
This error arises during the execution of consecutive scripts, not in the context of successive API calls.
Encountering issues connecting to the scope through the VISA resource string via a socket port, while successfully establishing a connection by specifying the port in the "add_scope()" function.
Connect to the scope via Socket by passing the VISA Resource string in add_scope() function. (TCPIP::Model-Serial::port_no::SOCKET")
Connect to the scope via Socket by passing the port number as a parameter to the add_scope() function.
It works.
Operating_system: Windows
tm_device version: 1.1.0
MSO6B Oscilloscope
No response
APIs with the Query function missing for the following list of PI commands.
Models affected: MSO 2|4|5|6 series Oscilloscopes.
API | PI command |
---|---|
scope.commands.measurement.meas[x].smoothingfilter.query() | MEASUrement:MEAS:SMOOTHINGFILTER? |
scope.commands.measurement.edge[x].query() | MEASUrement:EDGE? |
scope.commands.measurement.meas[x].edge[x].query() | MEASUrement:MEAS:EDGE? |
scope.commands.measurement.meas[x].gating.logicsource.query() | MEASUrement:MEAS:GATing:LOGICSource? |
scope.commands.measurement.meas[x].gating.searchsource.query() | MEASUrement:MEAS:GATing:SEARCHSource? |
scope.commands.measurement.meas[x].label.query() | MEASUrement:MEAS:LABel? |
scope.commands.measurement.meas[x].perfreq.edge.query() | MEASUrement:MEAS:PERFREQ:EDGE? |
scope.commands.measurement.meas[x].transition.query() | MEASUrement:MEAS:TRANSition? |
scope.commands.measurement.ref[x].reflevels.basetop.query() | MEASUrement:REF:REFLevels:BASETop? |
scope.commands.math.math[x].interpolation.query() | MATH:MATH:INTERpolation? |
scope.commands.search.search[x].trigger.a.state.query() | SEARCH:SEARCH:TRIGger:A:STATE? |
scope.commands.search.selected.query() | SEARCH:SELected? |
scope.commands.search.search[x].trigger.a.bus.can.data.value.query() | SEARCH:SEARCH:TRIGger:A:BUS:CAN:DATa:VALue? |
Models affected: DPO/MSO/DSA 70K SX/DX/C series Oscilloscopes.
API | PI Command |
---|---|
scope.commands.zoom.mode.query() | ZOOm:MODe? |
scope.commands.mch[x].maxamplitude.query() | MCH:MAXAMPLitude? |
scope.commands.mch[x].minamplitude.query() | MCH:MINAMPLitude? |
scope.commands.custom.gate.source.query() | CUSTOM:GATE:SOUrce? |
scope.commands.custom.gate.start.query() | CUSTOM:GATE:START? |
scope.commands.custom.gate.width.query() | CUSTOM:GATE:WIDth? |
scope.commands.custom.select.gate.query() | CUSTOM:SELECT:GATE? |
scope.commands.errordetector.signaltype.query() | ERRORDetector:SIGnaltype? |
Create a driver object named "scope" for any of the affected models.
Use the "scope" driver object to query the above-mentioned APIs.
Examples:
scope.commands.search.search[1].trigger.a.state.query()
scope.commands.math.math[1].function.query()
Error message: The object has no attribute 'query'.
Operating System:
Software Version:
Alternative way to make the query is as follows:
Examples:
scope.query("ZOOm:MODe?")
scope.query("DISplay:GLObal:B<x>:STATE?")
Following list of APIs are not working as expected:
Models applicable :
MSO 2|4|5|6 series Oscilloscopes.
API | PI |
---|---|
Models applicable to:
DPO/MSO/DSA 70K SX/DX/C series Oscilloscopes.
API | PI |
---|---|
scope.commands.linktraining.lane.query() | LINKTRaining:LANE |
scope.commands.cq[x].threshold.query() | CQ:THRESHold |
scope.commands.cq[1].threshold.query()
scope.commands.linktraining.lane.query()
Operating System:
Software Version:
Alternative way to make the API functional as expected:
Examples:
scope.query("LINKTRaining:LANE1?")
Now that Python 3.12 is officially released, tm_devices
should be updated to support it.
The online documentation is currently unavailable. The readthedocs link takes you to a 404 Not Found page.
No response
No response
Would like to request for quick implementation of DPO 7k driver since there is already DPO 7kc driver in the library :)
No response
I am not able to launch more than one time a script with my Keithley2450 connected through LAN.
in __clear_visa_output_buffer_and_get_idn
raise SystemError(error_msg)
visa_resource = <'TCPIPInstrument'('TCPIP0::192.168.XXX.YYY::inst0::INSTR')>
idn_response = ''
error_msg = "VI_ERROR_ABORT (-1073807312): User abort occurred during transfer.\n\tUnable to read data after 2s.\n\t\n\tPlease reboot or read/clear the VISA output buffer on your device and try again."
old_timeout = 2000
builtins.SystemError: VI_ERROR_ABORT (-1073807312): User abort occurred during transfer.
Unable to read data after 2s.
Please reboot or read/clear the VISA output buffer on your device and try again.
No response
The glossary links on the home page of the documentation hosted on ReadtheDocs don't take you to the glossary entry. Instead, they take you to the 404 page.
No response
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.