public void ProcessData(double level, bool forcePlot) { try { lock (SampleValues) { SampleValues.Add(level); if (RealTimeMode && SampleValues.Count >= MaxSamples) { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); SampleValues.Clear(); lock (LinePointsLock) { CreateVertexBufferForPoints(LinePoints, LinePointEntries); } NeedsRender = true; } else { NeedsUpdate = true; } } } catch (Exception e) { } }
private void LinePointUpdateTimer_Func(object sender, EventArgs e) { NestingDepth++; if (NestingDepth > 1) { Log.AddMessage("Nesting"); } lock (SampleValues) { try { if (!RealTimeMode) { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); NeedsUpdate = false; NeedsRender = true; } } catch (Exception ex) { } } NestingDepth--; }
private void DisplayFunc() { while (true) { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); if (SlavePlot != null) { SlavePlot.Render(); } Render(); Thread.Sleep((int)(1000 / DefaultRefreshRate)); } }
public void ProcessData(double iValue, double qValue) { lock (SampleValues) { if (MaxSamples * 2 != SampleValues.Length) { SampleValues = new double[MaxSamples, 2]; SamplesWritten = 0; } if (SamplesWritten >= MaxSamples) { if (RealTimeMode) { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); SamplesWritten = 0; lock (LinePointsLock) { CreateVertexBufferForPoints(LinePoints, LinePointEntries); } NeedsRender = true; } else { NeedsUpdate = true; return; } } else { NeedsUpdate = true; } SampleValues[SamplesWritten, 0] = iValue; SampleValues[SamplesWritten, 1] = qValue; SamplesWritten++; } }
public void ProcessData(byte[] dataBuffer, int channels, int channel) { if (SampleValues.Count > 2 * MaxSamples) { return; } if (channels == 0 || channel == 0 || channel > channels) { return; } lock (SampleValues) { int bytePerSample = channels * 2; int byteOffset = (channel - 1) * 2; for (int pos = 0; pos < dataBuffer.Length / bytePerSample; pos++) { SampleValues.Add(ByteUtil.getDoubleFromBytes(dataBuffer, byteOffset + bytePerSample * pos)); if (RealTimeMode && SampleValues.Count >= MaxSamples) { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); SampleValues.Clear(); lock (LinePointsLock) { CreateVertexBufferForPoints(LinePoints, LinePointEntries); } } else { NeedsUpdate = true; } } } }
public void ProcessData(double[] samples) { if (SampleValues.Count > 2 * MaxSamples) { return; } try { lock (SampleValues) { for (int pos = 0; pos < samples.Length; pos++) { SampleValues.Add(samples[pos]); if (RealTimeMode && SampleValues.Count >= MaxSamples) { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); SampleValues.Clear(); lock (LinePointsLock) { CreateVertexBufferForPoints(LinePoints, LinePointEntries); } } else { NeedsUpdate = true; } } } } catch (Exception e) { } }
private void LinePointUpdateTimer_Func(object sender, EventArgs e) { if (NeedsUpdate && !RealTimeMode) { lock (SampleValues) { try { if (SlavePlot != null) { SlavePlot.PrepareLinePoints(); } PrepareLinePoints(); NeedsUpdate = false; NeedsRender = true; } catch (Exception ex) { Log.AddMessage(ex.ToString()); } } } }