annotate rvinterf/etmsync/l1tmcmd.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 aec320fe2653
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
273
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This module contains the user command wrappers around the functions
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * in the l1tmops.c module.
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <sys/types.h>
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <ctype.h>
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdio.h>
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <string.h>
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <strings.h>
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include <stdlib.h>
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include "pktmux.h"
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include "limits.h"
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 #include "localtypes.h"
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 #include "tm3.h"
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 #include "l1tm.h"
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 #include "exitcodes.h"
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 extern void write_afcparams_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 extern void write_agcwords_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 extern void write_agcglobals_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 extern void write_il2agc_table();
290
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
23 extern void write_tx_ramps_table();
273
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 extern void write_tx_levels_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 extern void write_tx_calchan_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 extern void write_tx_caltemp_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 extern void write_rx_calchan_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 extern void write_rx_caltemp_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 extern void write_rx_agcparams_table();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 cmd_tms(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 u16 arg;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 arg = strtoul(argv[1], 0, 0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 return do_tms(arg);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 static
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 is_num_string(argstr)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 char *argstr;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 char *cp = argstr;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 if (!isdigit(*cp++))
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 while (*cp) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 if (!isdigit(*cp++))
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 return(1);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 struct kwtab {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 char *kw;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 int val;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 };
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 static
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 keyword_or_num(argstr, kwtab, valp)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 char *argstr;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 struct kwtab *kwtab;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 u16 *valp;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 struct kwtab *tp;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 if (is_num_string(argstr)) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 *valp = atoi(argstr);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 for (tp = kwtab; tp->kw; tp++) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 if (!strcmp(tp->kw, argstr)) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 *valp = tp->val;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 printf("error: non-numeric argument not understood\n");
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 static struct kwtab rf_param_arg[] = {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 {"bcch-arfcn", BCCH_ARFCN},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 {"tch-arfcn", TCH_ARFCN},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 {"mon-arfcn", MON_ARFCN},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 {"pdtch-arfcn", PDTCH_ARFCN},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 {"std-band", STD_BAND_FLAG},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 {"afc-enable", AFC_ENA_FLAG},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 {"afc-dac-val", AFC_DAC_VALUE},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 {"init-afc-dac", INITIAL_AFC_DAC},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 {"multislot-class", MULTISLOT_CLASS},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 {0, 0}
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 };
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 cmd_rfpw2(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 u16 index, value;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 if (keyword_or_num(argv[1], rf_param_arg, &index))
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 value = strtol(argv[2], 0, 0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 return do_rfpw(index, value);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 cmd_rfpw3(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 u16 index;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 u8 val1, val2;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 if (keyword_or_num(argv[1], rf_param_arg, &index))
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 val1 = strtoul(argv[2], 0, 0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 val2 = strtoul(argv[3], 0, 0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 return do_rfpw(index, (val2 << 8) | val1);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 cmd_rfpw(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 switch (argc) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 case 3:
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 return cmd_rfpw2(argc, argv);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 case 4:
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 return cmd_rfpw3(argc, argv);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 default:
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 fprintf(stderr, "BUG: wrong argc in cmd_rfpw()\n");
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 return(ERROR_BUG);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 cmd_rfpr(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 u16 index, val;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 int rc;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 if (keyword_or_num(argv[1], rf_param_arg, &index))
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 rc = do_rfpr(index, &val);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 if (rc)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 return(rc);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 if (val >= 0x8000)
275
81da9717babe fc-tmsync: missed newline at the end of rfpr output
Mychaela Falconia <falcon@freecalypso.org>
parents: 273
diff changeset
145 printf("read value: 0x%04X (%u or %d)\n", val, val,
273
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 (int)val - 65536);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 else
275
81da9717babe fc-tmsync: missed newline at the end of rfpr output
Mychaela Falconia <falcon@freecalypso.org>
parents: 273
diff changeset
148 printf("read value: 0x%04X (%u)\n", val, val);
273
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 static struct kwtab rf_table_arg[] = {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 {"rx-agc-table", RX_AGC_TABLE},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 {"afcparams", AFC_PARAMS},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 {"rx-agc-global-params", RX_AGC_GLOBAL_PARAMS},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 {"rx-il2agc-max", RX_IL_2_AGC_MAX},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 {"rx-il2agc-pwr", RX_IL_2_AGC_PWR},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 {"rx-il2agc-av", RX_IL_2_AGC_AV},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 {"tx-levels", TX_LEVELS},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 {"tx-calchan", TX_CAL_CHAN},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 {"tx-caltemp", TX_CAL_TEMP},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 {"rx-calchan", RX_CAL_CHAN},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 {"rx-caltemp", RX_CAL_TEMP},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 {"rx-agcparams", RX_AGC_PARAMS},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 {0, 0}
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 };
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 static struct table_map {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 int index;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 int size;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 void (*func)();
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 } table_map[] = {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 {RX_AGC_TABLE, 40, write_agcwords_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 {AFC_PARAMS, 24, write_afcparams_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 {RX_AGC_GLOBAL_PARAMS, 8, write_agcglobals_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 {RX_IL_2_AGC_MAX, 121, write_il2agc_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 {RX_IL_2_AGC_PWR, 121, write_il2agc_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 {RX_IL_2_AGC_AV, 121, write_il2agc_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 {TX_LEVELS, 128, write_tx_levels_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 {TX_CAL_CHAN, 128, write_tx_calchan_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 {TX_CAL_TEMP, 40, write_tx_caltemp_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 {RX_CAL_CHAN, 40, write_rx_calchan_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 {RX_CAL_TEMP, 44, write_rx_caltemp_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 {RX_AGC_PARAMS, 8, write_rx_agcparams_table},
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 {0, 0, 0}
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 };
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 cmd_rftr(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 u16 index;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 struct table_map *tp;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 u_char table_data[MAX_RF_TABLE_SIZE];
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 int rc;
290
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
195 FILE *of;
273
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 if (keyword_or_num(argv[1], rf_table_arg, &index))
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 for (tp = table_map; tp->index; tp++) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 if (tp->index == index)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 break;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 if (!tp->index) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 printf("error: table index %u not supported, use fc-tmsh\n",
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 index);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 rc = do_rftr(index, table_data, tp->size);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 if (rc)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 return(rc);
290
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
211 if (argv[2]) {
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
212 of = fopen(argv[2], "w");
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
213 if (!of) {
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
214 perror(argv[2]);
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
215 return(ERROR_UNIX);
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
216 }
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
217 tp->func(table_data, of);
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
218 fclose(of);
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
219 } else
94234e9c843b fc-tmsync: rftr save to file implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 275
diff changeset
220 tp->func(table_data, stdout);
273
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 cmd_ttr(argc, argv)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 char **argv;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 unsigned index;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 u_char ramp_data[32];
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 int rc;
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 index = strtoul(argv[1], 0, 0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 if (index >= 16) {
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 printf("error: index out of range\n");
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 return(ERROR_USAGE);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 }
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 rc = do_ttr(index, ramp_data);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 if (rc)
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 return(rc);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 write_tx_ramp(ramp_data, stdout);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 return(0);
18a8fb3d845b fc-tmsync: user command wrappers implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 }
291
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
242
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
243 cmd_ttr_all(argc, argv)
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
244 char **argv;
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
245 {
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
246 u_char table[512];
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
247 int rc, i;
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
248 FILE *of;
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
249
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
250 for (i = 0; i < 16; i++) {
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
251 rc = do_ttr(i, table + i * 32);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
252 if (rc)
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
253 return(rc);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
254 }
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
255 of = fopen(argv[1], "w");
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
256 if (!of) {
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
257 perror(argv[1]);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
258 return(ERROR_UNIX);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
259 }
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
260 write_tx_ramps_table(table, of);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
261 fclose(of);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
262 return(0);
dd97e75620a7 fc-tmsync: ttr-all implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 290
diff changeset
263 }
844
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
264
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
265 static struct kwtab misc_param_arg[] = {
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
266 {"adc-interval", ADC_INTERVAL},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
267 {"adc-enable", ADC_ENA_FLAG},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
268 {"converted-adc0", CONVERTED_ADC0},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
269 {"converted-adc1", CONVERTED_ADC1},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
270 {"converted-adc2", CONVERTED_ADC2},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
271 {"converted-adc3", CONVERTED_ADC3},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
272 {"converted-adc4", CONVERTED_ADC4},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
273 {"converted-adc5", CONVERTED_ADC5},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
274 {"converted-adc6", CONVERTED_ADC6},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
275 {"converted-adc7", CONVERTED_ADC7},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
276 {"converted-adc8", CONVERTED_ADC8},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
277 {"raw-adc0", RAW_ADC0},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
278 {"raw-adc1", RAW_ADC1},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
279 {"raw-adc2", RAW_ADC2},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
280 {"raw-adc3", RAW_ADC3},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
281 {"raw-adc4", RAW_ADC4},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
282 {"raw-adc5", RAW_ADC5},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
283 {"raw-adc6", RAW_ADC6},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
284 {"raw-adc7", RAW_ADC7},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
285 {"raw-adc8", RAW_ADC8},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
286 {"adc0-coeff-a", ADC0_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
287 {"adc1-coeff-a", ADC1_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
288 {"adc2-coeff-a", ADC2_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
289 {"adc3-coeff-a", ADC3_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
290 {"adc4-coeff-a", ADC4_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
291 {"adc5-coeff-a", ADC5_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
292 {"adc6-coeff-a", ADC6_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
293 {"adc7-coeff-a", ADC7_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
294 {"adc8-coeff-a", ADC8_COEFF_A},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
295 {"adc0-coeff-b", ADC0_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
296 {"adc1-coeff-b", ADC1_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
297 {"adc2-coeff-b", ADC2_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
298 {"adc3-coeff-b", ADC3_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
299 {"adc4-coeff-b", ADC4_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
300 {"adc5-coeff-b", ADC5_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
301 {"adc6-coeff-b", ADC6_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
302 {"adc7-coeff-b", ADC7_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
303 {"adc8-coeff-b", ADC8_COEFF_B},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
304 {"sleep-mode", SLEEP_MODE},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
305 {"current-tm-mode", CURRENT_TM_MODE},
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
306 {0, 0}
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
307 };
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
308
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
309 cmd_mpr(argc, argv)
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
310 char **argv;
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
311 {
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
312 u16 index, val;
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
313 int rc;
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
314
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
315 if (keyword_or_num(argv[1], misc_param_arg, &index))
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
316 return(ERROR_USAGE);
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
317 rc = do_mpr(index, &val);
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
318 if (rc)
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
319 return(rc);
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
320 if (val >= 0x8000)
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
321 printf("read value: 0x%04X (%u or %d)\n", val, val,
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
322 (int)val - 65536);
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
323 else
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
324 printf("read value: 0x%04X (%u)\n", val, val);
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
325 return(0);
4694c7686ccd fc-tmsync: add mpr command
Mychaela Falconia <falcon@freecalypso.org>
parents: 291
diff changeset
326 }
845
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
327
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
328 cmd_madc(argc, argv)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
329 char **argv;
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
330 {
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
331 u16 val;
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
332 int rc;
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
333
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
334 rc = do_mpr(CONVERTED_ADC0, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
335 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
336 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
337 printf("VBAT=%u\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
338 rc = do_mpr(CONVERTED_ADC1, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
339 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
340 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
341 printf("VCHG=%u\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
342 rc = do_mpr(RAW_ADC2, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
343 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
344 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
345 printf("ICHG=%u\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
346 rc = do_mpr(CONVERTED_ADC3, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
347 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
348 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
349 printf("VBACKUP=%u\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
350 rc = do_mpr(RAW_ADC4, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
351 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
352 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
353 printf("ADIN1=0x%04X\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
354 rc = do_mpr(RAW_ADC5, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
355 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
356 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
357 printf("ADIN2=0x%04X\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
358 rc = do_mpr(RAW_ADC6, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
359 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
360 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
361 printf("ADIN3=0x%04X\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
362 rc = do_mpr(RAW_ADC7, &val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
363 if (rc)
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
364 return(rc);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
365 printf("ADIN4=0x%04X\n", val);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
366 return(0);
aec320fe2653 fc-tmsync: new madc command reads all 8 MADC channels
Mychaela Falconia <falcon@freecalypso.org>
parents: 844
diff changeset
367 }