void ReadHeader(TelematicsLog log, string[] lines) { foreach (string line in lines) { if (ContainsOpenTag(line, TelematicsLog.StartFlowsLabel)) { break; } if (ContainsOpenTag(line, TelematicsLog.FileVersionLabel)) { log.FileVersion = ReadVersionAttribute(line, TelematicsLog.FileVersionLabel); } else if (ContainsOpenTag(line, TelematicsLog.FactoryIdLabel)) { log.FactoryId = ReadStringAttribute(line, TelematicsLog.FactoryIdLabel); } else if (ContainsOpenTag(line, TelematicsLog.StorageIntervalLabel)) { log.StorageInterval = ReadIntegerAttribute(line, TelematicsLog.StorageIntervalLabel); } else if (ContainsOpenTag(line, LogMeterMeter.UnitLabel)) { log.Unit = ReadStringAttribute(line, TelematicsLog.UnitLabel); } else if (ContainsOpenTag(line, TelematicsLog.StartDateTimeLabel)) { log.StartDateTime = ReadDateTimeAttribute(line, TelematicsLog.StartDateTimeLabel); } } }
public TelematicsLog ReadHeader(string dataSource) { try { log = new TelematicsLog(dataSource); string[] lines = System.IO.File.ReadAllLines(dataSource); log.FileName = dataSource; ReadHeader(log, lines); log.FirstCounter = GetFirstCounter(lines); log.LastCounter = GetLastCounter(lines); return(log); } catch (System.Data.OleDb.OleDbException ex) { if (ex.Message.Contains("Could not find file")) { throw new Exception("Could not find file"); } else { throw; } } }
List <Discontinuity> GetDiscontinuities(string dataSource) { log = new TelematicsLog(dataSource); string[] lines = System.IO.File.ReadAllLines(dataSource); var discontinuities = new List <Discontinuity>(); int previousCounter = 0; int currentCounter = 0; bool firstTime = true; Discontinuity discontinuity = null; for (int i = 0; i < lines.Length; i++) { if (ContainsOpenTag(lines[i], TelematicsLog.CounterLabel)) { if (firstTime) { currentCounter = int.Parse(ReadAttributeValue(lines[i])); firstTime = false; } else { previousCounter = currentCounter; currentCounter = int.Parse(ReadAttributeValue(lines[i])); if (currentCounter != previousCounter + 1 && discontinuity == null) { discontinuity = new Discontinuity(); discontinuity.CounterStart = currentCounter; } else if (currentCounter == previousCounter + 1 && discontinuity != null) { discontinuity.CounterEnd = currentCounter; discontinuities.Add(discontinuity); discontinuity = null; } } } } return(discontinuities); }
public override Log Load(string dataSource) { try { log = new TelematicsLog(dataSource); string[] lines = System.IO.File.ReadAllLines(dataSource); log.FileName = dataSource; ReadHeader(log, lines); log.StartTime = GetStartTime(log.FileName); if (log.StartTime == DateTime.MinValue) { log.StartTime = log.StartDateTime; } lastCounterFlow = GetLastCounter(lines); log.Flows = ReadFlows(lines, log.StartTime, TimeSpan.FromSeconds(log.StorageInterval), log.ConversionFactorFromCubicMetersToGallons); if (log.Flows.Count > 0) { log.EndTime = log.Flows[log.Flows.Count - 1].EndTime; } log.Update(); return(log); } catch (System.Data.OleDb.OleDbException ex) { if (ex.Message.Contains("Could not find file")) { throw new Exception("Could not find file"); } else { throw; } } }