de_twin.transport.shm.FrameConsumer#

class de_twin.transport.shm.FrameConsumer(name='DE_ExternalFrames', max_frame_bytes=33554432, slot_count=8)[source]#

Bases: _Mapping

What DE-Server does, in Python: create the mapping, request an acquisition, read frames.

Parameters:
  • name (str)

  • max_frame_bytes (int)

  • slot_count (int)

__init__(name='DE_ExternalFrames', max_frame_bytes=33554432, slot_count=8)[source]#
Parameters:
  • name (str)

  • max_frame_bytes (int)

  • slot_count (int)

Methods

__init__([name, max_frame_bytes, slot_count])

begin(*, frame_shape[, bytes_per_pixel, ...])

close()

end()

payload(n)

read([timeout, out])

The next frame of the current request, as (pixels, slot header).

slot(n)

begin(*, frame_shape, bytes_per_pixel=2, sensor_shape=None, exposure_mode=ExposureMode.NORMAL, frame_time_s=0.01, total_frames=0, roi=None, binning=(1, 1), scan_size=(0, 0), frames_per_scan_point=1)[source]#
Parameters:
Return type:

int

read(timeout=1.0, out=None)[source]#

The next frame of the current request, as (pixels, slot header). With out (of the frame’s size and dtype) the pixels are copied into it, as DE-Server copies into its own buffers, instead of into a new array.

Parameters:
Return type:

tuple[ndarray, dict]

end()[source]#
Return type:

None