Example #1
0
        private void EndRecording()
        {
            if (_stream != null)
            {
                var record = new NodeSystemLib.FileFormatLib.Record();

                var line = new NodeSystemLib.FileFormatLib.RecordLineStream1D(
                    DateTime.Now,
                    _firstWrittenSampleTime,
                    _firstWrittenSampleTime.Add(_writtenSamples, _portData.Samplerate),
                    GetRelativePath(_stream.Name, Parent.WorkingDirectory),
                    _portData.Samplerate
                    );

                record.Lines.Add(line);

                _set.AddRecord(record);
                NodeSystemLib.FileFormatLib.RecordSetWriter.WriteToFile(_set, System.IO.Path.Combine(Parent.WorkingDirectory, "index.lst"));
            }

            _firstWrittenSampleTime = TimeStamp.Zero();
            _writtenSamples         = 0;
            _recording = false;

            _stream?.Close();
            _stream?.Dispose();
            _binWriter = null;
            _stream    = null;
        }
Example #2
0
        public bool StayFiveMinutes(DateTime timeStampReq)
        {
            var moreFiveMinutes = TimeStamp.Add(new TimeSpan(0, 5, 0));
            var lessFiveMinutes = TimeStamp.Subtract(new TimeSpan(0, 5, 0));

            return(timeStampReq >= lessFiveMinutes && timeStampReq <= moreFiveMinutes);
        }
Example #3
0
        public void CalculateTimes()
        {
            TimeStamp time      = Ticks[0].Time;
            TimeStamp startTime = new TimeStamp(time.Year, time.Month, time.Day);

            startTime.Add(sessionStart);
            for (int i = 0; i < randomEntries.Length; i++)
            {
                randomEntries[i] = startTime;
                randomEntries[i].AddSeconds(random.Next(0, sessionHours * 60 * 60));
            }
            Array.Sort(randomEntries, 0, randomEntries.Length);
            randomIndex  = 0;
            firstSession = true;
        }
Example #4
0
 private void UpdateTimeStamp()
 {
     try
     {
         TimeStamp = TimeStampDate;
         TimeSpan?ts = StringToTimeSpan(TimeStampTime);
         if (ts != null)
         {
             TimeStamp = TimeStamp.Add(ts.Value);
         }
     }
     catch (Exception e)
     {
         _warehouse.AddEvent(Database.Event.EnumSeverity.Error, Database.Event.EnumType.Exception,
                             string.Format("{0}.{1}: {2}", this.GetType().Name, (new StackTrace()).GetFrame(0).GetMethod().Name, e.Message));
     }
 }
        // 仅根据 path 和 ContentFile 读取文件
        public async Task <bool> LoadFromFile()
        {
            var Folder = await StorageFolder.GetFolderFromPathAsync(Path.GetDirectoryName(path));

            if (Folder == null)
            {
                return(false);
            }
            var File = await Folder.GetFileAsync(Path.GetFileName(path));

            if (File == null)
            {
                return(false);
            }
            var _ContentFile = await Folder.GetFileAsync(ContentFile);

            if (_ContentFile == null)
            {
                return(false);
            }
            TimeStamp.Clear();
            string FileContent;

            using (Stream file = await File.OpenStreamForReadAsync())
            {
                using (StreamReader read = new StreamReader(file))
                {
                    FileContent = read.ReadToEnd();
                }
            }

            using (StringReader strRdr = new StringReader(FileContent))
            {
                //通过XmlReader.Create静态方法创建XmlReader实例
                using (XmlReader rdr = XmlReader.Create(strRdr))
                {
                    //循环Read方法直到文档结束
                    while (rdr.Read())
                    {
                        //如果是开始节点
                        if (rdr.NodeType == XmlNodeType.Element)
                        {
                            //通过rdr.Name得到节点名
                            string elementName = rdr.Name;
                            if (elementName == "Url")
                            {
                                //读取到节点内文本内容
                                if (rdr.Read())
                                {
                                    //通过rdr.Value获得文本内容
                                    Url = rdr.Value;
                                }
                            }
                            if (elementName == "ContentFile")
                            {
                                if (rdr.Read())
                                {
                                    if (string.Compare(ContentFile, rdr.Value) != 0)
                                    {
                                        Debug.WriteLine("读取的内容和保存的内容不符合");
                                    }
                                }
                            }
                            if (elementName == "TimeStampItem")
                            {
                                if (rdr.Read())
                                {
                                    TimeStamp.Add(DateTime.ParseExact(rdr.Value, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture));
                                }
                            }
                        }
                    }
                }
            }

            using (Stream file = await _ContentFile.OpenStreamForReadAsync())
            {
                using (StreamReader read = new StreamReader(file))
                {
                    Content = read.ReadToEnd();
                }
            }
            return(true);
        }