annotate trau-decode/parse-data.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 trau-decode/parse-main.c@d4ee42801cdc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
77
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
2 * This module contains a bit of code that has been factored out of
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
3 * trau-parse program; it handles data frames.
0
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <stdio.h>
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdint.h>
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdlib.h>
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <string.h>
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <strings.h>
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 static unsigned
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 bits_to_num(bits, nbits)
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 uint8_t *bits;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 unsigned nbits;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 {
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 unsigned accum;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 unsigned n;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 accum = 0;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 for (n = 0; n < nbits; n++) {
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 accum <<= 1;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 if (*bits)
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 accum |= 1;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 bits++;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 }
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 return accum;
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 }
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 static void
38
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
31 print_data_subframe(nf, bits)
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
32 uint8_t *bits;
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
33 {
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
34 unsigned nb;
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
35
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
36 printf(" Data frame %d:", nf);
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
37 for (nb = 0; nb < 9; nb++) {
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
38 printf(" %02X", bits_to_num(bits, 8));
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
39 bits += 8;
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
40 }
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
41 putchar('\n');
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
42 }
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
43
77
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
44 void
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
45 print_data_frame(frame_bits)
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
46 uint8_t *frame_bits;
38
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
47 {
77
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
48 printf(" C6-C15: %u%u%u%u%u%u%u%u%u%u\n", frame_bits[22],
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
49 frame_bits[23], frame_bits[24], frame_bits[25],
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
50 frame_bits[26], frame_bits[27], frame_bits[28],
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
51 frame_bits[29], frame_bits[30], frame_bits[31]);
38
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
52 print_data_subframe(0, frame_bits + 4 * 8);
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
53 print_data_subframe(1, frame_bits + 13 * 8);
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
54 print_data_subframe(2, frame_bits + 22 * 8);
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
55 print_data_subframe(3, frame_bits + 31 * 8);
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
56 }
d7674c80426c trau-parse: add decoding of data frames
Mychaela Falconia <falcon@freecalypso.org>
parents: 10
diff changeset
57
77
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
58 void
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
59 print_edata_frame(frame_bits)
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
60 uint8_t *frame_bits;
0
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 {
77
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
62 printf(" C6-C13: %u%u%u%u%u%u%u%u\n", frame_bits[22],
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
63 frame_bits[23], frame_bits[24], frame_bits[25],
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
64 frame_bits[26], frame_bits[27], frame_bits[28],
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
65 frame_bits[29]);
729dbac9df82 trau-decode: factor out parse-data.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 76
diff changeset
66 printf(" M1=%u M2=%u\n", frame_bits[30], frame_bits[31]);
0
131e0f1972bb beginning of trau-parse program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 }