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 } | 
