herosdevices.hardware.hamamatsu.dcam_camera

Implementation of the CameraTemplate for Hamamatsu DCAM cameras.

Also see the corresponding section in the documentation.

Module Contents

herosdevices.hardware.hamamatsu.dcam_camera.EXAMPLE_CONFIG_DICT
herosdevices.hardware.hamamatsu.dcam_camera.generate_dcam_error_dict() dict

Get a dictionary that maps numerical error code against human-readable string.

Returns:

Dictionary of error codes -> error descriptions

herosdevices.hardware.hamamatsu.dcam_camera.get_prop_or_val(prop_str: str = 'DCAMPROP.TRIGGERSOURCE.SOFTWARE') int | float

Get a dictionary that maps numerical error code against human-readable string.

Parameters:

prop_str – Property of interest

Returns:

Value of the property of interest

herosdevices.hardware.hamamatsu.dcam_camera.validate_roi(val: int, binning: int = 1) int

Calculate a valid ROI size of position with a given binning setting.

Parameters:
  • val – ROI size or position value

  • binning – number of pixels to bin in one direction (1, 2, 4)

Returns:

Valid ROI size or position correwcted with binning

class herosdevices.hardware.hamamatsu.dcam_camera.DcamCompatibleCamera

Bases: herosdevices.core.templates.CameraTemplate

Camera object for Hamamatsu DCAM cameras.

In particular, this code has been tested with the C15550-20UP.

default_config_dict: dict
set_property(prop: str, value: str) bool

Set a single property on the device.

Parameters:
  • prop – Property of interest

  • value – Target value

Returns:

True if setting the property was successful

Raises:

RuntimeError – last error in case the API call returned False

get_property(prop: str) int | float | None

Read a single property from the device and reports its value.

Parameters:

prop – Property of interest

Returns:

Value of the property

Raises:

RuntimeError – last error in case the API call returned False

get_propperty_dict(prop_dict: dict | None = None) dict

Read a dictionary of properties and report their value.

Parameters:

prop_dict – A dict of properties (as strings)

Returns:

A dict oft property values

Raises:

RuntimeError – last error in case the API call returned False

get_temperature() dict

Get cooling and temperature properties.

Returns:

A dict of sensor temperature, cooler status

Raises:

RuntimeError – last error in case the API call returned False

get_acquisition_mode() dict

Get SENSORMODE, READOUTSPEED and BINNING properties.

Returns:

A dict of SENSORMODE, READOUTSPEED and BINNING

Raises:

RuntimeError – last error in case the API call returned False

get_timing_infos() dict

Get trigger timing properties.

Returns:

A dict of trigger timing properties

Raises:

RuntimeError – last error in case the API call returned False

get_all_properties() list[tuple]

Dump all properties from the device.

Copied from demo scripts.

Returns:

A list with all camera properties known to DCAM.

get_camera
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. If False the 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_data event.

set_configuration
update_payload_metadata(metadata: dict, merge: bool = True) None

Update metadata dict send with every emitted frame by the acquisition_data event method.

Parameters:
  • metadata – Metadata that is merged into the current payload metadata dict which is send with every emitted acquisition_data event.

  • merge – If True, the new dict is merged with the current set metadata dict. If False the 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_data event.

  • kill_running – If True any running acquisition will be stopped. If False and an acquisition is

  • running (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_metadata attribute (for example set by the update_payload_metadata method) 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