MCPcopy Create free account
hub / github.com/FutureSDR/FutureSDR / decode

Method decode

examples/wlan/src/decoder.rs:71–92  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

69 }
70
71 fn decode(&mut self) -> bool {
72 let syms = self.frame_param.n_symbols();
73 let bpsc = self.frame_param.mcs().modulation().n_bpsc();
74 for i in 0..syms * 48 {
75 for k in 0..bpsc {
76 self.rx_bits[i * bpsc + k] = u8::from((self.rx_symbols[i] & (1 << k)) > 0);
77 }
78 }
79 // println!("rx_symbols: {:?}", &self.rx_symbols[0..syms * 48]);
80 // println!("rx_bits: {:?}", &self.rx_bits[0..syms * 48 * bpsc]);
81
82 self.deinterleave();
83 self.decoder.decode(
84 self.frame_param.clone(),
85 &self.deinterleaved_bits,
86 &mut self.decoded_bits,
87 );
88 self.descramble();
89
90 let crc = crc32fast::hash(&self.out_bytes[2..self.frame_param.psdu_size() + 2]);
91 crc == 558161692
92 }
93
94 fn descramble(&mut self) {
95 let decoded_bits = &self.decoded_bits;

Callers 1

workMethod · 0.45

Calls 8

n_symbolsMethod · 0.80
n_bpscMethod · 0.80
modulationMethod · 0.80
mcsMethod · 0.80
deinterleaveMethod · 0.80
descrambleMethod · 0.80
psdu_sizeMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected