comparison trau-decode/parse-main.c @ 76:d4ee42801cdc

trau-decode: factor out parse-fr-common.c
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 08 Feb 2025 04:57:15 +0000
parents f77a48a01ff0
children 729dbac9df82
comparison
equal deleted inserted replaced
75:b518ab15b518 76:d4ee42801cdc
23 NOT_D144, 23 NOT_D144,
24 D144_SYNC, 24 D144_SYNC,
25 D144_EDATA, 25 D144_EDATA,
26 } d144_state; 26 } d144_state;
27 static unsigned hunt_for_0_count, frame_pos_count; 27 static unsigned hunt_for_0_count, frame_pos_count;
28 static uint8_t in_frame_2bit[160], frame_bits[320], d_bits[260]; 28 static uint8_t in_frame_2bit[160], frame_bits[320];
29 29
30 static void 30 static void
31 unpack_dibits() 31 unpack_dibits()
32 { 32 {
33 int i, inb; 33 int i, inb;
61 if (*bits) 61 if (*bits)
62 accum |= 1; 62 accum |= 1;
63 bits++; 63 bits++;
64 } 64 }
65 return accum; 65 return accum;
66 }
67
68 static void
69 collect_d_bits()
70 {
71 bcopy(frame_bits + 33, d_bits, 15);
72 bcopy(frame_bits + 49, d_bits + 15, 15);
73 bcopy(frame_bits + 65, d_bits + 30, 15);
74 bcopy(frame_bits + 81, d_bits + 45, 15);
75 bcopy(frame_bits + 97, d_bits + 60, 15);
76 bcopy(frame_bits + 113, d_bits + 75, 15);
77 bcopy(frame_bits + 129, d_bits + 90, 15);
78 bcopy(frame_bits + 145, d_bits + 105, 15);
79 bcopy(frame_bits + 161, d_bits + 120, 15);
80 bcopy(frame_bits + 177, d_bits + 135, 15);
81 bcopy(frame_bits + 193, d_bits + 150, 15);
82 bcopy(frame_bits + 209, d_bits + 165, 15);
83 bcopy(frame_bits + 225, d_bits + 180, 15);
84 bcopy(frame_bits + 241, d_bits + 195, 15);
85 bcopy(frame_bits + 257, d_bits + 210, 15);
86 bcopy(frame_bits + 273, d_bits + 225, 15);
87 bcopy(frame_bits + 289, d_bits + 240, 15);
88 bcopy(frame_bits + 305, d_bits + 255, 5);
89 }
90
91 static void
92 print_fr_efr_frame(c1_5)
93 unsigned c1_5;
94 {
95 switch (c1_5) {
96 case 0x02:
97 case 0x1C:
98 collect_d_bits();
99 print_fr_frame(d_bits);
100 break;
101 case 0x1A:
102 collect_d_bits();
103 check_efr_crc(d_bits);
104 print_efr_frame(d_bits);
105 break;
106 }
107 } 66 }
108 67
109 static void 68 static void
110 print_data_subframe(nf, bits) 69 print_data_subframe(nf, bits)
111 uint8_t *bits; 70 uint8_t *bits;
211 case 0x0E: 170 case 0x0E:
212 c6_11 = bits_to_num(frame_bits + 22, 6); 171 c6_11 = bits_to_num(frame_bits + 22, 6);
213 printf(" C6-C11: %u\n", c6_11); 172 printf(" C6-C11: %u\n", c6_11);
214 printf(" C12=%u C13=%u C14=%u C15=%u\n", frame_bits[28], 173 printf(" C12=%u C13=%u C14=%u C15=%u\n", frame_bits[28],
215 frame_bits[29], frame_bits[30], frame_bits[31]); 174 frame_bits[29], frame_bits[30], frame_bits[31]);
216 print_fr_efr_frame(c1_5); 175 print_fr_efr_frame(frame_bits, c1_5);
217 printf(" C16=%u C17=%u C18=%u C19=%u C20=%u C21=%u\n", 176 printf(" C16=%u C17=%u C18=%u C19=%u C20=%u C21=%u\n",
218 frame_bits[310], frame_bits[311], frame_bits[312], 177 frame_bits[310], frame_bits[311], frame_bits[312],
219 frame_bits[313], frame_bits[314], frame_bits[315]); 178 frame_bits[313], frame_bits[314], frame_bits[315]);
220 printf(" T1=%u T2=%u T3=%u T4=%u\n", frame_bits[316], 179 printf(" T1=%u T2=%u T3=%u T4=%u\n", frame_bits[316],
221 frame_bits[317], frame_bits[318], frame_bits[319]); 180 frame_bits[317], frame_bits[318], frame_bits[319]);