annotate rvinterf/etmsync/readcal.c @ 1011:6d9b10633f10 default tip

etmsync Pirelli IMEI retrieval: fix poor use of printf() Bug reported by Vadim Yanitskiy <fixeria@osmocom.org>: the construct where a static-allocated string was passed to printf() without any format arguments causes newer compilers to report a security problem. Given that formatted output is not needed here, just fixed string output, change printf() to fputs(), and direct the error message to stderr while at it.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 May 2024 17:29:57 +0000
parents e40bb5a6c6b9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
278
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This utility reads the RF calibration data out of a TI-based GSM device
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * using the L1TM protocol over RVTMUX. Warning: invasive tms 1 and rfpw 7
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * commands are issued to the target in order to select the band of interest!
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 */
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <sys/types.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <sys/file.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <stdio.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <stdlib.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include <string.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include <strings.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include <unistd.h>
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 #include "tm3.h"
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 #include "l1tm.h"
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 #include "localtypes.h"
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 #include "exitcodes.h"
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 int compal_mode;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 extern char *socket_pathname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 extern char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 /* macro for encoding std and band in rfpw 7 command */
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 #define RFPW_STD_BAND(std,band) ((std) | ((band) << 8))
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 static struct band {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 char *argname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 char *filename;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 unsigned rfpw_std_band;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 } bands[] = {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 {"900", "900", RFPW_STD_BAND(6, 0)},
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 {"1800", "1800", RFPW_STD_BAND(6, 1)},
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 {"1900", "1900", RFPW_STD_BAND(8, 1)},
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 {"850", "850", RFPW_STD_BAND(8, 0)},
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 {"1900s", "1900", RFPW_STD_BAND(3, 0)},
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 {"850s", "850", RFPW_STD_BAND(7, 0)},
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 {0, 0, 0}
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 };
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 static void
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 write_out_file(filename, data, size)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 char *filename;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 u_char *data;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 int fd;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0666);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 if (fd < 0) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 perror(filename);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 exit(ERROR_UNIX);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 write(fd, data, size);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 close(fd);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 copy_afcdac()
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 u16 datum;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 u_char bytes[2];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 rc = do_rfpr(INITIAL_AFC_DAC, &datum);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 exit(rc);
279
36ae854536e8 fc-readcal: fixed bug in the shifting of afcdac
Mychaela Falconia <falcon@freecalypso.org>
parents: 278
diff changeset
66 datum <<= 3;
278
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 bytes[0] = datum;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 bytes[1] = datum >> 8;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 write_out_file("afcdac", bytes, 2);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 copy_afcparams()
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 u_char table[24];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 rc = do_rftr(AFC_PARAMS, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 write_out_file("afcparams", table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 copy_rx_agcparams(bandname)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 char *bandname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 u_char table[8];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 char filename[32];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 rc = do_rftr(RX_AGC_PARAMS, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 sprintf(filename, "rx/agcparams.%s", bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 write_out_file(filename, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 copy_rx_calchan(bandname)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 char *bandname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 u_char table[40];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 char filename[32];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 rc = do_rftr(RX_CAL_CHAN, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 sprintf(filename, "rx/calchan.%s", bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 write_out_file(filename, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 copy_tx_levels(bandname)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 char *bandname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 u_char table[128];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 char filename[32];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 rc = do_rftr(TX_LEVELS, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 sprintf(filename, "tx/levels.%s", bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 write_out_file(filename, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 copy_tx_calchan(bandname)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 char *bandname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 u_char table[128];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 char filename[32];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 rc = do_rftr(TX_CAL_CHAN, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 sprintf(filename, "tx/calchan.%s", bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 write_out_file(filename, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 copy_tx_ramps(bandname)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 char *bandname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 u_char table[512];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 char filename[32];
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 int rc, i;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 for (i = 0; i < 16; i++) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 rc = do_ttr(i, table + i * 32);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 sprintf(filename, "tx/ramps.%s", bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 write_out_file(filename, table, sizeof table);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 process_band(bandname)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 char *bandname;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 rc = host_mkdir("rx");
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 copy_rx_agcparams(bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 if (!compal_mode)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 copy_rx_calchan(bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 rc = host_mkdir("tx");
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 copy_tx_levels(bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 if (!compal_mode)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 copy_tx_calchan(bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 copy_tx_ramps(bandname);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 single_op_main(argc, argv)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 char **argv;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 int rc;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 char **ap;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 struct band *tp;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 if (argc < 2) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 fprintf(stderr,
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 "usage: fc-readcal [options] output-dir band...\n");
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 exit(ERROR_USAGE);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 if (chdir(argv[0]) < 0) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 perror(argv[0]);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 exit(ERROR_UNIX);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 rc = do_tms(1);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 for (ap = argv + 1; *ap; ap++) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 if (!strcmp(*ap, "afc")) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 copy_afcdac();
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 copy_afcparams();
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 for (tp = bands; tp->argname; tp++)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 if (!strcmp(*ap, tp->argname))
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 break;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 if (!tp->argname) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 fprintf(stderr, "error: unknown band name \"%s\"\n",
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 *ap);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 exit(ERROR_USAGE);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 rc = do_rfpw(STD_BAND_FLAG, tp->rfpw_std_band);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 if (rc)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 exit(rc);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 process_band(tp->filename);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 exit(0);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 main(argc, argv)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 char **argv;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 extern int optind;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 extern char *optarg;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 int c, sopt = 0;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 while ((c = getopt(argc, argv, "B:cl:p:s:w:")) != EOF)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 switch (c) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 case 'B':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 rvinterf_Bopt = optarg;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 case 'c':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 compal_mode++;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 case 'l':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 rvinterf_lopt = optarg;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 case 'p':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 rvinterf_ttyport = optarg;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 case 's':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 socket_pathname = optarg;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 sopt++;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 case 'w':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 rvinterf_wopt = optarg;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 continue;
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 case '?':
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 default:
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 /* error msg already printed */
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 exit(ERROR_USAGE);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 if (rvinterf_ttyport) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 if (sopt) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 fprintf(stderr,
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 "%s error: -p and -s options are mutually exclusive\n",
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 argv[0]);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 exit(ERROR_USAGE);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 if (compal_mode && !rvinterf_Bopt)
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 rvinterf_Bopt = "57600";
423
e40bb5a6c6b9 rvinterf clients: implemented 30 ms delay for batch ops with -p
Mychaela Falconia <falcon@freecalypso.org>
parents: 279
diff changeset
258 launch_rvinterf(1);
278
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 } else {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260 if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) {
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 fprintf(stderr,
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 "%s error: -B, -l and -w options are meaningful only when launching rvinterf\n",
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 argv[0]);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 exit(ERROR_USAGE);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 connect_local_socket();
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 }
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 return single_op_main(argc - optind, argv + optind);
31d056f37647 fc-readcal written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270 }