/// <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);
        }
Example #2
0
        /// <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);
        }