Skip to content

pymmcore_plus.seq_tester

Classes for working with SequenceTester devices.

SequenceTester is a Micro-Manager device that encodes information about the state of the system into the image data. This module provides a class for decoding that information.

Decoding images requires the msgpack package to be installed. A typical way to setup the device would be:

core = CMMCorePlus()
core.loadDevice("THub", "SequenceTester", "THub")
core.initializeDevice("THub")
core.loadDevice("TCamera", "SequenceTester", "TCamera")
core.setParentLabel("TCamera", "THub")
core.setProperty("TCamera", "ImageMode", "MachineReadable")
core.setProperty("TCamera", "ImageWidth", 128)
core.setProperty("TCamera", "ImageHeight", 128)
core.initializeDevice("TCamera")
core.setCameraDevice("TCamera")

Then, to decode an image:

from pymmcore_plus.seq_tester import decode_image

core.snapImage()
info = decode_image(core.getImage())

Classes

Name Description
CameraInfo Information about a SequenceTester camera.
InfoPacket Data produced by a SequenceTester camera.
Setting Setting of a SequenceTester property.
SettingEvent Historical Setting.

Functions

Name Description
decode_image Extract data produced by a SequenceTester camera.

Classes

CameraInfo dataclass

CameraInfo(
    name: str,
    serial_img_num: int,
    is_sequence: bool,
    cumulative_img_num: int,
    frame_num: int,
)

Information about a SequenceTester camera.

Attributes:

Name Type Description
name str
serial_img_num int
is_sequence bool
cumulative_img_num int
frame_num int

name

name: str

serial_img_num

serial_img_num: int

is_sequence

is_sequence: bool

cumulative_img_num

cumulative_img_num: int

frame_num

frame_num: int

validate classmethod

validate(val: Any) -> CameraInfo

Coerce val into CameraInfo object.

Setting dataclass

Setting(device: str, property: str, type: type, value: Any)

Setting of a SequenceTester property.

Attributes:

Name Type Description
device str
property str
type type
value Any

device

device: str

property

property: str

type

type: type

value

value: Any

validate classmethod

validate(val: Any) -> Self

Coerce val into Setting object.

SettingEvent dataclass

SettingEvent(device: str, property: str, type: type, value: Any, count: int)

Bases: Setting

Historical Setting.

Attributes:

Name Type Description
device str
property str
type type
value Any
count int

count

count: int

InfoPacket dataclass

InfoPacket(
    hub_global_packet_nr: int,
    camera_info: CameraInfo,
    start_counter: int,
    current_counter: int,
    start_state: list[Setting],
    current_state: list[Setting],
    history: list[SettingEvent],
)

Data produced by a SequenceTester camera.

Attributes:

Name Type Description
hub_global_packet_nr int
camera_info CameraInfo
start_counter int
current_counter int
start_state list[Setting]
current_state list[Setting]
history list[SettingEvent]

hub_global_packet_nr

hub_global_packet_nr: int

camera_info

camera_info: CameraInfo

start_counter

start_counter: int

current_counter

current_counter: int

start_state

start_state: list[Setting]

current_state

current_state: list[Setting]

history

history: list[SettingEvent]

Functions

decode_image

decode_image(img: ndarray) -> InfoPacket

Extract data produced by a SequenceTester camera.