FreeCalypso > hg > freecalypso-tools
annotate librftab/readtxramp.c @ 560:641d816b1e91
loadtools/scripts: tango.config renamed to gen8.config
This config is really generic for all "vanilla" targets with 8 MiB flash
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 30 Jan 2020 06:59:03 +0000 | 
| parents | a0f79bba0ad8 | 
| children | 
| rev | line source | 
|---|---|
| 314 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * Reading Tx ramp templates from formatted ASCII files, used for the ttw | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 * command in fc-tmsh. | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 */ | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include <sys/types.h> | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <ctype.h> | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 #include <stdio.h> | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 #include <string.h> | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 #include <strings.h> | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 #include <stdlib.h> | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 #include "../rvinterf/include/exitcodes.h" | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 #include "rdcommon.c" | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 static u_char *writeptr; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 static | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 process_txramp_number() | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 char *field; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 int rc; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 u_long number; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 rc = get_field(&field); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 if (rc < 0) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 return(ERROR_USAGE); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 if (!rc) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 printf("error: %s is too short for a Tx ramp template\n", | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 filename); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 return(ERROR_USAGE); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 number = strtoul(field, 0, 0); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 *writeptr++ = number; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 return(0); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 static | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 read_txramp_16num() | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 int i, rc; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 for (i = 0; i < 16; i++) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 rc = process_txramp_number(); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 if (rc) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 return(rc); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 return(0); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 read_tx_ramp_template(filename_arg, rdbuf) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 char *filename_arg; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 u_char *rdbuf; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 char *field; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 int rc; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 filename = filename_arg; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 rdfile = fopen(filename, "r"); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 if (!rdfile) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 perror(filename); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 return(ERROR_UNIX); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 lineno = 0; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 line_nfields = 0; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 rc = get_field(&field); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 if (rc <= 0) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 not_valid_ramp_file: | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 printf("error: %s is not a valid Tx ramp template file\n", | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 filename); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 fclose(rdfile); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 return(ERROR_USAGE); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 if (strcmp(field, "ramp-up")) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 goto not_valid_ramp_file; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 writeptr = rdbuf; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 rc = read_txramp_16num(); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 if (rc) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 fclose(rdfile); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 return(rc); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 rc = get_field(&field); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 if (rc <= 0) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 goto not_valid_ramp_file; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 if (strcmp(field, "ramp-down")) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 goto not_valid_ramp_file; | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 rc = read_txramp_16num(); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 if (rc) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 fclose(rdfile); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 return(rc); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 rc = get_field(&field); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 fclose(rdfile); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 if (rc < 0) | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 return(ERROR_USAGE); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 if (rc) { | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 printf("error: %s is too long for a Tx ramp template\n", | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 filename); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 return(ERROR_USAGE); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 } | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 return(0); | 
| 
a0f79bba0ad8
librftab: reading of Tx ramp template files split from rftablerd module
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 } | 
