FreeCalypso > hg > freecalypso-tools
diff librftab/rftablerd.c @ 283:64bb50fc470f
librftab reader: implemented reading of Tx ramps tables
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 18 Nov 2017 00:01:31 +0000 |
parents | feb2ee302d25 |
children | a0f79bba0ad8 |
line wrap: on
line diff
--- a/librftab/rftablerd.c Fri Nov 17 23:48:49 2017 +0000 +++ b/librftab/rftablerd.c Sat Nov 18 00:01:31 2017 +0000 @@ -112,6 +112,29 @@ } static +expect_keyword(kw) + char *kw; +{ + char *field; + int rc; + + rc = get_field(&field); + if (rc < 0) + return(ERROR_USAGE); + if (!rc) { + printf("error: %s is too short for table format %s\n", + filename, format); + return(ERROR_USAGE); + } + if (strcmp(field, kw)) { + printf("%s line %d: expected %s keyword\n", filename, lineno, + kw); + return(ERROR_USAGE); + } + return(0); +} + +static ensure_eof() { char *field; @@ -186,6 +209,36 @@ } static +read_tx_ramps() +{ + int i, j, rc; + + if (maxsize < 512) { + printf("error: tx-ramps table not allowed in this context\n"); + return(ERROR_USAGE); + } + for (i = 0; i < 16; i++) { + rc = expect_keyword("ramp-up"); + if (rc) + return(rc); + for (j = 0; j < 16; j++) { + rc = process_number(1); + if (rc) + return(rc); + } + rc = expect_keyword("ramp-down"); + if (rc) + return(rc); + for (j = 0; j < 16; j++) { + rc = process_number(1); + if (rc) + return(rc); + } + } + return ensure_eof(); +} + +static read_tx_levels() { int i, rc; @@ -306,6 +359,7 @@ {"afcparams", read_afcparams}, {"agc-global-params", read_agc_global_params}, {"il2agc", read_il2agc}, + {"tx-ramps", read_tx_ramps}, {"tx-levels", read_tx_levels}, {"tx-calchan", read_tx_calchan}, {"tx-caltemp", read_tx_caltemp},