generate_acq_channels_data#
Helper functions to generate acq_indices.
Module Contents#
Functions#
|
|
|
|
Generates the acquisition channel data, and updates acq_channel_data, |
|
|
|
Generates the acquisition channel data, and updates acq_channel_data, |
|
|
Adds mappings to acq_channels_data and schedulable_label_to_acq_index; |
Generate acq_index for every schedulable, |
Attributes#
A mapping from schedulables to an acquisition index. |
- SchedulableLabelToAcquisitionIndex[source]#
A mapping from schedulables to an acquisition index.
This mapping helps the backend to figure out which binned acquisition corresponds to which acquisition index. Note, it maps the (full schedulable label, acq_num_in_operation) to the bin, where acq_num_in_operation is the i.th acquisition in the operation; in other words: the i.th element in the acquisition_info. Only defined for binned acquisitions, and backend independent.
For control flows, the None in the schedulable label refers to the body of the control flow. This is for future proofing, if control flows were extended to include maybe multiple suboperations.
- _warn_unsupported_bin_mode(protocol: str, bin_mode: quantify_scheduler.enums.BinMode, acq_channel: Hashable) None [source]#
- _generate_acq_channels_data_binned(acq_channel_data: quantify_scheduler.schedules.schedule.AcquisitionChannelData, schedulable_label_to_acq_index: SchedulableLabelToAcquisitionIndex, full_schedulable_label: FullSchedulableLabel, nested_loop_repetitions: list[int], coords: dict, acq_num_in_operation: int, acq_channel: Hashable, acq_index: int | None) None [source]#
Generates the acquisition channel data, and updates acq_channel_data, and updates schedulable_label_to_acq_index.
- _validate_trace_protocol(acq_channel: Hashable, acq_channels_data: quantify_scheduler.schedules.schedule.AcquisitionChannelsData, bin_mode: quantify_scheduler.enums.BinMode, protocol: str, nested_loop_repetitions: list[int]) None [source]#
- _generate_acq_channels_data_for_protocol(acquisitions_info: list[dict], acq_channels_data: quantify_scheduler.schedules.schedule.AcquisitionChannelsData, schedulable_label_to_acq_index: SchedulableLabelToAcquisitionIndex, full_schedulable_label: FullSchedulableLabel, nested_loop_repetitions: list[int], is_explicit_acq_index: bool) None [source]#
Generates the acquisition channel data, and updates acq_channel_data, and updates schedulable_label_to_acq_index.
- _generate_acq_channels_data(operation: quantify_scheduler.schedules.schedule.ScheduleBase | quantify_scheduler.operations.operation.Operation, acq_channels_data: quantify_scheduler.schedules.schedule.AcquisitionChannelsData, schedulable_label_to_acq_index: SchedulableLabelToAcquisitionIndex, is_explicit_acq_index: bool, full_schedulable_label: FullSchedulableLabel, nested_loop_repetitions: list[int]) None [source]#
Adds mappings to acq_channels_data and schedulable_label_to_acq_index; these are the output arguments; the others are input arguments. If explicit_acq_indices is True, then it only adds Schedulables where acq_index is not None, otherwise only adds Schedulables where acq_index is None. In this latter case, it will generate the acq_index.
- generate_acq_channels_data(schedule: quantify_scheduler.schedules.schedule.ScheduleBase) tuple[quantify_scheduler.schedules.schedule.AcquisitionChannelsData, SchedulableLabelToAcquisitionIndex] [source]#
Generate acq_index for every schedulable, and validate schedule regarding the acquisitions.
This function generates the
AcquisitionChannelData
for everyacq_channel
, and theSchedulableLabelToAcquisitionIndex
. It assumes the schedule is device-level.