Package: pymso5000-tspspi
Rigol MSO5xxx oscilloscope Python library (unofficial)A simple Python library and utility to control and query data from
Rigol MSO5xxx oscilloscopes (not supporting all features of the oscilloscope,
work in progress). This library implements theOscilloscopeclass from
thepylabdevspackage which
exposes the public interface.Patches for raw mode sample query byMasterJubeiInstallingThere is a PyPi package that can be installed usingpip install pymso5000-tspspiSimple example to fetch waveforms:from pymso5000.mso5000 import MSO5000

with MSO5000(address = "10.0.0.123") as mso:
   print(f"Identify: {mso.identify()}")

   mso.set_channel_enable(0, True)
   mso.set_channel_enable(1, True)

   data = mso.query_waveform((0, 1))
   print(data)

   import matplotlib.pyplot as plt
   plt.plot(data['x'], data['y0'], label = "Ch1")
   plt.plot(data['x'], data['y1'], label = "Ch2")
   plt.show()Note thatnumpyusage is optional for this implementation.
One can enable numpy support usinguseNumpy = Truein the
constructor.Querying additional statisticsThis module allows - via thepylabdevsbase class to query
additional statistics:meanCalculates the mean values and standard deviationsA single value for each channels mean at["means"]["yN_avg"]and a single value for each standard deviation at["means"]["yN_std"]whereNis the channel numberfftruns Fourier transform on all queried tracesThe result is stored in["fft"]["yN"](complex values) and
in["fft"]["yN_real"]for the real valued Fourier transform.
AgainNis the channel numberifftruns inverse Fourier transform on all queried tracesWorks asfftbut runs the inverse Fourier transform and stores
its result inifftinstead offftcorrelatecalculates the correlation between all queried
waveform pairs.The result of the correlations are stored in["correlation"]["yNyM"]for the correlation between channelsMandNautocorrelateperforms calculation of the autocorrelation of each
queried channel.The result of the autocorrelation is stored in["autocorrelation"]["yN"]for channelNTo request calculation of statistics pass the string for the
desired statistic or a list of statistics to thestatsparameter ofquery_waveform:with MSO5000(address = "10.0.0.123") as mso:
	data = mso.query_waveform((1,2), stats = [ 'mean', 'fft' ])Supported methodsMore documentation in progress ...identify()Connection management (when not usingwithcontext management):connect()disconnect()set_channel_enable(channel, enabled)is_channel_enabled(channel)set_sweep_mode(mode)get_sweep_mode()set_trigger_mode(mode)get_trigger_mode()force_trigger()set_timebase_mode(mode)get_timebase_mode()set_run_mode(mode)get_run_mode()set_timebase_scale(secondsPerDivision)get_timebase_scale()set_channel_coupling(channel, couplingMode)get_channel_coupling(channel)set_channel_probe_ratio(channel, ratio)get_channel_probe_ratio(channel)set_channel_scale(channel, scale)get_channel_scale(channel)query_waveform(channel, stats = None)off()CLI fetching utilityThis package comes with amso5000fetchcommand line utility. This utility
allows one to simply fetch one or more traces and store them either inside an npz
or a matplotlib plot. In addition it can run all of thepylabdevsstatistics
functions (currently no plot, only stored in the npz) and execute manually assisted
differential scans.Help for this utility is available viamso5000fetch --help