runtimepy.control package#

Subpackages#

Submodules#

runtimepy.control.source module#

A module implementing signal source structs.

class runtimepy.control.source.DoubleSource(name: str, config: dict[str, str | int | float | bool | None | dict[str, str | int | float | bool | None] | list[str | int | float | bool | None]], markdown: str = None)[source]#

Bases: PrimitiveSource[DoublePrimitive]

A simple double output source.

kind#

alias of DoublePrimitive

class runtimepy.control.source.PrimitiveSource(name: str, config: dict[str, str | int | float | bool | None | dict[str, str | int | float | bool | None] | list[str | int | float | bool | None]], markdown: str = None)[source]#

Bases: RuntimeStruct, Generic[T]

A simple output-source struct.

amplitudes: list[DoublePrimitive]#
init_env() None[source]#

Initialize this double-source environment.

init_source() None[source]#

Initialize this value source.

kind: type[T]#
length: int#
outputs: list[T]#
poll() None[source]#

Update the outputs.

abstractmethod source(index: int) float | int | bool[source]#

Provide the next value.

runtimepy.control.step module#

A module implementing a manual-stepping interface (e.g. program/human controlled clock).

class runtimepy.control.step.StepperToggler[source]#

Bases: TaskFactory[ToggleStepperTask]

A task factory for toggle stepper tasks.

kind#

alias of ToggleStepperTask

class runtimepy.control.step.ToggleStepper(name: str, config: dict[str, str | int | float | bool | None | dict[str, str | int | float | bool | None] | list[str | int | float | bool | None]], markdown: str = None)[source]#

Bases: RuntimeStruct

A simple struct that ties a clock toggle to various runtime entities.

count: Uint32Primitive#
count_rate: DoublePrimitive#
count_rate_tracker: RateTracker#
counts: Uint32Primitive#
init_env() None[source]#

Initialize this toggle stepper environment.

poll() None[source]#

Poll all other entities.

simulate_time: BooleanPrimitive#
step: BooleanPrimitive#
time_s: DoublePrimitive#
timer: SimulatedTime#
to_poll: set[RuntimeStruct]#
class runtimepy.control.step.ToggleStepperTask(name: str, average_depth: int = 10, metrics: PeriodicTaskMetrics = None, period_s: float = 1.0, env: ChannelEnvironment = None, period_controls: dict[str, int | float | bool | dict[str, int | float | bool]] | str = 'period', markdown: str = None, config: dict[str, str | int | float | bool | None | dict[str, str | int | float | bool | None] | list[str | int | float | bool | None]] = None)[source]#

Bases: ArbiterTask

A task for automatically stepping a toggle-stepper clock.

async dispatch() bool[source]#

Dispatch an iteration of this task.

async init(app: AppInfo) None[source]#

Initialize this task with application information.

steppers: list[ToggleStepper]#
runtimepy.control.step.refresh_all_plots(manager: ConnectionManager) None[source]#

Signal to clients to refresh all data.

runtimepy.control.step.should_poll(kind: type[RuntimeStruct]) bool[source]#

Determine if a toggle stepper should poll the provided type of struct.

Module contents#