FreeCalypso > hg > gsm-net-reveng
changeset 73:06f241846c67
trau-hr-dump: add -r option for raw frame output
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 08 Feb 2025 01:13:54 +0000 |
parents | afebef67e8d4 |
children | e78c6b1ecb91 |
files | trau-decode/trau-hr-dump.c |
diffstat | 1 files changed, 44 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/trau-decode/trau-hr-dump.c Thu Nov 28 02:53:59 2024 +0000 +++ b/trau-decode/trau-hr-dump.c Sat Feb 08 01:13:54 2025 +0000 @@ -31,6 +31,7 @@ static uint8_t *filebuf; static unsigned total_size; +static int include_raw; static void read_ts_file(filename, subslot_arg) @@ -138,6 +139,24 @@ } static void +dump_raw_frame(frame_bits) + ubit_t *frame_bits; +{ + uint8_t *sp = frame_bits; + unsigned n, m, d; + + for (n = 0; n < 40; n++) { + d = 0; + for (m = 0; m < 4; m++) { + d <<= 1; + d |= *sp++; + } + printf("%x", d); + } + putchar('\n'); +} + +static void process_frame(pos) unsigned pos; { @@ -148,6 +167,8 @@ int crc_stat; printf("Frame at 0x%x:\n", pos); + if (include_raw) + dump_raw_frame(frame); printf(" C1-C4: %u%u%u%u OP %s\n", frame[9], frame[10], frame[11], frame[12], bit_parity(frame + 9, 5) ? "good" : "bad"); bcopy(frame + 14, xc_bits, 2); @@ -223,11 +244,31 @@ main(argc, argv) char **argv; { - if (argc != 3) { - fprintf(stderr, "usage: %s binfile subslot\n", argv[0]); + char *filename, *subslot_arg; + + switch (argc) { + case 3: + if (argv[1][0] == '-') + goto usage; + filename = argv[1]; + subslot_arg = argv[2]; + include_raw = 0; + break; + case 4: + if (strcmp(argv[1], "-r")) + goto usage; + if (argv[2][0] == '-') + goto usage; + filename = argv[2]; + subslot_arg = argv[3]; + include_raw = 1; + break; + default: + usage: + fprintf(stderr, "usage: %s [-r] binfile subslot\n", argv[0]); exit(1); } - read_ts_file(argv[1], argv[2]); + read_ts_file(filename, subslot_arg); process_filebuf(); exit(0); }