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); }
protected override void ProcessingStopped() { _running = false; _thread?.Join(); _seekWindow?.Close(); _seekWindow?.Dispose(); _reader.Dispose(); _reader = null; _seekWindow = null; }
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); }
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(); }