3 stable releases
| 1.0.2 | Oct 7, 2024 |
|---|---|
| 1.0.0 | Oct 6, 2024 |
#818 in Parser implementations
89 downloads per month
14KB
153 lines
SDR File Reader Library
sdr_file_reader is a Rust library for reading and parsing Software Defined Radio (SDR) files. It supports a wide range of sample formats, including unsigned and signed 8-bit and 16-bit integers, as well as 32-bit and 64-bit floating-point numbers. The library provides an easy interface for converting raw SDR data into complex samples that can be used for further processing.
Features
- Supports multiple sample types:
u8,i8,i16,u16,f32, andf64. - Converts raw SDR data into complex samples (
Complex<f32>orComplex<f64>). - Efficient reading of SDR files in configurable chunks.
Installation
Add the following to your Cargo.toml:
[dependencies]
sdr_file_reader = "0.1.0"
Usage
Here is an example of how to use the sdr_file_reader library to read SDR data from a file:
use sdr_file_reader::{SdrFileReader, SampleType};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let file_path = "gqrx_20240929_015218_580206500_2400000_fc.raw";
let mut reader = SdrFileReader::new(file_path, 1024, SampleType::F32)?;
while let Some(samples) = reader.read_next_chunk_complexf32()? {
// Process the samples here
println!("Read {} samples", samples.len());
}
Ok(())
}
Sample Types
The SampleType enum represents the different formats of samples that can be used in SDR files:
U8: Unsigned 8-bit integerI8: Signed 8-bit integerI16: Signed 16-bit integerU16: Unsigned 16-bit integerF32: 32-bit floating pointF64: 64-bit floating point
Dependencies
~0.8–1.4MB
~29K SLoC