annotate hrutil/dec-parse.c @ 567:2fcb6b27ee9b

hrutil: new program gsmhr-rpf2hex
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 12 Feb 2025 02:32:21 +0000
parents 30c57cf6e87d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
517
2d703e1e9107 hrutil: implement gsmhr-dec-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 515
diff changeset
2 * This program reads an HRv1 *.dec file in ETSI test sequence format
2d703e1e9107 hrutil: implement gsmhr-dec-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 515
diff changeset
3 * (decoder input format) and displays its content in human-readable form.
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <stdio.h>
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdint.h>
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdlib.h>
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <string.h>
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <strings.h>
564
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
11 #include <unistd.h>
515
bb36ef735f25 hrutil: starting with gsmhr-cod-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 213
diff changeset
12 #include "../libgsmhr1/tw_gsmhr.h"
564
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
13 #include "../libtest/local_endian.h"
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 main(argc, argv)
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 char **argv;
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 {
148
bbe5669f0f29 gsmefr-cod-parse: add BE support
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
18 char *infname;
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 FILE *inf;
148
bbe5669f0f29 gsmefr-cod-parse: add BE support
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
20 int big_endian;
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 unsigned frame_no;
517
2d703e1e9107 hrutil: implement gsmhr-dec-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 515
diff changeset
22 int16_t params[GSMHR_NUM_PARAMS_DEC];
564
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
23 int opt, rc;
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
24 extern int optind;
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
564
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
26 big_endian = is_native_big_endian();
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
27 while ((opt = getopt(argc, argv, "bl")) != EOF) {
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
28 switch (opt) {
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
29 case 'b':
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
30 big_endian = 1;
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
31 continue;
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
32 case 'l':
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
33 big_endian = 0;
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
34 continue;
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
35 default:
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
36 usage:
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
37 fprintf(stderr, "usage: %s [-b|-l] file.dec\n",
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
38 argv[0]);
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
39 exit(1);
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
40 }
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 }
564
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
42 if (argc != optind + 1)
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
43 goto usage;
30c57cf6e87d gsmhr-dec-parse: read native endian by default
Mychaela Falconia <falcon@freecalypso.org>
parents: 517
diff changeset
44 infname = argv[optind];
148
bbe5669f0f29 gsmefr-cod-parse: add BE support
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
45 inf = fopen(infname, "r");
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 if (!inf) {
148
bbe5669f0f29 gsmefr-cod-parse: add BE support
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
47 perror(infname);
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 exit(1);
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 }
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 for (frame_no = 0; ; frame_no++) {
517
2d703e1e9107 hrutil: implement gsmhr-dec-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 515
diff changeset
51 rc = read_dec_frame(inf, big_endian, params, infname, frame_no);
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 if (!rc)
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 break;
517
2d703e1e9107 hrutil: implement gsmhr-dec-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 515
diff changeset
54 printf("#%u: BFI=%d UFI=%d SID=%d TAF=%d\n", frame_no,
2d703e1e9107 hrutil: implement gsmhr-dec-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 515
diff changeset
55 params[18], params[19], params[20], params[21]);
515
bb36ef735f25 hrutil: starting with gsmhr-cod-parse
Mychaela Falconia <falcon@freecalypso.org>
parents: 213
diff changeset
56 print_frame_params(params);
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 }
213
46a6e6b6841a gsmefr-{cod,dec}-parse: missed exit(0) at the end
Mychaela Falconia <falcon@freecalypso.org>
parents: 148
diff changeset
58 exit(0);
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 }