8#include "tpcclibConfig.h"
21static char *info[] = {
22 "List the time range in TAC datafile(s) in DFT, CSV, PMOD, or SIF formats.",
24 "Usage: @P [options] filename(s)",
28 " Times are shown in seconds, or minutes (default)",
31 "See also: tacframe, tactime, dftmax, inpstart, tacunit, tacsetx",
33 "Keywords: TAC, SIF, time",
52int main(
int argc,
char **argv)
54 int ai, help=0, version=0, verbose=1;
55 int ret, fileNr=0, ffi=0;
57 char *cptr, tacfile[FILENAME_MAX];
60 double min_xmin, max_xmax, max_xmin, min_xmax;
66 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
70 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
72 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(!*cptr)
continue;
73 if(strncasecmp(cptr,
"UNIT=", 5)==0) {
75 }
else if(strncasecmp(cptr,
"TUNIT=", 6)==0) {
78 fprintf(stderr,
"Error: invalid option '%s'\n", argv[ai]);
83 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
93 for(; ai<argc; ai++) {
103 printf(
"required_timeunit := %s\n",
unitName(tunit));
104 printf(
"fileNr := %d\n", fileNr);
112 for(ai=ffi; ai<argc; ai++) {
115 strcpy(tacfile, argv[ai]);
116 fprintf(stdout,
"%s : \n", tacfile); fflush(stdout);
117 ret=
tacRead(&tac, tacfile, &status);
119 fprintf(stderr,
"Error (%d): %s\n", ret,
errorMsg(status.
error));
124 printf(
"tacNr := %d\n", tac.
tacNr);
125 printf(
"sampleNr := %d\n", tac.
sampleNr);
132 fprintf(stderr,
"Warning: cannot convert time unit from %s to %s\n",
139 fprintf(stderr,
"Warning: cannot find time range in %s\n", tacfile);
140 if(verbose>1) printf(
"ret := %d\n", ret);
146 fprintf(stdout,
"time_min := %g\n", xmin);
147 fprintf(stdout,
"time_max := %g\n", xmax);
151 if(fileNr==0 || xmin<min_xmin) min_xmin=xmin;
152 if(fileNr==0 || xmin>max_xmin) max_xmin=xmin;
154 if(fileNr==0 || xmax<min_xmax) min_xmax=xmax;
155 if(fileNr==0 || xmax>max_xmax) max_xmax=xmax;
162 fprintf(stderr,
"Error: no min/max could be determined.\n");
170 fprintf(stdout,
"all_files :\n");
171 if(verbose>0) fprintf(stdout,
"timeunit := %s\n",
unitName(tunit));
172 fprintf(stdout,
"min_time_min := %g\n", min_xmin);
173 fprintf(stdout,
"max_time_max := %g\n", max_xmax);
174 fprintf(stdout,
"max_time_min := %g\n", max_xmin);
175 fprintf(stdout,
"min_time_max := %g\n", min_xmax);
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
int tpcHtmlUsage(const char *program, char *text[], const char *path)
void tpcPrintBuild(const char *program, FILE *fp)
void tpcPrintUsage(const char *program, char *text[], FILE *fp)
void statusInit(TPCSTATUS *s)
char * errorMsg(tpcerror e)
void statusSet(TPCSTATUS *s, const char *func, const char *srcfile, int srcline, tpcerror error)
int verbose
Verbose level, used by statusPrint() etc.
tpcerror error
Error code.
int tacRead(TAC *d, const char *fname, TPCSTATUS *status)
char * tacFormattxt(tacformat c)
int tacXUnitConvert(TAC *tac, const int u, TPCSTATUS *status)
int tacXRange(TAC *d, double *xmin, double *xmax)
Get the range of x values (times) in TAC structure.
Header file for library libtpcextensions.
int unitIdentify(const char *s)
char * unitName(int unit_code)
Header file for library libtpcift.
Header file for library libtpctac.