LibreVNA/Documentation/UserManual/SCPI_Examples/retrieve_trace_data.py
2022-11-20 20:48:36 +01:00

50 lines
1.3 KiB
Python

#!/usr/bin/env python3
import time
from libreVNA import libreVNA
# Create the control instance
vna = libreVNA('localhost', 19542)
# Quick connection check (should print "LibreVNA-GUI")
print(vna.query("*IDN?"))
# Make sure we are connecting to a device (just to be sure, with default settings the LibreVNA-GUI auto-connects)
vna.cmd(":DEV:CONN")
dev = vna.query(":DEV:CONN?")
if dev == "Not connected":
print("Not connected to any device, aborting")
exit(-1)
else:
print("Connected to "+dev)
# Simple trace data extraction
# switch to VNA mode, setup the sweep parameters
print("Setting up the sweep...")
vna.cmd(":DEV:MODE VNA")
vna.cmd(":VNA:SWEEP FREQUENCY")
vna.cmd(":VNA:STIM:LVL -10")
vna.cmd(":VNA:ACQ:IFBW 100")
vna.cmd(":VNA:ACQ:AVG 1")
vna.cmd(":VNA:ACQ:POINTS 501")
vna.cmd(":VNA:FREQuency:START 2000000000")
vna.cmd(":VNA:FREQuency:STOP 3500000000")
# wait for the sweep to finish
print("Waiting for the sweep to finish...")
while vna.query(":VNA:ACQ:FIN?") == "FALSE":
time.sleep(0.1)
# grab the data of trace S11
print("Reading trace data...")
data = vna.query(":VNA:TRACE:DATA? S11")
# Returned data is just a string containing all the measurement points.
# Parsing the data returns a list containing frequency/complex tuples
S11 = vna.parse_VNA_trace_data(data)
for x in S11:
print(x)