Esempio n. 1
0
        public DataLineFile1D CreatePlot(RecordLineStream1D input, string directory)
        {
            Stream1DReader reader = null;

            try {
                reader = new Stream1DReader(
                    new System.IO.BinaryReader(
                        System.IO.File.Open(
                            System.IO.Path.Combine(directory, input.Path),
                            System.IO.FileMode.Open,
                            System.IO.FileAccess.Read,
                            System.IO.FileShare.Read
                            )
                        )
                    );
            } catch (Exception ex) {
                GlobalSettings.Instance.UserLog.Add(new FormMessage(this, LogMessage.LogType.Error, $"Can't create stream for file {input.Path}: {ex}"));
                return(null);
            }

            var line = new DataLineFile1D(input.Path, reader, input.Samplerate, input.Begin);

            line.LineColor = _colors[(_set.Data.Count + 1) % _colors.Length];
            line.Visible   = true;

            _set.Data.Add(line);

            return(line);
        }
Esempio n. 2
0
        protected override void ProcessingStopped()
        {
            _running = false;
            _thread?.Join();

            _seekWindow?.Close();
            _seekWindow?.Dispose();
            _reader.Dispose();
            _reader     = null;
            _seekWindow = null;
        }
Esempio n. 3
0
        public override bool PrepareProcessing()
        {
            if (!File.Exists(FileName))
            {
                NodeSystemSettings.Instance.SystemHost.ReportError(this, $"File not found: {FileName}");
                return(false);
            }

            try {
                _reader = new Stream1DReader(
                    new BinaryReader(
                        File.Open(FileName, FileMode.Open, FileAccess.Read, FileShare.Read)
                        )
                    );
            } catch (Exception e) {
                NodeSystemSettings.Instance.SystemHost.ReportError(this, $"Could not open {FileName}. Unknown exception: {e}");
                return(false);
            }

            if (_buffer == null || _buffer.Samplerate != Samplerate)
            {
                _buffer = new TimeLocatedBuffer(NodeSystemSettings.Instance.SystemHost.GetDefaultBufferSize(Samplerate), Samplerate);
            }

            _stateBag = new List <StateEntry>();

            _buffer.ResetTime();
            _fileTargetPosition = 0;

            if (NodeSystemSettings.Instance.SystemHost.DockPanelInstance != null)
            {
                _seekWindow                 = new FileNodeWindow();
                _seekWindow.Max             = _reader.SampleCount;
                _seekWindow.Min             = 0;
                _seekWindow.Value           = 0;
                _seekWindow.ValueBackground = 0;
            }

            _servedLookup = new List <bool>(Enumerable.Range(0, _portOut.Connections.Count).Select(i => false));

            return(true);
        }
Esempio n. 4
0
        public DataLineFile1D(string name, Stream1DReader reader, int samplerate, TimeStamp begin)
        {
            _zoomLevels = new [] { 64, 128, 256, 512, 1024, 2048, 4096, 8192, 2 * 8192 };

            var biggestScreen = System.Windows.Forms.Screen.AllScreens.Max(screen => screen.WorkingArea.Size);
            var bufferSize    = biggestScreen.Width * _zoomLevels.First();

            _begin         = begin;
            _reader        = reader;
            _samplerate    = samplerate;
            _floatTemp     = new float[bufferSize];
            _doubleTemp    = new double[bufferSize];
            _minMaxTemp    = new MinMax[bufferSize];
            _ringBuffer    = new VertexRingBuffer(bufferSize);
            _ringBufferMax = new VertexRingBuffer(bufferSize);
            _ringBufferMin = new VertexRingBuffer(bufferSize);

            Name = name;

            ReadFile();
        }