pub struct Fls {
pub(crate) ch: [ChannelSettings; 2],
pub(crate) ext_clk: bool,
pub(crate) lockin_freq: u32,
pub(crate) pll_k: i32,
pub(crate) telemetry_period: u16,
pub(crate) stream: Target,
}Expand description
Settings structure for the application. All fields in this structure are available through MQTT and can be configured at runtime.
Fields§
§ch: [ChannelSettings; 2]Channel-specific settings.
ext_clk: boolExternal reference
§Value
true for external 100 MHz reference input selected,
false for internal 100 MHz XO enabled and selected
§Default
false
lockin_freq: u32Lockin local oscillator frequency tuning word. Common to both demodulation/input channels.
The demodulation DDS frequency tuning word
is /ch/+/input/freq + lockin_freq*0x8000 (lower sideband).
TODO: settle pll and lockin settings into design after confirming optimal choice
§Default
0x40 corresponding to 244 kHz. 5/8 Nyquist.
pll_k: i32Lockin demodulation oscillator PLL bandwidth. This PLL reconstructs the DDS SYNC clock output on the CPU clock timescale.
TODO: settle pll and lockin settings into design after confirming optimal choice
§Default
/pll_k = 0x4_0000 corresponds to to a time constant of about 0.4 s.
telemetry_period: u16§stream: TargetTrait Implementations§
Source§impl TreeAny for Fls
impl TreeAny for Fls
Source§fn ref_any_by_key(&self, keys: impl Keys) -> Result<&dyn Any, ValueError>
fn ref_any_by_key(&self, keys: impl Keys) -> Result<&dyn Any, ValueError>
dyn Any trait object for a leaf node.Source§fn mut_any_by_key(
&mut self,
keys: impl Keys,
) -> Result<&mut dyn Any, ValueError>
fn mut_any_by_key( &mut self, keys: impl Keys, ) -> Result<&mut dyn Any, ValueError>
dyn Any trait object for a leaf node.Source§fn ref_by_key<T>(&self, keys: impl IntoKeys) -> Result<&T, ValueError>where
T: Any,
fn ref_by_key<T>(&self, keys: impl IntoKeys) -> Result<&T, ValueError>where
T: Any,
Source§fn mut_by_key<T>(&mut self, keys: impl IntoKeys) -> Result<&mut T, ValueError>where
T: Any,
fn mut_by_key<T>(&mut self, keys: impl IntoKeys) -> Result<&mut T, ValueError>where
T: Any,
Source§impl<'de> TreeDeserialize<'de> for Fls
impl<'de> TreeDeserialize<'de> for Fls
Source§fn deserialize_by_key<D: Deserializer<'de>>(
&mut self,
keys: impl Keys,
de: D,
) -> Result<(), SerdeError<D::Error>>
fn deserialize_by_key<D: Deserializer<'de>>( &mut self, keys: impl Keys, de: D, ) -> Result<(), SerdeError<D::Error>>
Source§fn probe_by_key<D: Deserializer<'de>>(
keys: impl Keys,
de: D,
) -> Result<(), SerdeError<D::Error>>
fn probe_by_key<D: Deserializer<'de>>( keys: impl Keys, de: D, ) -> Result<(), SerdeError<D::Error>>
Source§impl TreeSerialize for Fls
impl TreeSerialize for Fls
Source§fn serialize_by_key<S: Serializer>(
&self,
keys: impl Keys,
ser: S,
) -> Result<S::Ok, SerdeError<S::Error>>
fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>
Auto Trait Implementations§
impl Freeze for Fls
impl RefUnwindSafe for Fls
impl Send for Fls
impl Sync for Fls
impl Unpin for Fls
impl UnwindSafe for Fls
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, M> ForwardCompat<T, M> for T
impl<T, M> ForwardCompat<T, M> for T
§impl<T> ReverseCompat<T> for T
impl<T> ReverseCompat<T> for T
§fn reverse(self) -> Reverse<T>
fn reverse(self) -> Reverse<T>
Create an e-h-c wrapper around and e-h object Available methods depend on the wrapped type
§fn reverse_cell(self) -> Reverse<RefCell<T>>
fn reverse_cell(self) -> Reverse<RefCell<T>>
Create an e-h-c reverse compatibility wrapper using a ref-cell for interior mutability (required for InputPin types)