Expand description
§lora-modulation
A minimal crate for providing LoRa modulation characteristics of:
- Bandwidth
- Spreading factor
- Coding rate
Provides utility for calculating time on air.
§Usage
use lora_modulation::{BaseBandModulationParams, SpreadingFactor, Bandwidth, CodingRate};
let length = 12;
let params = BaseBandModulationParams::new(SpreadingFactor::_9, Bandwidth::_125KHz, CodingRate::_4_5);
let time_on_air = params.time_on_air_us(
Some(8), // preamble
true, // explicit header
length); // length of payload
// Time on air is 144.384 ms
assert_eq!(time_on_air, 144384);
use lora_modulation::{BaseBandModulationParams, SpreadingFactor, Bandwidth, CodingRate};
let symbols = 14;
let params = BaseBandModulationParams::new(SpreadingFactor::_12, Bandwidth::_125KHz, CodingRate::_4_5);
let timeout = params.symbols_to_ms(symbols);
// Timeout is 458 ms
assert_eq!(timeout, 458);
Structs§
- Base
Band Modulation Params - LoRa modulation parameters barring frequency
Enums§
- Bandwidth
- Channel width. Lower values increase time on air, but may be able to find clear frequencies.
- Coding
Rate - Controls the forward error correction. Higher values are more robust, but reduces the ratio of actual data in transmissions.
- Spreading
Factor - Controls the chirp rate. Lower values are slower bandwidth (longer time on air), but more robust.