Examples
For more examples, visit our Rohde & Schwarz Github repository.
"""
# GitHub examples repository path: CMXP/Python/RsCmxp_xxx_ScpiPackages
Example on how to use the python RsCmx auto-generated instrument drivers for
RsCmpx_Base and RsCmpx_Gprf (Base and GPRF) in one script with shared VISA session.
"""
from RsCMPX_Base.RsCMPX_Base import RsCMPX_Base # install from pypi.org
from RsCMPX_Base import enums as base_enums
from RsCMPX_Base import repcap as base_repcap
from RsCMPX_Gprf.RsCMPX_Gprf import RsCMPX_Gprf # install from pypi.org
from RsCMPX_Gprf.CustomFiles.reliability import ReliabilityEventArgs
from RsCMPX_Gprf import enums as gprf_enums
from RsCMPX_Gprf import repcap as gprf_repcaps
# CMX Base init
cmx_base = RsCMPX_Base('TCPIP::10.112.1.116', False, True)
print(f'CMX Base IND: {cmx_base.utilities.idn_string}')
print(f'CMX Instrument options:\n{",".join(cmx_base.utilities.instrument_options)}')
cmx_base.utilities.visa_timeout = 5000 # default is 10000
# Sends OPC after each command
cmx_base.utilities.opc_query_after_write = False
# Checks for syst:err? after each command / query - default value after init is True
cmx_base.utilities.instrument_status_checking = True
# Self-test
self_test = cmx_base.utilities.self_test()
print(f'CMW self-test result: {self_test} - {"Passed" if self_test[0] == 0 else "Failed"}"')
# Reference Frequency Source
cmx_base.system.reference.frequency.source_set(base_enums.SourceIntExt.INTernal)
# CMX RsCMPX_Gprf Init - reuse the session of the cmx_base, rather than creating another one
cmx_gprf = RsCMPX_Gprf.from_existing_session(cmx_base)
cmx_gprf.utilities.visa_timeout = 5000
# Driver's Interface reliability offers a convenient way of reacting on the return value Reliability Indicator
cmx_gprf.reliability.ExceptionOnError = True # default is 10000
# Callback to use for the reliability indicator update events
def my_reliability_handler(event_args: ReliabilityEventArgs):
print(f'GPRF Reliability updated.\nContext: {event_args.context}\nMessage: {event_args.message}')
# We register a callback for each change in the reliability indicator
cmx_gprf.reliability.on_update_handler = my_reliability_handler
# You can obtain the last value of the returned reliability
print(f"\nReliability last value: {cmx_gprf.reliability.last_value}, context '{cmx_gprf.reliability.last_context}', message: {cmx_gprf.reliability.last_message}")
# Close the sessions
cmx_gprf.close()
cmx_base.close()