annotate rvinterf/etmsync/fsuploadrf.c @ 723:7f30f92a6e35

fc-fsio upload-rf-table: added support for /sys/adccal
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 25 Aug 2020 07:48:25 +0000
parents 67d57375e3ad
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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[] = {
723
7f30f92a6e35 fc-fsio upload-rf-table: added support for /sys/adccal
Mychaela Falconia <falcon@freecalypso.org>
parents: 307
diff changeset
21 {"adc-cal", "/sys/adccal", 0},
307
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 {"afcparams", "/gsm/rf/afcparams", 0},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 {"agc-global-params", "/gsm/rf/rx/agcglobals", 0},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 {"agc-table", "/gsm/rf/rx/agcwords", 0},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 {"tx-ramps", "/gsm/rf/tx/ramps.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 {"tx-levels", "/gsm/rf/tx/levels.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 {"tx-calchan", "/gsm/rf/tx/calchan.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 {"tx-caltemp", "/gsm/rf/tx/caltemp.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 {"rx-calchan", "/gsm/rf/rx/calchan.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 {"rx-caltemp", "/gsm/rf/rx/caltemp.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 {"rx-agc-params", "/gsm/rf/rx/agcparams.%s", 1},
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 {0, 0, 0}
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
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 cmd_upload_rf_table(argc, argv)
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 char **argv;
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 u_char buf[512];
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 char *format, pathname[32];
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 struct map *map;
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 unsigned size;
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 int rc;
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 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
45 if (rc)
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 return(rc);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 for (map = map_table; map->format; map++)
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 if (!strcmp(map->format, format))
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 break;
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 if (!map->format) {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 printf("error: %s tables cannot be uploaded\n", format);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 return(ERROR_USAGE);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 }
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 if (map->need_band) {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 if (!argv[2]) {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 printf("error: band not specified for %s table\n",
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 format);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 return(ERROR_USAGE);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 }
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 if (strlen(argv[2]) > 7) {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 printf("error: band name argument is too long\n");
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 return(ERROR_USAGE);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 }
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 sprintf(pathname, map->pathname, argv[2]);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 } else {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 if (argv[2]) {
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 printf("error: band not applicable for %s table\n",
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 format);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 return(ERROR_USAGE);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 }
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 strcpy(pathname, map->pathname);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 }
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 return write_buf_to_file(pathname, buf, size);
67d57375e3ad fc-fsio upload-rf-table implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 }