FreeCalypso > hg > freecalypso-tools
changeset 127:db7fc16bac1e
fc-tmsh: implemented reading of Tx ramp template files
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 19 Feb 2017 15:59:56 +0000 |
parents | 777172bcea3c |
children | d76970e1895e |
files | rvinterf/tmsh/rftablerd.c |
diffstat | 1 files changed, 86 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/rvinterf/tmsh/rftablerd.c Sun Feb 19 09:52:58 2017 +0000 +++ b/rvinterf/tmsh/rftablerd.c Sun Feb 19 15:59:56 2017 +0000 @@ -365,3 +365,89 @@ *size_ret = written_size; return(rc); } + +static +process_txramp_number() +{ + char *field; + int rc; + u_long number; + + rc = get_field(&field); + if (rc < 0) + return(ERROR_USAGE); + if (!rc) { + printf("error: %s is too short for a Tx ramp template\n", + filename); + return(ERROR_USAGE); + } + number = strtoul(field, 0, 0); + *writeptr++ = number; + return(0); +} + +static +read_txramp_16num() +{ + int i, rc; + + for (i = 0; i < 16; i++) { + rc = process_txramp_number(); + if (rc) + return(rc); + } + return(0); +} + +read_tx_ramp_template(filename_arg, rdbuf) + char *filename_arg; + u_char *rdbuf; +{ + char *field; + int rc; + + filename = filename_arg; + rdfile = fopen(filename, "r"); + if (!rdfile) { + perror(filename); + return(ERROR_UNIX); + } + lineno = 0; + line_nfields = 0; + rc = get_field(&field); + if (rc <= 0) { +not_valid_ramp_file: + printf("error: %s is not a valid Tx ramp template file\n", + filename); + fclose(rdfile); + return(ERROR_USAGE); + } + if (strcmp(field, "ramp-up")) + goto not_valid_ramp_file; + writeptr = rdbuf; + rc = read_txramp_16num(); + if (rc) { + fclose(rdfile); + return(rc); + } + rc = get_field(&field); + if (rc <= 0) + goto not_valid_ramp_file; + if (strcmp(field, "ramp-down")) + goto not_valid_ramp_file; + rc = read_txramp_16num(); + if (rc) { + fclose(rdfile); + return(rc); + } + rc = get_field(&field); + fclose(rdfile); + if (rc < 0) + return(ERROR_USAGE); + if (rc) { + printf("error: %s is too long for a Tx ramp template\n", + filename); + return(ERROR_USAGE); + } + return(0); +}