FreeCalypso > hg > freecalypso-tools
annotate librftab/rftablerd.c @ 416:30f6d1c32c6f
doc/Flash-boot-defect article removed (no longer relevant)
This article is no longer relevant because the issue in question
only affected one (1) defective FCDEV3B board which was not
and never will be sold.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 26 Oct 2018 07:11:08 +0000 |
parents | a0f79bba0ad8 |
children | 059649902c7f |
rev | line source |
---|---|
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
281
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
2 * Reading RF tables from formatted ASCII files: used for the rftw command |
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
3 * in fc-tmsh, for the upload-rf-table command in fc-fsio, and in the |
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
4 * standalone fc-cal2bin utility. |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <sys/types.h> |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <ctype.h> |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <stdio.h> |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <string.h> |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <strings.h> |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include <stdlib.h> |
281
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
13 #include "../rvinterf/include/exitcodes.h" |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
314
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
Mychaela Falconia <falcon@freecalypso.org>
parents:
283
diff
changeset
|
15 #include "rdcommon.c" |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 static char *format; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 static u_char *writeptr; |
281
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
19 static unsigned written_size, maxsize; |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 process_number(size) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 char *field; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 int rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 u_long number; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 rc = get_field(&field); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 if (rc < 0) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 if (!rc) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 printf("error: %s is too short for table format %s\n", |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 filename, format); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 if (field[0] == '-') |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 number = strtol(field, 0, 0); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 else |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 number = strtoul(field, 0, 0); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 switch (size) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 case 1: |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 *writeptr++ = number; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 break; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 case 2: |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 *writeptr++ = number; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 *writeptr++ = number >> 8; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 break; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 case 4: |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 *writeptr++ = number; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 *writeptr++ = number >> 8; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 *writeptr++ = number >> 16; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 *writeptr++ = number >> 24; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 break; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 default: |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 abort(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 written_size += size; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 return(0); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 static |
283
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
62 expect_keyword(kw) |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
63 char *kw; |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
64 { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
65 char *field; |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
66 int rc; |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
67 |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
68 rc = get_field(&field); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
69 if (rc < 0) |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
70 return(ERROR_USAGE); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
71 if (!rc) { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
72 printf("error: %s is too short for table format %s\n", |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
73 filename, format); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
74 return(ERROR_USAGE); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
75 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
76 if (strcmp(field, kw)) { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
77 printf("%s line %d: expected %s keyword\n", filename, lineno, |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
78 kw); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
79 return(ERROR_USAGE); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
80 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
81 return(0); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
82 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
83 |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
84 static |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 ensure_eof() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 char *field; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 int rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 rc = get_field(&field); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 if (rc < 0) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 if (rc) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 printf("error: %s is too long for table format %s\n", |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 filename, format); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 return(0); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 read_agc_table() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 for (i = 0; i < 20; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 read_afcparams() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 for (i = 0; i < 4; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 rc = process_number(4); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 for (i = 0; i < 4; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 read_agc_global_params() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 for (i = 0; i < 4; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 read_il2agc() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 for (i = 0; i < 121; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 rc = process_number(1); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 static |
283
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
159 read_tx_ramps() |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
160 { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
161 int i, j, rc; |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
162 |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
163 if (maxsize < 512) { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
164 printf("error: tx-ramps table not allowed in this context\n"); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
165 return(ERROR_USAGE); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
166 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
167 for (i = 0; i < 16; i++) { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
168 rc = expect_keyword("ramp-up"); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
169 if (rc) |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
170 return(rc); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
171 for (j = 0; j < 16; j++) { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
172 rc = process_number(1); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
173 if (rc) |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
174 return(rc); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
175 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
176 rc = expect_keyword("ramp-down"); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
177 if (rc) |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
178 return(rc); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
179 for (j = 0; j < 16; j++) { |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
180 rc = process_number(1); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
181 if (rc) |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
182 return(rc); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
183 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
184 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
185 return ensure_eof(); |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
186 } |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
187 |
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
188 static |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 read_tx_levels() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 for (i = 0; i < 32; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 rc = process_number(1); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 rc = process_number(1); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 read_tx_calchan() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 for (i = 0; i < 64; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 read_tx_caltemp() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 for (i = 0; i < 20; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 read_rx_calchan() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 for (i = 0; i < 20; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 read_rx_caltemp() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 for (i = 0; i < 22; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 read_rx_agc_params() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 int i, rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 for (i = 0; i < 4; i++) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 rc = process_number(2); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 if (rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 return ensure_eof(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 static |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 read_raw_table() |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 int rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 char *field; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 u_long number; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 for (;;) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 rc = get_field(&field); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 if (rc < 0) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 if (!rc) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 break; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 number = strtoul(field, 0, 16); |
281
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
286 if (written_size >= maxsize) { |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 printf("error: raw table %s exceeds maximum size\n", |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 filename); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 *writeptr++ = number; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 written_size++; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 if (!written_size) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 printf("error: raw table %s is empty\n", filename); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 return(0); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 static struct table_format { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 char *kw; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 int (*handler)(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 } table_formats[] = { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 {"agc-table", read_agc_table}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 {"afcparams", read_afcparams}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 {"agc-global-params", read_agc_global_params}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 {"il2agc", read_il2agc}, |
283
64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
Mychaela Falconia <falcon@freecalypso.org>
parents:
281
diff
changeset
|
309 {"tx-ramps", read_tx_ramps}, |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 {"tx-levels", read_tx_levels}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 {"tx-calchan", read_tx_calchan}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 {"tx-caltemp", read_tx_caltemp}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 {"rx-calchan", read_rx_calchan}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 {"rx-caltemp", read_rx_caltemp}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 {"rx-agc-params", read_rx_agc_params}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 {"raw", read_raw_table}, |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 {0, 0} |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 }; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 |
281
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
320 read_rf_table_ext(filename_arg, rdbuf, allow_large, format_ret, size_ret) |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 char *filename_arg; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 u_char *rdbuf; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 char **format_ret; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 unsigned *size_ret; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 char *field; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 int rc; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 struct table_format *tp; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 filename = filename_arg; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 rdfile = fopen(filename, "r"); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 if (!rdfile) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 perror(filename); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 return(ERROR_UNIX); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 lineno = 0; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 line_nfields = 0; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 rc = get_field(&field); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 if (rc <= 0) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 not_valid_rftable: |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 printf("error: %s is not a valid RF table file\n", filename); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 fclose(rdfile); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 if (strcmp(field, "rf_table")) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 goto not_valid_rftable; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 rc = get_field(&field); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 if (rc <= 0) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 goto not_valid_rftable; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 for (tp = table_formats; tp->kw; tp++) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 if (!strcmp(tp->kw, field)) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 break; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 if (!tp->kw) { |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 printf("error: table format \"%s\" not recognized\n", field); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 fclose(rdfile); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 return(ERROR_USAGE); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 } |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 format = tp->kw; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 if (format_ret) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 *format_ret = format; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 writeptr = rdbuf; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 written_size = 0; |
281
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
363 if (allow_large) |
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
364 maxsize = 512; |
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
365 else |
feb2ee302d25
librftab compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
280
diff
changeset
|
366 maxsize = 128; |
121
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 rc = tp->handler(); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 fclose(rdfile); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 if (size_ret) |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 *size_ret = written_size; |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 return(rc); |
4070847293a9
fc-tmsh: RF table reading code implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 } |