annotate rvinterf/tmsh/saverftab.c @ 139:b5e3899b1265

fc-tmsh: save-rf-table command implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 26 Feb 2017 23:13:52 +0000
parents
children e6c265bf5a6d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
139
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * Here we implement fc-tmsh operator commands which save the RF table data
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * received via rftr and ttr commands into files.
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <sys/types.h>
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdio.h>
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <string.h>
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <strings.h>
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <stdlib.h>
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include "l1tm.h"
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include "exitcodes.h"
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 extern unsigned rftr_table_index, rftr_table_size;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 extern u_char rftr_table_data[];
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 extern u_char ttr_ramp_data[];
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 extern void write_afcparams_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 extern void write_agcwords_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 extern void write_agcglobals_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 extern void write_il2agc_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 extern void write_tx_levels_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 extern void write_tx_calchan_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 extern void write_tx_caltemp_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 extern void write_rx_calchan_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 extern void write_rx_caltemp_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 extern void write_rx_agcparams_table();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 static struct table_map {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 int index;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 int size;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 void (*func)();
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 } table_map[] = {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 {RX_AGC_TABLE, 40, write_agcwords_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 {AFC_PARAMS, 24, write_afcparams_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 {RX_AGC_GLOBAL_PARAMS, 8, write_agcglobals_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 {RX_IL_2_AGC_MAX, 121, write_il2agc_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 {RX_IL_2_AGC_PWR, 121, write_il2agc_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 {RX_IL_2_AGC_AV, 121, write_il2agc_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 {TX_LEVELS, 128, write_tx_levels_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 {TX_CAL_CHAN, 128, write_tx_calchan_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 {TX_CAL_TEMP, 40, write_tx_caltemp_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 {RX_CAL_CHAN, 40, write_rx_calchan_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 {RX_CAL_TEMP, 44, write_rx_caltemp_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 {RX_AGC_PARAMS, 8, write_rx_agcparams_table},
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 {0, 0, 0}
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 };
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 cmd_save_rf_table(argc, argv)
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 char **argv;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 struct table_map *tp;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 FILE *outf;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 if (!rftr_table_size) {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 printf("error: no RF table has been received\n");
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 return(ERROR_TARGET);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 }
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 for (tp = table_map; tp->index; tp++) {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 if (tp->index == rftr_table_index)
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 break;
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 }
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 if (!tp->index) {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 printf("error: received table index %u not known\n",
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 rftr_table_index);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 return(ERROR_TARGET);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 }
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 if (rftr_table_size != tp->size &&
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 (rftr_table_index != RX_AGC_PARAMS || rftr_table_size != 10)) {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 printf("error: received table index and size don't match\n");
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 return(ERROR_TARGET);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 }
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 outf = fopen(argv[1], "w");
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 if (!outf) {
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 perror(argv[1]);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 return(ERROR_UNIX);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 }
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 tp->func(rftr_table_data, outf);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 fclose(outf);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 return(0);
b5e3899b1265 fc-tmsh: save-rf-table command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 }