msl.equipment.resources.picotech.picoscope.picoscope module
Base class for a PicoScope from Pico Technology.
- msl.equipment.resources.picotech.picoscope.picoscope.enumerate_units()[source]
Find the PicoScopes that are connected to the computer.
This function counts the number of PicoScopes connected to the computer, and returns a list of serial numbers as a string.
Note
You cannot call this function after you have opened a connection to a PicoScope.
- class msl.equipment.resources.picotech.picoscope.picoscope.PicoScope(record, func_ptrs)[source]
Bases:
ConnectionSDK
Use the PicoScope SDK to communicate with the oscilloscope.
The
properties
for a PicoScope connection supports the following key-value pairs in the Connections Database:'open': bool, Whether to open the connection synchronously [default: True] 'open_async': bool, Whether to open the connection asynchronously [default: False] 'auto_select_power': bool, For devices that can be powered by an AC adaptor or a USB cable [default: True] 'resolution': str, Only valid for ps5000a [default: '8bit']
The SDK version that was initially used to create this base class and the PicoScope subclasses was Pico Technology SDK 64-bit v10.6.10.24
Do not instantiate this class directly. Use the
connect()
method to connect to the equipment.- Parameters:
record (
EquipmentRecord
) – A record from an Equipment-Register Database.func_ptrs (
functions
) – The appropriate function-pointer list for the SDK.
- property channel
The information about each channel.
- Type:
- property pre_trigger
The number of seconds that data was acquired for before the trigger event.
- Type:
- get_unit_info(info=None, include_name=True)[source]
Retrieves information about the PicoScope.
This function retrieves information about the specified oscilloscope. If the device fails to open, or no device is opened only the driver version is available.
- Parameters:
info (
PicoScopeInfoApi
,PS2000Info
orPS3000Info
, optional) – An enum value, or ifNone
then request all information from the PicoScope. The enum depends on the model number of the PicoScope that you are connected to.include_name (
bool
, optional) – IfTrue
then includes the enum member name as a prefix. For example, returns'CAL_DATE: 09Aug16'
if include_name isTrue
else'09Aug16'
.
- Returns:
str
– The requested information from the PicoScope.
- is_ready()[source]
Has the PicoScope collecting the requested number of samples?
This function may be used instead of a callback function to receive data from
run_block()
. To use this method, passNone
as the callback parameter inrun_block()
. You must then poll the driver to see if it has finished collecting the requested samples.- Returns:
bool
– Whether the PicoScope has collected the requested number of samples.
- ping_unit()[source]
Ping the PicoScope.
This function can be used to check that the already opened device is still connected to the USB port and communication is successful.
- run_block(pre_trigger=0.0, callback=None, segment_index=0)[source]
Start collecting data in block mode.
All input arguments are ignored for ps2000 and ps3000.
- Parameters:
pre_trigger (
float
, optional) – The number of seconds before the trigger event to start acquiring data.segment_index (
int
, optional) – Specifies which memory segment to save the data to (see manual).callback (
BlockReady
, optional) – A BlockReady callback function.
- run_streaming(pre_trigger=0.0, auto_stop=True, factor=1, ratio_mode='NONE')[source]
Start collecting data in streaming mode.
This function tells the oscilloscope to start collecting data in streaming mode. When data has been collected from the device it is down sampled if necessary and then delivered to the application. Call
get_streaming_latest_values()
to retrieve the data.When a trigger is set, the total number of samples stored in the driver is the sum of max_pre_trigger_samples and max_post_trigger_samples. If auto_stop is false then this will become the maximum number of samples without down sampling.
The ratio_mode argument is ignored for ps4000 and ps5000.
- Parameters:
pre_trigger (
float
, optional) – The number of seconds before the trigger event to start acquiring data.auto_stop (
bool
, optional) – A flag that specifies if the streaming should stop when all of samples have been captured.factor (
int
, optional) – The down-sampling factor that will be applied to the raw data.ratio_mode (
enum.IntEnum
, optional) – Which down-sampling mode to use.
- set_channel(channel, coupling='dc', scale='10V', offset=0.0, bandwidth='full', enabled=True)[source]
Configure a channel.
This function specifies whether an input channel is to be enabled, its input coupling type, voltage range, analog offset and bandwidth limit. Some of the arguments within this function have model-specific values. Please consult the manual according to the model you have.
The bandwidth argument is only used for ps6000.
The offset and bandwidth arguments are ignored for ps2000, ps3000, ps4000 and ps5000.
- Parameters:
channel (
enum.IntEnum
) – The channel to be configuredcoupling (
enum.IntEnum
, optional) – The impedance and coupling type.scale (
enum.IntEnum
, optional) – The input voltage range.offset (
float
, optional) – A voltage to add to the input channel before digitization. The allowable range of offsets depends on the input range selected for the channel, as obtained fromget_analogue_offset()
.bandwidth (
enum.IntEnum
, optional) – The bandwidth limiter to use.enabled (
bool
, optional) – Whether to enable the channel.
- set_timebase(dt, duration, segment_index=0, oversample=0)[source]
Set the timebase information.
The segment_index is ignored for ps2000 and ps3000.
The oversample argument is ignored by ps2000a, ps3000a, ps4000a and ps5000a.
- Parameters:
- Returns:
- Raises:
PicoTechError – If the timebase or duration is invalid.
- set_trigger(channel, threshold, delay=0.0, direction='rising', timeout=0.1, enable=True)[source]
Set up the trigger.
- Parameters:
channel (
enum.IntEnum
) – The trigger channel.threshold (
float
) – The threshold voltage to signal a trigger event.delay (
float
, optional) – The time, in seconds, between the trigger occurring and the first sample.direction (
enum.IntEnum
, optional) – The direction in which the signal must move to cause a trigger.timeout (
float
, optional) – The time, in seconds, to wait to automatically create a trigger event if no trigger event occurs. If timeout <= 0 then wait indefinitely for a trigger. Only accurate to the nearest millisecond.enable (
bool
, optional) – Set toFalse
to disable the trigger for this channel. Not used for ps2000 or ps3000.
- stop()[source]
Stop the oscilloscope from sampling data.
If this function is called before a trigger event occurs, then the oscilloscope may not contain valid data.
- set_pulse_width_qualifier(conditions, direction, lower, upper, pulse_width_type)[source]
This function sets up pulse width qualification, which can be used on its own for pulse width triggering or combined with other triggering to produce more complex triggers. The pulse width qualifier is set by defining a list of
PwqConditions
structures, which are found in thestructs
module.