RfConfigSnapshot
RfConfigSnapshot is the serializable RF-state helper used by
FtmwPreset. It captures the subset of an
RfConfig that belongs to a stored preset — the up- and
down-conversion mixer settings, the AWG and chirp multipliers, and the
desired clock frequencies for each clock role — without touching the
runtime, hardware-derived state that an RfConfig accumulates
while an experiment is configured. The snapshot is value-typed: it holds plain
data members and is freely copied between presets, dialog tabs, and the
persistence layer.
The snapshot deliberately does not record which physical clock
implements each role. That information lives in the owning
HardwareLoadout’s hardware map. When a snapshot is applied
back to an RfConfig via applyTo, the receiving config is
responsible for translating the snapshot’s role-keyed clock entries into
calls against whatever clock hardware is currently active.
Serialization is performed by the free functions in the BC::Loadout
namespace declared alongside HardwareLoadout:
rfConfigScalarsMap flattens the scalar fields, and
rfConfigClocksArray flattens the clock table. LoadoutManager
writes these maps under each preset’s rfScalars and rfClocks
QSettings sub-groups; see LoadoutManager for the storage layout
and the FTMW Presets chapter for the
user-facing model.
API Reference
-
struct RfConfigSnapshot
Serializable snapshot of the persistable fields of an RfConfig.
RfConfigSnapshotcaptures only the subset ofRfConfigstate that belongs to a stored FTMW preset: the up- and down-conversion mixer settings, the AWG and chirp multipliers, and the desired clock frequencies for each clock role. Hardware identity (which physical clock implements which role) is recorded separately in the loadout’s hardware map and is not part of the snapshot.FtmwPresetowns oneRfConfigSnapshot. The loadout persistence layer converts snapshots to and fromSettingsStorage::SettingsMaprecords via theBC::Loadout::rfConfigScalarsMap,BC::Loadout::rfConfigClocksArray, andBC::Loadout::rfConfigSnapshotFromMapshelpers.Public Functions
Public Members
-
bool commonUpDownLO = {false}
Whether the upconversion and downconversion local oscillators share the same clock source.
-
double awgMult = {1.0}
AWG output multiplier applied before the upconversion mixer.
-
RfConfig::Sideband upMixSideband = {RfConfig::UpperSideband}
Sideband selection for the upconversion mixer.
-
double chirpMult = {1.0}
Frequency multiplier applied to the chirp before downconversion.
-
RfConfig::Sideband downMixSideband = {RfConfig::UpperSideband}
Sideband selection for the downconversion mixer.
Public Static Functions
-
static RfConfigSnapshot fromRfConfig(const RfConfig &c)
Build a snapshot from the persistable fields of
c.
-
bool commonUpDownLO = {false}