# HG changeset patch # User Mychaela Falconia # Date 1738977234 0 # Node ID 06f241846c67cef651276edf6357da8f147f4bf8 # Parent afebef67e8d45980d588e20625ac0ddf6cfa574c trau-hr-dump: add -r option for raw frame output diff -r afebef67e8d4 -r 06f241846c67 trau-decode/trau-hr-dump.c --- 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); }