qat.experimental.tools.schedule.tracker module
IR-independent ledger for statically scheduled resources.
- class ResourceKind(value)
Bases:
str,EnumThe two resource kinds that can be plotted.
- FRAME = 'frame'
- SEQUENCE = 'sequence'
- class ScheduleEvent(resource, kind, unit, signal_unit, phase_label, phase_unit, phase_scale, start, end, frequency, phase, amplitude, signal=None, label=None)
Bases:
objectA single interval recorded for a schedule resource.
-
amplitude:
complex
- property duration: float
Return the interval duration in the resource’s native unit.
-
end:
float
-
frequency:
float
-
kind:
ResourceKind
-
label:
str|None= None
-
phase:
float
-
phase_label:
str
-
phase_scale:
float
-
phase_unit:
str
-
resource:
str
-
signal:
ndarray[tuple[int,...],dtype[complexfloating]] |None= None
-
signal_unit:
str
-
start:
float
-
unit:
str
-
amplitude:
- class ScheduleResource(name, kind, unit, signal_unit, phase_label, phase_unit, phase_scale, signal_limits)
Bases:
objectStatic metadata for a tracked schedule resource.
-
kind:
ResourceKind
-
name:
str
-
phase_label:
str
-
phase_scale:
float
-
phase_unit:
str
-
signal_limits:
tuple[float,float] |None
-
signal_unit:
str
-
unit:
str
-
kind:
- class ScheduleTracker
Bases:
objectTrack static frame or sequence timelines with a small ledger-like API.
The tracker deliberately knows nothing about an IR. Dialect visitors select a resource, update its state, and append intervals through this API.
- acquire(duration, signal=None, label='acquire')
Record an acquisition interval on the selected resource.
- Return type:
- advance(duration, signal=None, label=None)
Append an interval to the selected resource and advance its time.
- Return type:
- property amplitude: complex
Return the selected resource amplitude.
- property frequency: float
Return the selected resource frequency.
- mark(label)
Record a zero-duration state transition on the selected resource.
- Return type:
- property phase: float
Return the selected resource phase.
- pulse(duration, signal)
Record a pulse interval on the selected resource.
- Return type:
- property records: tuple[ScheduleEvent, ...]
Return all recorded events in insertion order.
- resource(name, kind, unit, signal_unit='Amplitude', phase_unit='rad', phase_scale=1.0, phase_label='Phase', signal_limits=None)
Select or create a resource.
- Parameters:
name¶ (
str) – Stable resource name used by the visualisation.kind¶ (
ResourceKind) – Whether the resource is a frame or a sequence.unit¶ (
str) – Native unit label for time values.signal_unit¶ (
str) – Label describing the recorded signal scale.phase_unit¶ (
str) – Native unit label for displayed phase values.phase_scale¶ (
float) – Displayed phase units per radian.phase_label¶ (
str) – Label describing the recorded phase.signal_limits¶ (
Optional[tuple[Real,Real]]) – Optional lower and upper bounds for the signal axis.
- Return type:
- Returns:
This tracker, for fluent visitor code.
- resource_info(name)
Return static metadata for a resource.
- Return type:
- property resources: tuple[str, ...]
Return resource names in registration order.
- select(name)
Select an existing resource.
- Return type:
- property selected_resource: str
Return the selected resource name.
- set_amplitude(amplitude)
Set the selected resource amplitude.
- Return type:
None
- set_frequency(frequency)
Set the selected resource frequency.
- Return type:
None
- set_phase(phase)
Set the selected resource phase.
- Return type:
None
- shift_phase(phase)
Shift the selected resource phase.
- Return type:
None
- synchronise(resources=None)
Advance selected resources to the latest current time.
- Return type:
None
- property timelines: dict[str, tuple[ScheduleEvent, ...]]
Return recorded events grouped by resource.
- wait(duration, signal=None)
Record a wait interval on the selected resource.
- Return type: