/// <summary> /// Reads the MSTS.xml file to determine the acquisition length and the number of scans /// </summary> /// <param name="directoryPath"></param> /// <param name="datasetFileInfo"></param> /// <param name="totalAcqTimeMinutes"></param> /// <returns></returns> /// <remarks></remarks> private bool ProcessTimeSegmentFile(string directoryPath, DatasetFileInfo datasetFileInfo, out double totalAcqTimeMinutes) { var success = false; double startTime = 0; double endTime = 0; totalAcqTimeMinutes = 0; try { datasetFileInfo.ScanCount = 0; // Open the Contents.xml file var filePath = Path.Combine(directoryPath, AGILENT_TIME_SEGMENT_FILE); using (var reader = new System.Xml.XmlTextReader(new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))) { while (!reader.EOF) { reader.Read(); switch (reader.NodeType) { case System.Xml.XmlNodeType.Element: switch (reader.Name) { case "TimeSegment": startTime = 0; endTime = 0; break; case "StartTime": startTime = reader.ReadElementContentAsDouble(); break; case "EndTime": endTime = reader.ReadElementContentAsDouble(); break; case "NumOfScans": datasetFileInfo.ScanCount += reader.ReadElementContentAsInt(); success = true; break; default: // Ignore it break; } break; case System.Xml.XmlNodeType.EndElement: if (reader.Name == "TimeSegment") { // Store the acqtime for this time segment if (endTime > startTime) { success = true; totalAcqTimeMinutes += endTime - startTime; } } break; } } } } catch (Exception ex) { // Exception reading file OnErrorEvent("Exception reading " + AGILENT_TIME_SEGMENT_FILE + ": " + ex.Message, ex); success = false; } return(success); }
/// <summary> /// Reads the MSTS.xml file to determine the acquisition length and the number of scans /// </summary> /// <param name="strFolderPath"></param> /// <param name="datasetFileInfo"></param> /// <param name="dblTotalAcqTimeMinutes"></param> /// <returns></returns> /// <remarks></remarks> private bool ProcessTimeSegmentFile(string strFolderPath, clsDatasetFileInfo datasetFileInfo, out double dblTotalAcqTimeMinutes) { var blnSuccess = false; double dblStartTime = 0; double dblEndTime = 0; dblTotalAcqTimeMinutes = 0; try { datasetFileInfo.ScanCount = 0; // Open the Contents.xml file var strFilePath = Path.Combine(strFolderPath, AGILENT_TIME_SEGMENT_FILE); using (var srReader = new System.Xml.XmlTextReader(new FileStream(strFilePath, FileMode.Open, FileAccess.Read, FileShare.Read))) { while (!srReader.EOF) { srReader.Read(); switch (srReader.NodeType) { case System.Xml.XmlNodeType.Element: switch (srReader.Name) { case "TimeSegment": dblStartTime = 0; dblEndTime = 0; break; case "StartTime": dblStartTime = srReader.ReadElementContentAsDouble(); break; case "EndTime": dblEndTime = srReader.ReadElementContentAsDouble(); break; case "NumOfScans": datasetFileInfo.ScanCount += srReader.ReadElementContentAsInt(); blnSuccess = true; break; default: break; // Ignore it } break; case System.Xml.XmlNodeType.EndElement: if (srReader.Name == "TimeSegment") { // Store the acqtime for this time segment if (dblEndTime > dblStartTime) { blnSuccess = true; dblTotalAcqTimeMinutes += (dblEndTime - dblStartTime); } } break; } } } } catch (Exception ex) { // Exception reading file OnErrorEvent("Exception reading " + AGILENT_TIME_SEGMENT_FILE + ": " + ex.Message, ex); blnSuccess = false; } return(blnSuccess); }