# HG changeset patch # User Mychaela Falconia # Date 1726170629 0 # Node ID d7674c80426ccbab766ba7119572a9a170030efa # Parent 4ab7cc414ed21ad795a59acee7a8df2f075d9cc8 trau-parse: add decoding of data frames diff -r 4ab7cc414ed2 -r d7674c80426c trau-decode/parse-main.c --- a/trau-decode/parse-main.c Tue Sep 03 21:20:47 2024 +0000 +++ b/trau-decode/parse-main.c Thu Sep 12 19:50:29 2024 +0000 @@ -83,6 +83,29 @@ } static void +print_data_subframe(nf, bits) + uint8_t *bits; +{ + unsigned nb; + + printf(" Data frame %d:", nf); + for (nb = 0; nb < 9; nb++) { + printf(" %02X", bits_to_num(bits, 8)); + bits += 8; + } + putchar('\n'); +} + +static void +print_data_frame() +{ + print_data_subframe(0, frame_bits + 4 * 8); + print_data_subframe(1, frame_bits + 13 * 8); + print_data_subframe(2, frame_bits + 22 * 8); + print_data_subframe(3, frame_bits + 31 * 8); +} + +static void process_frame() { unsigned c1_5, c6_11; @@ -107,6 +130,15 @@ case 0x0E: fputs(" (idle DL)", stdout); break; + case 0x08: + fputs(" (data UL)", stdout); + break; + case 0x16: + fputs(" (data DL)", stdout); + break; + case 0x14: + fputs(" (D144 sync)", stdout); + break; } putchar('\n'); c6_11 = bits_to_num(frame_bits + 22, 6); @@ -124,6 +156,11 @@ check_efr_crc(d_bits); print_efr_frame(d_bits); break; + case 0x08: + case 0x16: + case 0x14: + print_data_frame(); + return; } printf(" C16=%u C17=%u C18=%u C19=%u C20=%u C21=%u\n", frame_bits[310], frame_bits[311], frame_bits[312],