FreeCalypso > hg > freecalypso-tools
annotate rvinterf/etmsync/fsuploadrf.c @ 458:0a2e3fd156ed
simtest: reset implemented
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 09 Feb 2019 17:21:45 +0000 | 
| parents | 67d57375e3ad | 
| children | 7f30f92a6e35 | 
| rev | line source | 
|---|---|
| 
307
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * upload-rf-table implementation | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 #include <sys/types.h> | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 #include <stdio.h> | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 #include <stdlib.h> | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 #include <string.h> | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 #include <strings.h> | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 #include "etm.h" | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 #include "ffs.h" | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 #include "tmffs2.h" | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 #include "limits.h" | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 #include "exitcodes.h" | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 static struct map { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 char *format; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 char *pathname; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 int need_band; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 } map_table[] = { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 {"afcparams", "/gsm/rf/afcparams", 0}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 {"agc-global-params", "/gsm/rf/rx/agcglobals", 0}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 {"agc-table", "/gsm/rf/rx/agcwords", 0}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 {"tx-ramps", "/gsm/rf/tx/ramps.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 {"tx-levels", "/gsm/rf/tx/levels.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 {"tx-calchan", "/gsm/rf/tx/calchan.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 {"tx-caltemp", "/gsm/rf/tx/caltemp.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 {"rx-calchan", "/gsm/rf/rx/calchan.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 {"rx-caltemp", "/gsm/rf/rx/caltemp.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 {"rx-agc-params", "/gsm/rf/rx/agcparams.%s", 1}, | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 {0, 0, 0} | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 }; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 cmd_upload_rf_table(argc, argv) | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 char **argv; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 u_char buf[512]; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 char *format, pathname[32]; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 struct map *map; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 unsigned size; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 int rc; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 rc = read_rf_table_ext(argv[1], buf, 1, &format, &size); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 if (rc) | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 return(rc); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 for (map = map_table; map->format; map++) | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 if (!strcmp(map->format, format)) | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 break; | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 if (!map->format) { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 printf("error: %s tables cannot be uploaded\n", format); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 return(ERROR_USAGE); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 } | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 if (map->need_band) { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 if (!argv[2]) { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 printf("error: band not specified for %s table\n", | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 format); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 return(ERROR_USAGE); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 } | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 if (strlen(argv[2]) > 7) { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 printf("error: band name argument is too long\n"); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 return(ERROR_USAGE); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 } | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 sprintf(pathname, map->pathname, argv[2]); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 } else { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 if (argv[2]) { | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 printf("error: band not applicable for %s table\n", | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 format); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 return(ERROR_USAGE); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 } | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 strcpy(pathname, map->pathname); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 } | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 return write_buf_to_file(pathname, buf, size); | 
| 
 
67d57375e3ad
fc-fsio upload-rf-table implemented
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 } | 
