s6.app._common

class s6.app._common.COLORS

Bases: object

BOUNDARY = (255, 20, 255)
BOUNDARY2 = (255, 128, 0)
R = (255, 50, 50)
G = (50, 250, 50)
B = (50, 50, 250)
s6.app._common.color_code(idx: int)
class s6.app._common.CommandSet(*values)

Bases: IntEnum

TAKESNAPSHOT = 0
PLAYBACKCONTROL = 1
GOTOFRAME = 2
CHANGEDATASET = 3
RECORD = 4
SETEVOFFSET = 5
SETCONTRAST = 6
static parse(command)
static parse_message(message)

Parse a command payload into a (CommandSet, payload) tuple.

Expected input shape:

{“command”: <str|int|CommandSet>, “payload”: <any>}

Returns:

tuple(CommandSet, payload) if valid, otherwise None.

class s6.app._common.PlaybackMode(*values)

Bases: IntEnum

PLAY = 0
PAUSE = 1
STOP = 2
BACKWARD = 3
FORWARD = 4
class s6.app._common.RecordCommand(*, enabled: bool)

Bases: BaseModel

enabled: bool
class s6.app._common.TakeSnapshotCommand

Bases: BaseModel

class s6.app._common.PlaybackControlCommand(*, mode: PlaybackMode)

Bases: BaseModel

mode: PlaybackMode
class s6.app._common.GotoFrameCommand(*, frame: int)

Bases: BaseModel

frame: int
class s6.app._common.ChangeDatasetCommand(*, path: str)

Bases: BaseModel

path: str
class s6.app._common.SetEvOffsetCommand(*, ev_offset: float)

Bases: BaseModel

ev_offset: float
class s6.app._common.SetContrastCommand(*, contrast_ev: float)

Bases: BaseModel

contrast_ev: float
s6.app._common.iter_queue_nowait(command_queue: Any) Iterator[Any]

Yield currently buffered queue items without relying on qsize().

s6.app._common.command_router(command_queue)

Create a FastAPI router with endpoints for each CommandSet value.