FreeCalypso > hg > freecalypso-tools
view librftab/readtxramp.c @ 752:c79aaed75bd8
compile-fc-batt: allow possible third field in source lines
Battery tables maintained in the fc-battery-conf repository will now
have a third field added, defining thresholds for the battery bars icon,
and there will be a new utility to compile them into the new
/etc/batterytab2 file read by the FC Tourmaline version of our
FCHG driver. For backward compatibility with the original Magnetite
version of FCHG, compile-fc-batt remains the tool for compiling the
original /etc/batterytab file format, and it needs to ignore the
newly added third field in battery table sources.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 05 Nov 2020 20:37:55 +0000 |
parents | a0f79bba0ad8 |
children |
line wrap: on
line source
/* * Reading Tx ramp templates from formatted ASCII files, used for the ttw * command in fc-tmsh. */ #include <sys/types.h> #include <ctype.h> #include <stdio.h> #include <string.h> #include <strings.h> #include <stdlib.h> #include "../rvinterf/include/exitcodes.h" #include "rdcommon.c" static u_char *writeptr; 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); }