FreeCalypso > hg > gsm-net-reveng
comparison trau-decode/parse-main.c @ 77:729dbac9df82
trau-decode: factor out parse-data.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 08 Feb 2025 05:16:35 +0000 |
parents | d4ee42801cdc |
children | 00fd38c7c8fe |
comparison
equal
deleted
inserted
replaced
76:d4ee42801cdc | 77:729dbac9df82 |
---|---|
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 print_data_subframe(nf, bits) | |
70 uint8_t *bits; | |
71 { | |
72 unsigned nb; | |
73 | |
74 printf(" Data frame %d:", nf); | |
75 for (nb = 0; nb < 9; nb++) { | |
76 printf(" %02X", bits_to_num(bits, 8)); | |
77 bits += 8; | |
78 } | |
79 putchar('\n'); | |
80 } | |
81 | |
82 static void | |
83 print_data_frame() | |
84 { | |
85 print_data_subframe(0, frame_bits + 4 * 8); | |
86 print_data_subframe(1, frame_bits + 13 * 8); | |
87 print_data_subframe(2, frame_bits + 22 * 8); | |
88 print_data_subframe(3, frame_bits + 31 * 8); | |
89 } | 66 } |
90 | 67 |
91 static void | 68 static void |
92 dump_raw_frame() | 69 dump_raw_frame() |
93 { | 70 { |
182 case 0x08: | 159 case 0x08: |
183 case 0x09: | 160 case 0x09: |
184 case 0x16: | 161 case 0x16: |
185 case 0x17: | 162 case 0x17: |
186 case 0x14: | 163 case 0x14: |
187 printf(" C6-C15: %u%u%u%u%u%u%u%u%u%u\n", frame_bits[22], | 164 print_data_frame(frame_bits); |
188 frame_bits[23], frame_bits[24], frame_bits[25], | |
189 frame_bits[26], frame_bits[27], frame_bits[28], | |
190 frame_bits[29], frame_bits[30], frame_bits[31]); | |
191 print_data_frame(); | |
192 break; | 165 break; |
193 case 0x1F: | 166 case 0x1F: |
194 printf(" C6-C13: %u%u%u%u%u%u%u%u\n", frame_bits[22], | 167 print_edata_frame(frame_bits); |
195 frame_bits[23], frame_bits[24], frame_bits[25], | |
196 frame_bits[26], frame_bits[27], frame_bits[28], | |
197 frame_bits[29]); | |
198 printf(" M1=%u M2=%u\n", frame_bits[30], frame_bits[31]); | |
199 break; | 168 break; |
200 case 0x06: | 169 case 0x06: |
201 c6_11 = bits_to_num(frame_bits + 22, 6); | 170 c6_11 = bits_to_num(frame_bits + 22, 6); |
202 printf(" C6-C11: %u\n", c6_11); | 171 printf(" C6-C11: %u\n", c6_11); |
203 printf(" RIF=%u C13=%u Config_Prot=%u%u%u Msg_No=%u%u\n", | 172 printf(" RIF=%u C13=%u Config_Prot=%u%u%u Msg_No=%u%u\n", |