From a7bd1d721a7b48fd8f13a3913636cec20e886a14 Mon Sep 17 00:00:00 2001 From: p-j-miller <64498963+p-j-miller@users.noreply.github.com> Date: Wed, 16 Feb 2022 20:45:25 +0000 Subject: [PATCH] 2v5 files uploaded --- UDataPlotWindow.cpp | 150 +++++++++++++++++++++++++++++++------------ UDataPlotWindow.dfm | 24 +++++-- UDataPlotWindow.h | 2 + UScientificGraph.cpp | 9 ++- csvgraph.docx | Bin 1463704 -> 1464339 bytes expr-code.cpp | 34 +++++----- expr-code.h | 2 +- 7 files changed, 155 insertions(+), 66 deletions(-) diff --git a/UDataPlotWindow.cpp b/UDataPlotWindow.cpp index adba5ac..85dffae 100644 --- a/UDataPlotWindow.cpp +++ b/UDataPlotWindow.cpp @@ -52,6 +52,12 @@ // : yamedian() used which can calculate median in place without needing to copy the array of y values (but will for speed if memory is available) // : added linear regression y=m*x*log2(x)+c // 2v4 2/2/2022 : Fixed bug - using $Tn in situations where input x values needed to be sorted did not work correctly - fixed. Now also interpolates y value for $Tn if x values are different for new trace and $Tn +// 2v5a 10/2/2022: Fixed bug - if reading multiple columns at once optimisation that used x values from previous pass would fail if some lines were skipped - now trapped and optimisation not done in this case +// 2v5b 12/2/2022: Improved code for handling errors while reading csv files, used to just ignore errors, but now 1st 2 errors are reported in detail and total count displayed. +// : Date/time handling also improved, time is now read fully as a double and errors reported. A backwards step of up to 1 sec (eg a leap second) is allowed. +// : Any backwards step in time will cause data to be sorted, so this is visible to users even if its not directly reported as an error. +// 2v5d 14/2/2022 : files of size >2^31 bytes would give silly % complete values , final graph was OK - fixed. +// 2.5e 16/2/2022 : added "start times from 0" tick box to gui. //--------------------------------------------------------------------------- /*---------------------------------------------------------------------------- * Copyright (c) 2019,2020,2021,2022 Peter Miller @@ -110,7 +116,7 @@ #include "multiple-lin-reg-fn.h" extern TForm1 *Form1; -const char * Prog_Name="CSVgraph (Github) 2v4"; // needs to be global as used in about box as well. +const char * Prog_Name="CSVgraph (Github) 2v5"; // needs to be global as used in about box as well. #if 1 /* if 1 then use fast_strtof() rather than atof() for floating point conversion. Note in this application this is only slightly faster (1-5%) */ extern "C" float fast_strtof(const char *s,char **endptr); // if endptr != NULL returns 1st character thats not in the number #define strtod fast_strtof /* set so we use it in place of strtod() */ @@ -152,6 +158,7 @@ bool zoomed=false; // set when zoomed in to stop autoscaling when new traces add bool user_set_trace_colour=false; TColor user_trace_colour; unsigned int nos_lines_in_file=0; // number of lines in last file opened +bool start_time_from_0=false; // if true use 1st time read is as ofset float yval,xval; // current values being added to graph, xval is set before yval // dynamic number of columns @@ -1285,23 +1292,27 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) static char cstring[64]; // small buffer to use with snprintf TColor Col; FILE *fin; - int lines_in_file; + int lines_in_file; // line number within file being read char *csv_line;// line of csv file char *st; int xcol,ycol; - struct stat statbuf; // gives filesize which is then used to show progress as a % + __int64 filesize; // gives filesize which is then used to show progress as a % bool xmonotonic=true; // true is trace is monotonic in x bool firstxvalue; // true on 1st x value bool gotyvalue; // set to true when a valid number found for y value bool skipy; // set to true if we skip a string of identical y values bool compress; bool showsortmessage=true; // only show "sort message" once per press of the "add traces" button + bool showerrmessage=true; // ditto for message to warn users of errors in format of csv file float previousxvalue,previousyvalue; double median_ahead_t; // >0 for median filtering to be used int poly_order; double first_time; // used when reading times in for x axis, store times relative to 1st time int nos_traces_added=0; + bool allvalidxvals=true; clock_t start_t,end_t; + int nos_errs=0; // count of errors found when reading values +#define MAX_ERRS 2 /* max errors that will be displayyed in full */ start_t=clock(); // want total execution time if(xchange_running!=-1) return; // still processing a change in x offset if(addtraceactive) return; // if still processing a previous call of addtrace @@ -1360,11 +1371,13 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) addtraceactive=false;// finished return; } + fseek(fin, 0, SEEK_END); // seek to end of file + filesize=_ftelli64(fin); // get size of file + fseek(fin,0,SEEK_SET); // back to start of file #ifdef BIG_BUF_SIZE if( read_buf!=NULL) setvbuf(fin,read_buf,_IOFBF,BIG_BUF_SIZE); // buffer input if we have free RAM #endif - fstat(fileno(fin), &statbuf); // get filesize (etc) // rprintf("filename selected is %s\n",filename.c_str()); {int skip_initial_lines=_wtoi(Form1->pPlotWindow->Edit_skip_lines->Text.c_str()); @@ -1791,6 +1804,7 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) reset_days(); // in case we are reading in times lines_in_file=0; + nos_errs=0; // count of errors for this "column" as thats how its reported to user clock_t begin_t,end_t2s; begin_t=clock(); while(1) @@ -1811,10 +1825,10 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) begin_t+=2*CLK_TCK; // move forward 2 secs (unless 1st line in file) #if 1 if(yexpr) - {snprintf(cstring,sizeof(cstring),"%.0f %% read",100.0*(double)ftell(fin)/(double)statbuf.st_size); + {snprintf(cstring,sizeof(cstring),"%.0f %% read",100.0*(double)_ftelli64(fin)/(double)filesize); } else - {snprintf(cstring,sizeof(cstring),"%.0f %% read of column %d",100.0*(double)ftell(fin)/(double)statbuf.st_size,ycol); + {snprintf(cstring,sizeof(cstring),"%.0f %% read of column %d",100.0*(double)_ftelli64(fin)/(double)filesize,ycol); } #else snprintf(cstring,sizeof(cstring),"%d lines read",lines_in_file); @@ -1825,8 +1839,14 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) } // get x value - if(nos_traces_added>1 && xmonotonic && !compress ) + if(allvalidxvals && nos_traces_added>1 && xmonotonic && !compress ) // This optimisation disabled if lines with invalid xvals found (and skipped) {xval=pScientificGraph->fnAddDataPoint_nextx(iGraph); // same value as previous graph loaded as this is faster than decoding it again + if(!firstxvalue && xval%g\n",xcol,st,xval); break; } - if(!_finite(xval) || !_finite(yval)) continue; // need 2 valid numbers [eg ignore "inf" ] } if(yexpr) {try @@ -1907,11 +1945,23 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) // now hope we have a number left - strtod() will terminate at the end of the number so any trailing whitespace or " will be ignored char *end; yval= strtod(st,&end); // just a column number - get value for this column - if(st==end) continue; // no valid number found - // rprintf("yval (col %d) %s=>%g\n",ycol,st,yval); - } - gotyvalue=true;// if we get here we have a valid y value - + if(st==end) + {allvalidxvals=false; // line skipped + if(++nos_errs<=MAX_ERRS) + rprintf("(yval) Line %d has an invalid number: %s\n",lines_in_file+1,col_ptrs[ycol-1]); + continue; // no valid number found + } + // rprintf("yval (col %d) %s=>%g\n",ycol,st,yval); + } + gotyvalue=true;// if we get here we have a valid y value + if(!_finite(xval) || !_finite(yval)) + {allvalidxvals=false; // line skipped + if(!_finite(xval) && ++nos_errs<=MAX_ERRS) + rprintf("(xval) Line %d has an invalid number: %s\n",lines_in_file+1,col_ptrs[xcol-1]); + if( !_finite(yval) && ++nos_errs<=MAX_ERRS) + rprintf("(yval) Line %d has an invalid number: %s\n",lines_in_file+1,col_ptrs[ycol-1]); + continue; // need 2 valid numbers [eg ignore "inf" ] + } if(firstxvalue) {firstxvalue=false; previousxvalue=xval; @@ -1962,7 +2012,7 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) return; } } - rprintf("%d lines read from csv file\n",lines_in_file); + rprintf("%d lines read from csv file(%d lines skipped dues to errors)\n",lines_in_file,nos_errs); if(*ys!=',') fclose(fin); if(!gotyvalue) {// no valid y values found @@ -1971,26 +2021,34 @@ void __fastcall TPlotWindow::Button_add_trace1Click(TObject *Sender) } else if(firstxvalue) {// no valid x values found - strncat(cap_str,": Warning: no valid numbers found for x values of column",sizeof(cap_str)-1-strlen(cap_str)); - ShowMessage(cap_str); - } + strncat(cap_str,": Warning: no valid numbers found for x values of column",sizeof(cap_str)-1-strlen(cap_str)); + ShowMessage(cap_str); + } + else if(nos_errs>0 && showerrmessage) + {// errors found in file just read in , tell user (just once) + char temp_str[100]; + showerrmessage=false; + snprintf(temp_str,sizeof(temp_str),": Warning: %d errors found while reading file",nos_errs); + strncat(cap_str,temp_str,sizeof(cap_str)-1-strlen(cap_str)); + ShowMessage(cap_str); + } if(!xmonotonic) - {StatusText->Caption="X Values need sorting"; - Application->ProcessMessages(); /* allow windows to update (but not go idle) */ + {StatusText->Caption="X Values need sorting"; + Application->ProcessMessages(); /* allow windows to update (but not go idle) */ - if(showsortmessage) - {ShowMessage("Warning: X values just read in are not always increasing - about to sort values."); - showsortmessage=false; // only show it once for a given press of "add Traces" button as x axis data is the same for all added traces - } - StatusText->Caption="Sorting..."; - Application->ProcessMessages(); /* allow windows to update (but not go idle) */ - pScientificGraph->sortx(iGraph); // sort on x values - StatusText->Caption="X values sorted"; - Application->ProcessMessages(); /* allow windows to update (but not go idle) */ - } + if(showsortmessage) + {ShowMessage("Warning: X values just read in are not always increasing - about to sort values."); + showsortmessage=false; // only show it once for a given press of "add Traces" button as x axis data is the same for all added traces + } + StatusText->Caption="Sorting..."; + Application->ProcessMessages(); /* allow windows to update (but not go idle) */ + pScientificGraph->sortx(iGraph); // sort on x values + StatusText->Caption="X values sorted"; + Application->ProcessMessages(); /* allow windows to update (but not go idle) */ + } #if 1 /* general purpose compression - works well but does require all data for the trace is read into ram , then excess is returned so peak ram is high */ if(compress && !(nos_traces_added>1 && xmonotonic) ) // && ! bit traps cases that can be done when reading the trace data in (above) - {StatusText->Caption="Compressing..."; + {StatusText->Caption="Compressing..."; Application->ProcessMessages(); /* allow windows to update (but not go idle) */ pScientificGraph->compress_y(iGraph); // compress by deleting points with equal y values except for 1st and last in a row StatusText->Caption="Compression completed"; @@ -2361,7 +2419,7 @@ unsigned int count_lines(char *filename, double filesize) char *cp; DWORD nBytesRead = 0; BOOL bResult = FALSE; - long total_bytes_read=0; + double total_bytes_read=0; clock_t begin_t; begin_t=clock(); //rprintf("count_lines: Filename=%s BLOCK_SIZE=%u\n",filename,BLOCK_SIZE); @@ -2442,7 +2500,7 @@ void proces_open_filename(char *fn) // open filename - just to peek at header ro unsigned int j; AnsiString basename; char str_buf[100]; // temp buffer - struct stat statbuf; // gives filesize which is then used to show progress as a % + __int64 filesize; // gives filesize which is then used to show progress as a % nos_lines_in_file=0; // we need to count the number of lines in the file if(addtraceactive) return; // currently adding traces so cannot change filename if(fn==NULL || strcmp(fn,"")==0) @@ -2463,7 +2521,9 @@ void proces_open_filename(char *fn) // open filename - just to peek at header ro return; } - fstat(fileno(fin), &statbuf); // get filesize (etc) + fseek(fin, 0, SEEK_END); // seek to end of file + filesize=_ftelli64(fin); // get size of file + fseek(fin,0,SEEK_SET); // back to start of file rcls(); rprintf("filename selected is %s\n",filename.c_str()); @@ -2583,7 +2643,7 @@ void proces_open_filename(char *fn) // open filename - just to peek at header ro addtraceactive=true; // stop user adding traces until we have counted the number of lines in the file Form1->pPlotWindow->StatusText->Caption="Counting lines in file..." ; clock_t begin_t=clock(); - nos_lines_in_file=count_lines(filename.c_str(),statbuf.st_size); // this will keep user updated on its progress by updating status line message every 2 secs + nos_lines_in_file=count_lines(filename.c_str(),filesize); // this will keep user updated on its progress by updating status line message every 2 secs addtraceactive=false; rprintf(" File has %u lines (file read in %g secs)\n",nos_lines_in_file,(double)(clock()-begin_t)/CLK_TCK); snprintf(str_buf,sizeof(str_buf),"Ready : %u lines found in file",nos_lines_in_file); @@ -3088,3 +3148,9 @@ void __fastcall TPlotWindow::Action1Execute(TObject *Sender) +void __fastcall TPlotWindow::Time_from0Click(TObject *Sender) +{ + start_time_from_0=Time_from0->State==cbChecked; +} +//--------------------------------------------------------------------------- + diff --git a/UDataPlotWindow.dfm b/UDataPlotWindow.dfm index 29666b7..6d84574 100644 --- a/UDataPlotWindow.dfm +++ b/UDataPlotWindow.dfm @@ -30,7 +30,7 @@ object PlotWindow: TPlotWindow OnResize = FormResize DesignSize = ( 1290 - 1002) + 982) PixelsPerInch = 96 TextHeight = 13 object Panel1: TPanel @@ -479,7 +479,7 @@ object PlotWindow: TPlotWindow end object Label15: TLabel Left = 184 - Top = 400 + Top = 378 Width = 43 Height = 13 Anchors = [akTop, akRight] @@ -487,7 +487,7 @@ object PlotWindow: TPlotWindow end object Label16: TLabel Left = 189 - Top = 419 + Top = 397 Width = 88 Height = 13 Anchors = [akTop, akRight] @@ -853,7 +853,7 @@ object PlotWindow: TPlotWindow end object Edit_skip_lines: TEdit Left = 233 - Top = 397 + Top = 375 Width = 41 Height = 21 Hint = 'Enter number of lines to skip in csv file before header line' @@ -864,6 +864,20 @@ object PlotWindow: TPlotWindow TabOrder = 23 Text = '0' end + object Time_from0: TCheckBox + Left = 179 + Top = 420 + Width = 109 + Height = 17 + Hint = + 'Tick this box to start time from zero (based on the first date/t' + + 'ime in the csv file)' + Caption = 'Start time from 0' + ParentShowHint = False + ShowHint = True + TabOrder = 24 + OnClick = Time_from0Click + end end object ActionList1: TActionList Images = ImageList1 @@ -935,7 +949,7 @@ object PlotWindow: TPlotWindow Left = 304 Top = 32 Bitmap = { - 494C01010A000E00A40110001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C01010A000E00B80110001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000003000000001002000000000000030 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 diff --git a/UDataPlotWindow.h b/UDataPlotWindow.h index e8a495f..3ba6c05 100644 --- a/UDataPlotWindow.h +++ b/UDataPlotWindow.h @@ -120,6 +120,7 @@ class TPlotWindow : public TForm TEdit *Edit_skip_lines; TLabel *Label15; TLabel *Label16; + TCheckBox *Time_from0; void __fastcall FormDestroy(TObject *Sender); void __fastcall FormClose(TObject *Sender, TCloseAction &Action); void __fastcall ResizeExecute(TObject *Sender); @@ -168,6 +169,7 @@ class TPlotWindow : public TForm void __fastcall Edit_xcolChange(TObject *Sender); void __fastcall Edit_ycolChange(TObject *Sender); void __fastcall Action1Execute(TObject *Sender); + void __fastcall Time_from0Click(TObject *Sender); private: // User declarations int iShape1X,iShape1Y; void virtual __fastcall WmDropFiles(TWMDropFiles& Message); // for drag n drop diff --git a/UScientificGraph.cpp b/UScientificGraph.cpp index 796efb1..937927e 100644 --- a/UScientificGraph.cpp +++ b/UScientificGraph.cpp @@ -1018,7 +1018,10 @@ float TScientificGraph::fnAddDataPoint_nextx(int iGraphNumberF) // returns ne SGraph *pAGraph = ((SGraph*) pHistory->Items[iGraphNumberF]); SGraph *pAGraph_1 = ((SGraph*) pHistory->Items[iGraphNumberF-1]); // previous trace added int i=pAGraph->nos_vals; // current size - if(i >=pAGraph_1->nos_vals ) return 0; // past end of previous x array + if(i >=pAGraph_1->nos_vals ) + {rprintf("Warning:fnAddDataPoint_nextx(%d): pAGraph->nos_vals=%d pAGraph_1->nos_vals=%d\n",iGraphNumberF,i,pAGraph_1->nos_vals); + return 0; // past end of previous x array + } return pAGraph_1->x_vals[i]; // value from previous trace }; @@ -3270,12 +3273,12 @@ void TScientificGraph::fnAutoScale() } if(max_graph>=0) {aGraph=(SGraph*) pHistory->Items[max_graph]; - rprintf("Maximum value = %g found on trace %d (%s) at X=%g\n",dYMax,max_graph,aGraph->Caption.c_str(),X_for_maxY); + rprintf("Maximum value = %g found on trace %d (%s) at X=%g\n",dYMax,max_graph+1,aGraph->Caption.c_str(),X_for_maxY); } else dXMax=dYMax=1; if(min_graph>=0) {aGraph=(SGraph*) pHistory->Items[min_graph]; - rprintf("Minimum value = %g found on trace %d (%s) at X=%g\n",dYMin,min_graph,aGraph->Caption.c_str(),X_for_minY); + rprintf("Minimum value = %g found on trace %d (%s) at X=%g\n",dYMin,min_graph+1,aGraph->Caption.c_str(),X_for_minY); } else dXMin=dYMin=0; d=dYMax-dYMin; //space to axis diff --git a/csvgraph.docx b/csvgraph.docx index 24295c9d432830168a119d7af6a746717b35d1e7..88692c4bee44c2fa35f321297f26bac4923fab57 100644 GIT binary patch delta 53286 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 86399 secs which is well within the capability of a uint32 */ uint32_t sec=0,sec1=0; // sec1 is current set of digits, sec is previous total - int pow10=0; // exponent + int power10=0; // exponent if(!isdigit(*s)) return 0; /* must start with a number */ sec1=(*s++ -'0'); // ascii->decimal for 1st digit while(isdigit(*s)) @@ -1304,7 +1305,7 @@ float gethms(char *s) sec1=sec1*10+(uint32_t)(*s++ -'0'); // ascii->decimal in general else {s++; - pow10++; // too many digits - keep track of decimal point + power10++; // too many digits - keep track of decimal point } } if(*s==':' && isdigit(s[1])) @@ -1313,24 +1314,25 @@ float gethms(char *s) ++s; // skip : } } - if(pow10!=0) - {return (float)(sec+sec1)*pow(10.0f,pow10);// already have too many sf so we can ignore dp if its present + if(power10!=0) + {return ((double)sec+(double)sec1)*pow10(power10);// already have too many sf so we can ignore dp if its present + /* was pow(10.0,power10), replaced with pow10(power10) */ } if(*s=='.') { // seconds contains dp , so we now need to keep track of dp and watch out for uint32 overflowing - we have at most 59 secs in sec1 so we have plenty of resolution ++s; // skip dp while(isdigit(*s) && (sec1&0xf0000000) == 0 ) {sec1=sec1*10+(uint32_t)(*s++ -'0'); - pow10++; // keep track of decimal point position + power10++; // keep track of decimal point position } if(isdigit(*s) && *s>='5') sec1++; // round if more digits present - return (float)sec+(float)sec1/pow(10.0f,pow10); + return (double)sec+(double)sec1/pow10(power10); } - return (float)(sec+sec1); // if seconds is an integer + return (double)sec+(double)sec1; // if seconds is an integer } static unsigned int days=0; -static float last_time_secs=0; +static double last_time_secs=0; static bool skip=false; // skip 1st number in a big step void reset_days(void) /* reset static variables for gethms_days() - should be used before using gethms_days() to read times from a file */ {days=0; @@ -1339,13 +1341,14 @@ void reset_days(void) /* reset static variables for gethms_days() - should be u } double gethms_days(char *s) /* read time in format hh:mm:ss.s , assumed to be called in sequence and accounts for days when time wraps around. Returns secs, or -ve number on error */ - /* this has to return a double as we could have a lot of days and we would quickly run out of resolution with a float */ -{float t; + /* this has to return a double as we could have a lot of days and we would quickly run out of resolution with a float */ +{double t; if(!isdigit(*s)) return -1; /* should start with a number, return -1 to flag this is an error */ t=gethms(s); if(t 64800.0f ) // 64800=18.0*60.0*60.0 + {if(last_time_secs-t <= 1.0) + skip=false; // allow up to 1 second backwards, data will need to be sorted to get correct order but is possibly OK (eg it could be due to a leap second?). + else if((last_time_secs - t) > 64800.0 ) // 64800=18.0*60.0*60.0 { days++; /* if time appears to have gone > 18 hours backwards assume this is because we have passed into a new day */ skip=false; // assume time is valid @@ -1353,6 +1356,7 @@ double gethms_days(char *s) /* read time in format hh:mm:ss.s , assumed to be ca else {if(!skip) {skip=true; + // rprintf("gethms_days(%s): last_time_secs=%.9g t=%.9g\n",s,last_time_secs,t); t= -2;/* time has gone backwards for no reason - return -2 to indicate an error */ } else skip=false; // repeated , accept value (could be due to a gap in the log [power cut?] that crossed midnight) @@ -1364,7 +1368,7 @@ double gethms_days(char *s) /* read time in format hh:mm:ss.s , assumed to be ca { // -ve value of t indicate an error last_time_secs=t; if(days!=0) - return (double)t+86400.0*(double)days; /* 86400=24.0*60.0*60.0 , 24 hours a day, 3600 secs in a hour */ + return t+86400.0*(double)days; /* 86400=24.0*60.0*60.0 , 24 hours a day, 3600 secs in a hour */ } return t; } diff --git a/expr-code.h b/expr-code.h index 8d2bd14..0721b60 100644 --- a/expr-code.h +++ b/expr-code.h @@ -70,7 +70,7 @@ bool getfloat(char *s, float *d); /*reads a floating point number returns true i bool getfloatgt0(char *s, float *d);/* as above but requires number to be >0 */ bool getfloatge0(char *s, float *d);/* as above but requires number to be >0 */ -float gethms(char *s); /* read a time of format hh:mm:ss.s , returns time in seconds */ +double gethms(char *s); /* read a time of format hh:mm:ss.s , returns time in seconds */ void reset_days(void); /* reset static variables for gethms_days() - should be used before using gethms_days() to read times from a file */ double gethms_days(char *s); /* read time in format hh:mm:ss.s , assumed to be called in sequence and accounts for days when time wraps around. Returns secs */