public void UpdateView(double timestart, double timeend) { StreamReader fin = new StreamReader("simulog.log"); while (!fin.EndOfStream) { string text = fin.ReadLine(); string[] args = text.Split(' '); string name = args[0]; int time = int.Parse(args[1]); ValueSegment vs = null, vsp = null; SimulateDataModel sdmodel = vddict[name]; switch (sdmodel.Type) { case "BIT": vs = new BitSegment(); vs.Value = Int32.Parse(args[2]); break; case "WORD": vs = new WordSegment(); vs.Value = Int32.Parse(args[2]); break; case "DWORD": vs = new DWordSegment(); vs.Value = Int64.Parse(args[2]); break; case "FLOAT": vs = new FloatSegment(); vs.Value = float.Parse(args[2]); break; } if (sdmodel.Values.Count() == 0) { vsp = vs.Clone(); vsp.Value = 0; vsp.TimeStart = (int)(timestart); vs.TimeStart = vsp.TimeEnd = time; sdmodel.Add(vsp); sdmodel.Add(vs); } else { vsp = sdmodel.Values.Last(); vs.TimeStart = vsp.TimeEnd = time; sdmodel.Add(vs); } } foreach (SimulateDataModel sdmodel in vddict.Values) { if (sdmodel.Values.Count() > 0) { sdmodel.Values.Last().TimeEnd = (int)(timeend); } } }
public void SetValue(SimulateDataModel sdmodel, object value, int timestart, int timeend) { RemoveValue(sdmodel, timestart, timeend); ValueSegment vseg; switch (sdmodel.Type) { case "BIT": BitSegment bseg = new BitSegment(); bseg.Value = value; vseg = bseg; break; case "WORD": WordSegment wseg = new WordSegment(); wseg.Value = value; vseg = wseg; break; case "DWORD": DWordSegment dseg = new DWordSegment(); dseg.Value = value; vseg = dseg; break; case "FLOAT": FloatSegment fseg = new FloatSegment(); fseg.Value = value; vseg = fseg; break; default: throw new ArgumentException(); } vseg.TimeStart = timestart; vseg.TimeEnd = timeend; sdmodel.Add(vseg); }