// clear data --------------------------------------------------------------- void __fastcall TPlot::Clear(void) { AnsiString s; double ep[]={2010,1,1,0,0,0}; int i; trace(3,"Clear\n"); Week=NObs=0; for (i=0;i<2;i++) { freesolbuf(SolData+i); free(SolStat[i].data); SolStat[i].n=0; SolStat[i].data=NULL; } freeobs(&Obs); freenav(&Nav,0xFF); delete [] IndexObs; delete [] Az; delete [] El; IndexObs=NULL; Az=NULL; El=NULL; SolFiles[0]->Clear(); SolFiles[1]->Clear(); ObsFiles->Clear(); NavFiles->Clear(); NObs=0; SolIndex[0]=SolIndex[1]=ObsIndex=0; for (i=0;i<3;i++) { TimeEna[i]=0; } TimeStart=TimeEnd=epoch2time(ep); BtnAnimate->Down=false; if (PlotType>PLOT_NSAT) { UpdateType(PLOT_TRK); } if (!ConnectState) { initsolbuf(SolData ,0,0); initsolbuf(SolData+1,0,0); Caption=Title!=""?Title:s.sprintf("%s ver.%s",PRGNAME,VER_RTKLIB); } else { initsolbuf(SolData ,1,RtBuffSize+1); initsolbuf(SolData+1,1,RtBuffSize+1); } UpdateTime(); UpdatePlot(); }
// read observation data ---------------------------------------------------- void __fastcall TPlot::ReadObs(TStrings *files) { obs_t obs={0}; nav_t nav={0}; sta_t sta={0}; AnsiString s; int i,nobs; trace(3,"ReadObs\n"); if (files->Count<=0) return; ReadWaitStart(); ShowLegend(NULL); if ((nobs=ReadObsRnx(files,&obs,&nav,&sta))<=0) { ReadWaitEnd(); return; } freeobs(&Obs); freenav(&Nav,0xFF); Obs=obs; Nav=nav; Sta=sta; UpdateObs(nobs); if (ObsFiles!=files) { ObsFiles->Assign(files); } NavFiles->Clear(); Caption=s.sprintf("%s%s",files->Strings[0].c_str(),files->Count>1?"...":""); BtnSol1->Down=true; time2gpst(Obs.data[0].time,&Week); SolIndex[0]=SolIndex[1]=ObsIndex=0; if (PlotType<PLOT_OBS||PLOT_DOP<PlotType) { UpdateType(PLOT_OBS); } else { UpdatePlotType(); } FitTime(); UpdateTime(); UpdatePlot(); ReadWaitEnd(); }
// clear obs data -------------------------------------------------------------- void __fastcall TPlot::ClearObs(void) { sta_t sta0={0}; int i; freeobs(&Obs); freenav(&Nav,0xFF); delete [] IndexObs; IndexObs=NULL; delete [] Az; Az=NULL; delete [] El; El=NULL; for (i=0;i<NFREQ+NEXOBS;i++) { delete [] Mp[i]; Mp[i]=NULL; } ObsFiles->Clear(); NavFiles->Clear(); NObs=0; Sta=sta0; ObsIndex=0; SimObs=0; }