leodos_protocols/coding/
proximity1.rs1use crate::coding::fec::convolutional::ConvolutionalEncoder;
12use crate::coding::fec::convolutional::ViterbiDecoder;
13use crate::coding::framing::cadu::AsmDeframer;
14use crate::coding::framing::cadu::AsmFramer;
15use crate::coding::pipeline::CodingReader;
16use crate::coding::pipeline::CodingWriter;
17use crate::coding::randomizer::TcRandomizer;
18use crate::physical::PhysicalRead;
19use crate::physical::PhysicalWrite;
20
21pub const MAX_FRAME_SIZE: usize = 2048;
23
24const PLTU_BUF: usize = 8192;
26
27const LLR_MAG: i16 = 127;
29
30pub fn writer<W: PhysicalWrite>(
34 writer: W,
35) -> CodingWriter<TcRandomizer, ConvolutionalEncoder, AsmFramer, W, PLTU_BUF> {
36 CodingWriter::new(
37 TcRandomizer::new(),
38 ConvolutionalEncoder,
39 AsmFramer::proximity1(),
40 writer,
41 )
42}
43
44pub fn reader<R: PhysicalRead>(
48 reader: R,
49 frame_len: usize,
50) -> CodingReader<TcRandomizer, AsmDeframer, ViterbiDecoder, R, PLTU_BUF> {
51 CodingReader::new(
52 TcRandomizer::new(),
53 AsmDeframer::proximity1(frame_len),
54 ViterbiDecoder::new(LLR_MAG),
55 reader,
56 )
57}