FreeCalypso > hg > freecalypso-tools
annotate librftab/smallconv.c @ 924:d452188587b4
rvinterf: begin change to backslash escape output format
Right now throughout the rvinterf suite, any time we emit output that
is expected to be ASCII, but may contain non-printable garbage, we use
'cat -v' form of garbage character representation. Unfortunately, this
transformation is lossy (can't be reversed 100% reliably in the user's
wetware), hence we would like to migrate to C-style backslash escapes,
including doubling of any already-present backslashes - this escape
mechanism is lossless. Begin this change by converting the output
of RV and L1 traces in rvinterf and rvtdump.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 23 May 2023 03:10:50 +0000 |
parents | b73c21a2148f |
children |
rev | line source |
---|---|
142
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * /gsm/rf/afcdac and /gsm/rf/stdmap each store a single 16-bit value, |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * and are not tables in the rftw/rftr sense, hence the code in rftablewr.c |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * does not handle these two. However, in fc-cal2text we would like to |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * handle their conversion from binary to ASCII the same way as the bigger |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * tables, hence the two functions in this module. |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 */ |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <sys/types.h> |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdio.h> |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <stdint.h> |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include <endian.h> |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 void |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 write_afcdac_ascii(bin, outf) |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 uint16_t *bin; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 FILE *outf; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 { |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 int i; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 i = le16toh(*bin); |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 if (i >= 32768) |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 i -= 65536; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 fprintf(outf, "%d\n", i); |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 } |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 void |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 write_stdmap_ascii(bin, outf) |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 uint16_t *bin; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 FILE *outf; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 { |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 int i; |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 i = le16toh(*bin); |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 fprintf(outf, "0x%04X\n", i); |
d41edd329670
fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 } |