Skip to main content

Module frequencies

Module frequencies 

Source
Expand description

RF frequency, wavelength, and frequency-range types.

Frequency and Wavelength are thin wrappers around uom SI quantities. They add ham-radio-centric constructors, a smart Display that chooses the most readable unit, and bidirectional conversion via λ = c / f.

FrequencyRange represents a contiguous band segment and supports overlap and containment queries.

§Display formats

The default formatter ({}) always uses MHz. The alternate formatter ({:#}) selects the most natural unit based on the value:

use rfham_core::frequency::Frequency;

assert_eq!(format!("{:#}", Frequency::hertz(440.0)),      "440 hertz");
assert_eq!(format!("{:#}", Frequency::kilohertz(7.074)),  "7.074 kilohertz");
assert_eq!(format!("{:#}", Frequency::megahertz(146.52)), "146.52 megahertz");
assert_eq!(format!("{:#}", Frequency::gigahertz(2.4)),    "2.4 gigahertz");

§Examples

use rfham_core::frequency::{Frequency, FrequencyRange};

// Construct and display
let f = Frequency::megahertz(144.0);
assert_eq!(f.to_string(), "144 MHz");

// Convert to wavelength (~2 m band)
let wl = f.to_wavelength();
assert!((wl.value() - 2.082).abs() < 0.001);

// Range queries
let band = FrequencyRange::new_mhz(144.0, 148.0);
assert!(band.contains(Frequency::megahertz(146.52)));
assert!(!band.contains(Frequency::megahertz(150.0)));

Structs§

Frequency
FrequencyRange
Wavelength

Constants§

SPEED_OF_LIGHT

Functions§

gigahertz
hertz
kilohertz
megahertz
meters