herosdevices.hardware.picotechnology¶
Driver classes for Pico Technology Ltd. devices.
Module Contents¶
- herosdevices.hardware.picotechnology.PICO_CHANNEL_FLAGS = [1, 2, 4, 8, 16, 32, 64, 128]¶
- herosdevices.hardware.picotechnology.PICO_RANGE¶
- herosdevices.hardware.picotechnology.DEFAULT_CONFIG¶
- herosdevices.hardware.picotechnology.ps6000a = None¶
- class herosdevices.hardware.picotechnology.Picoscope(serial_num: str, config_dict: dict, default_config: str | None = None, **kwargs)[source]¶
Bases:
herosdevices.core.templates.oscilloscope.OscilloscopeTemplateA class to interface Pico Technology computer oscilloscopes.
This is the base class for the different models and can not be used standalone. Please refer to the specific model drivers.
- serial_num: str¶
- default_config_dict¶
- assert_status(result: int) None[source]¶
Check if a command result was successful.
- Parameters:
result – Returnvalue from a picoscope command.
- Raises:
AssertionError – If the result is not
PICO_OK.
- get_scope¶
- acquisition_running: bool = False¶
- payload_metadata: dict¶
- keep_device_open = True¶
- default_config: str¶
- get_device() collections.abc.Iterator[None]¶
Yield a device handle.
# use the device in a with statement with self.get_device() as camera: camera.do_something()
- open() Any¶
Open the device handler and assign it to self._device.
- teardown() None¶
Release the device handler and potentially de-initialize the API.
- start() bool¶
Fire a software trigger.
- Returns:
True if successful
- stop() bool¶
Abort the exposure and release queued buffers.
- Returns:
True if successful
- reset() None¶
Reset the device by aborting any ongoing exposure, closing and re-opening the handler.
- get_status() dict¶
Get a dict with the current device status.
- Returns:
A dict with the device status
- property config_dict: dict¶
Get a copy of the configuration dict.
- Returns:
Copy of the configuration dict
- update_configuration(new_config_dict: dict, merge: bool = True) None¶
Update the configuration dict with new configuration.
Each dict key corresponds a (new) configuration name. Each value is a dict with config property -> config value.
- Parameters:
new_config_dict – A dict of configurations where the keys are the configuration names
merge – If
True, the new dict is recursively merged with the current set config dict. IfFalsethe old configurations with the provided names (keys) are overwritten.
- get_configuration() dict¶
Get the currently active configuration.
- Returns:
The currently active configuration.
- configure(config: str = '', metadata: dict | None = None) bool¶
Configure the device with the known configuration config.
To add a configuration to the device, use
update_configuration().- Parameters:
config – Key (name) of the configuration
metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted
acquisition_dataevent.
- set_configuration¶
- update_payload_metadata(metadata: dict, merge: bool = True) None¶
Update metadata dict send with every emitted frame by the
acquisition_dataevent method.- Parameters:
metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted
acquisition_dataevent.merge – If
True, the new dict is merged with the current set metadata dict. IfFalsethe old metadata is overwritten by the given dict.
- arm(metadata: dict | None = None, kill_running: bool = False) bool¶
Arm the device with the currently active configuration.
- Parameters:
metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted
acquisition_dataevent.kill_running – If
Trueany running acquisition will be stopped. IfFalseand an acquisition isrunning (already)
raised. (an error will be)
- Returns:
True if arming was successful else False
- acquisition_data(frame: numpy.ndarray, metadata: dict | None = None) tuple¶
Event to emit new frames.
Note
The dtype of the frame is not changed here.
- Parameters:
frame – The frame payload data (for example an image or an scope trace)
metadata – The metadata which is passed along the payload. This argument takes precedence over the
payload_metadataattribute (for example set by theupdate_payload_metadatamethod) while merging the two dicts.
- Returns:
A tuple of image and metadata(-dict)
- acquisition_started(metadata: dict | None = None) dict¶
Event emitted when the acquisition thread starts.
- Returns:
A dict with acquisition metadata
- acquisition_stopped(metadata: dict | None = None) dict¶
Event emitted when the acquisition thread stops.
- Returns:
A dict with acquisition metadata
- class herosdevices.hardware.picotechnology.Picoscope6000a(serial_num: str, config_dict: dict, default_config: str | None = None, **kwargs)[source]¶
Bases:
PicoscopeDriver class for the Picoscope 6000 series.
Note
You need the official picoscope sdk installed. Note that it is not on PyPi and you need to follow the instructions here
- serial_num: str¶
- default_config_dict¶
- assert_status(result: int) None¶
Check if a command result was successful.
- Parameters:
result – Returnvalue from a picoscope command.
- Raises:
AssertionError – If the result is not
PICO_OK.
- get_scope¶
- acquisition_running: bool = False¶
- payload_metadata: dict¶
- keep_device_open = True¶
- default_config: str¶
- get_device() collections.abc.Iterator[None]¶
Yield a device handle.
# use the device in a with statement with self.get_device() as camera: camera.do_something()
- open() Any¶
Open the device handler and assign it to self._device.
- teardown() None¶
Release the device handler and potentially de-initialize the API.
- start() bool¶
Fire a software trigger.
- Returns:
True if successful
- stop() bool¶
Abort the exposure and release queued buffers.
- Returns:
True if successful
- reset() None¶
Reset the device by aborting any ongoing exposure, closing and re-opening the handler.
- get_status() dict¶
Get a dict with the current device status.
- Returns:
A dict with the device status
- property config_dict: dict¶
Get a copy of the configuration dict.
- Returns:
Copy of the configuration dict
- update_configuration(new_config_dict: dict, merge: bool = True) None¶
Update the configuration dict with new configuration.
Each dict key corresponds a (new) configuration name. Each value is a dict with config property -> config value.
- Parameters:
new_config_dict – A dict of configurations where the keys are the configuration names
merge – If
True, the new dict is recursively merged with the current set config dict. IfFalsethe old configurations with the provided names (keys) are overwritten.
- get_configuration() dict¶
Get the currently active configuration.
- Returns:
The currently active configuration.
- configure(config: str = '', metadata: dict | None = None) bool¶
Configure the device with the known configuration config.
To add a configuration to the device, use
update_configuration().- Parameters:
config – Key (name) of the configuration
metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted
acquisition_dataevent.
- set_configuration¶
- update_payload_metadata(metadata: dict, merge: bool = True) None¶
Update metadata dict send with every emitted frame by the
acquisition_dataevent method.- Parameters:
metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted
acquisition_dataevent.merge – If
True, the new dict is merged with the current set metadata dict. IfFalsethe old metadata is overwritten by the given dict.
- arm(metadata: dict | None = None, kill_running: bool = False) bool¶
Arm the device with the currently active configuration.
- Parameters:
metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted
acquisition_dataevent.kill_running – If
Trueany running acquisition will be stopped. IfFalseand an acquisition isrunning (already)
raised. (an error will be)
- Returns:
True if arming was successful else False
- acquisition_data(frame: numpy.ndarray, metadata: dict | None = None) tuple¶
Event to emit new frames.
Note
The dtype of the frame is not changed here.
- Parameters:
frame – The frame payload data (for example an image or an scope trace)
metadata – The metadata which is passed along the payload. This argument takes precedence over the
payload_metadataattribute (for example set by theupdate_payload_metadatamethod) while merging the two dicts.
- Returns:
A tuple of image and metadata(-dict)
- acquisition_started(metadata: dict | None = None) dict¶
Event emitted when the acquisition thread starts.
- Returns:
A dict with acquisition metadata
- acquisition_stopped(metadata: dict | None = None) dict¶
Event emitted when the acquisition thread stops.
- Returns:
A dict with acquisition metadata