FreeCalypso > hg > fc-rfcal-tools
annotate autocal/rxband.c @ 58:46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 27 May 2017 23:17:14 +0000 |
parents | 2588f9eed11a |
children | 81e8f7e99d89 |
rev | line source |
---|---|
57
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module contains the main() function for fc-rfcal-rxband. |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <stdio.h> |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdlib.h> |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <string.h> |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <strings.h> |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <rvinterf/l1tm.h> |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <rvinterf/exitcodes.h> |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include "rxband.h" |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "rxcaldefs.h" |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include "stdband.h" |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 struct rx_calchan_range rx_calchan_850[] = { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 {128, 138, 128}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 {139, 157, 148}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 {158, 178, 168}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 {179, 199, 189}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 {200, 217, 208}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 {218, 239, 228}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 {240, 251, 251} |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 }; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 struct rx_calchan_range rx_calchan_900[] = { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 { 0, 10, 1}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 { 11, 30, 20}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 { 31, 51, 37}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 { 52, 71, 62}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 { 72, 90, 80}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 { 91, 112, 100}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 { 113, 124, 124}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 { 975, 991, 975}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 { 992, 1009, 1000}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 {1010, 1023, 1017} |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 }; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 struct rx_calchan_range rx_calchan_1800[] = { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 {512, 548, 512}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 {549, 622, 585}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 {623, 680, 660}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 {681, 745, 698}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 {746, 812, 790}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 {813, 860, 835}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 {861, 885, 885} |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 }; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 struct rx_calchan_range rx_calchan_1900[] = { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 {512, 548, 512}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 {549, 622, 585}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 {623, 680, 661}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 {681, 745, 700}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 {746, 795, 790}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 {796, 810, 805} |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 }; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 struct rxcal_band rxcal_band_list[] = { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 {"850", RFPW_STD_BAND_850, 189, rx_calchan_850, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 sizeof(rx_calchan_850) / sizeof(struct rx_calchan_range)}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 {"900", RFPW_STD_BAND_900, 37, rx_calchan_900, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 sizeof(rx_calchan_900) / sizeof(struct rx_calchan_range)}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 {"1800", RFPW_STD_BAND_1800, 698, rx_calchan_1800, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 sizeof(rx_calchan_1800) / sizeof(struct rx_calchan_range)}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 {"1900", RFPW_STD_BAND_1900, 661, rx_calchan_1900, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 sizeof(rx_calchan_1900) / sizeof(struct rx_calchan_range)}, |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 {0, 0, 0, 0, 0} |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 }; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 struct rxcal_band *rxcal_band; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 finish_cmdline(argc, argv) |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 char **argv; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 extern int optind; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 struct rxcal_band *band; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 if (argc - optind != 1) { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 fprintf(stderr, "usage: %s band\n", argv[0]); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 exit(ERROR_USAGE); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 } |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 for (band = rxcal_band_list; band->name; band++) |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 if (!strcmp(band->name, argv[optind])) |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 break; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 if (!band->name) { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 fprintf(stderr, "error: \"%s\" is not a known band\n", |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 argv[optind]); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 exit(ERROR_USAGE); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 } |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 rxcal_band = band; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 return(0); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 } |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 prepare_rf_test_system() |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 char cmd[80]; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 printf("Preparing RF test system for %s MHz Rx calibration\n", |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 rxcal_band->name); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 sprintf(cmd, "signal-gen-setup %s\n", rxcal_band->name); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 tsid_command(cmd); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 return(0); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 } |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 main(argc, argv) |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 char **argv; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 { |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 socket_pathname_options(argc, argv); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 finish_cmdline(argc, argv); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 connect_rvinterf_socket(); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 connect_tsid_socket(); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 setlinebuf(stdout); /* to allow logging with tee */ |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 prepare_rf_test_system(); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 printf("Putting the DUT into Test Mode\n"); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 do_tms(1); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 do_rfpw(STD_BAND_FLAG, rxcal_band->rfpw_std_band); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 l1tm_setup_for_rxcal(); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 |
58
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
119 do_gmagic(); |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
120 exit(0); |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
121 } |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
122 |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
123 do_gmagic() |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
124 { |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
125 int pm, Gmagic; |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
126 char Gmagic_db[64]; |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
127 |
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
128 printf("Calibrating GMagic\n"); |
57
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 pm = rx_measure(rxcal_band->main_arfcn); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 Gmagic = pm - RXCAL_SIGGEN_LEVEL - RXCAL_AGC_DB * 2; |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 halfdb_to_string(Gmagic, Gmagic_db); |
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 printf("GMagic=%d (%s dB)\n", Gmagic, Gmagic_db); |
58
46c72323182a
autocal/rxband.c: do_gmagic() factored out of main()
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
133 return(0); |
57
2588f9eed11a
fc-rfcal-rxband started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 } |