public void Save(string fn) { if (ExperimentalData.Count == 0) { return; } StreamWriter sr = new StreamWriter(fn); MeassurePoint mpf = ExperimentalData.First(); MeassurePoint mpl = ExperimentalData.Last(); TimeSpan dur = mpl.Time - mpf.Time; sr.WriteLine("{0:20} : {1}", "DESCRIPTION", Description); sr.WriteLine("{0:20} : {1} at {2}", "STARTED", mpf.Time.ToShortDateString(), mpf.Time.ToShortTimeString()); sr.WriteLine("{0:20} : {1} at {2}", "COMPLETED", mpl.Time.ToShortDateString(), mpl.Time.ToShortTimeString()); sr.WriteLine("{0:20} : {1} ({2} minutes)", "DURATION", dur.ToString(@"hh\:mm\:ss"), dur.TotalMinutes); sr.WriteLine("{0:20} : {1:F3} Ah", "TOTAL CHARGE", TotalCharge); sr.WriteLine("TIME, MINUTES, IBAT, UBAT"); foreach (MeassurePoint mp in ExperimentalData) { mp.Save(sr); } sr.Flush(); sr.Close(); }
protected override void ControlProcedure() { MeassurePoint mp = MakeMeassurePoint(); mp.TotalMinutes = (DateTime.Now - StartTime).TotalMinutes; TotalCharge += CalcStepCharge(mp); App.Current.Dispatcher.Invoke(() => ExperimentalData.Add(mp)); mp.Save(temporaryStream); }
protected double CalcStepCharge(MeassurePoint mp) { if (ExperimentalData.Count == 0) { return(0.0); } MeassurePoint mpl = null; lock (collectionLock) { mpl = ExperimentalData.Last(); } double stepCharge = 0.0; if (mpl != null) { TimeSpan dt = mp.Time - mpl.Time; stepCharge = dt.TotalHours * Math.Abs(mp.Current); } return(stepCharge); }
public void ClearData() { App.Current.Dispatcher.Invoke(() => ExperimentalData.Clear()); }