private void m_framework_SynchronousNewQueryResults(object sender, QueryResultsEventArgs e) { m_legendData.Clear(); for (int x = 0; x < m_allGroups.Count; x++) { m_legendData.Add(new LegendEntry(m_allGroups[x], m_colorWheel.TryGetPen(x))); } Refresh(); }
private void Updater_NewQueryResults(object sender, QueryResultsEventArgs e) { m_lastResults = e; long pointCount = 0; foreach (SignalDataBase r in e.Results.Values) { pointCount += r.Count; } this.pointCount = pointCount; }
private void Updater_NewQueryResults(object sender, QueryResultsEventArgs e) { long count = 0; foreach (SignalDataBase r in e.Results.Values) { count += r.Count; } m_pointCount = count; }
private void m_framework_NewQueryResults(object sender, QueryResultsEventArgs e) { if (InvokeRequired) { Invoke(new EventHandler <QueryResultsEventArgs>(m_framework_NewQueryResults), sender, e); return; } long points = 0; foreach (SignalDataBase pt in e.Results.Values) { points += pt.Count; } LblPointCount.Text = "Point Count: " + points.ToString(); PlotChart(e, PlotFrequency, m_frequencySignals, ReferenceEquals(PlotFrequency, LastPlotInteraction)); PlotChart(e, PlotVoltageAngle, m_voltageAngleSignals, ReferenceEquals(PlotVoltageAngle, LastPlotInteraction)); LastPlotInteraction = null; }
private void PlotChart(QueryResultsEventArgs e, PlotSurface2D plot, List <KeyValuePair <int, Guid> > signals, bool cacheAxis) { if (cacheAxis) { double minX, maxX, minY, maxY; plot.Title = m_plotTitle; maxX = plot.XAxis1.WorldMax; minX = plot.XAxis1.WorldMin; maxY = plot.YAxis1.WorldMax; minY = plot.YAxis1.WorldMin; foreach (IDrawable drawing in plot.Drawables.ToArray()) { plot.Remove(drawing, false); } foreach (KeyValuePair <int, Guid> freq in signals) { SignalDataBase data = e.Results[freq.Value]; List <double> y = new List <double>(data.Count); List <double> x = new List <double>(data.Count); for (int i = 0; i < data.Count; i++) { ulong time; double value; data.GetData(i, out time, out value); x.Add(time); y.Add(value * m_scalingFactor); } LinePlot lines = new LinePlot(y, x); lines.Pen = m_colorWheel.TryGetPen(freq.Key); plot.Add(lines); } plot.XAxis1.WorldMax = maxX; plot.XAxis1.WorldMin = minX; plot.YAxis1.WorldMax = maxY; plot.YAxis1.WorldMin = minY; plot.Refresh(); } else { plot.Clear(); plot.Title = m_plotTitle; AddInteractions(); foreach (KeyValuePair <int, Guid> freq in signals) { SignalDataBase data = e.Results[freq.Value]; List <double> y = new List <double>(data.Count); List <double> x = new List <double>(data.Count); for (int i = 0; i < data.Count; i++) { ulong time; double value; data.GetData(i, out time, out value); x.Add(time); y.Add(value * m_scalingFactor); } LinePlot lines = new LinePlot(y, x); lines.Pen = m_colorWheel.TryGetPen(freq.Key); plot.Add(lines); } if (plot.XAxis1 != null) { plot.XAxis1.WorldMax = e.EndTime.Ticks; plot.XAxis1.WorldMin = e.StartTime.Ticks; } plot.Refresh(); } }
private void m_framework_ParallelWithControlLockNewQueryResults(object sender, QueryResultsEventArgs e) { //Debug Code //if (InvokeRequired) // throw new Exception(); try { PlotChart(e, plotSurface2D1, m_signals, m_ignoreNextUpdate |= ReferenceEquals(m_token, e.RequestedToken)); } catch (Exception) { } m_ignoreNextUpdate = false; }
private void PlotChart(QueryResultsEventArgs e, PlotSurface2D plot, List <Guid> signals, bool cacheAxis) { if (cacheAxis) { maxX = plot.XAxis1.WorldMax; minX = plot.XAxis1.WorldMin; maxY = plot.YAxis1.WorldMax; minY = plot.YAxis1.WorldMin; foreach (IDrawable drawing in plot.Drawables.ToArray()) { plot.Remove(drawing, false); } ColorWheel.Reset(); foreach (Guid freq in signals) { SignalDataBase data = e.Results[freq]; List <double> y = new List <double>(data.Count); List <double> x = new List <double>(data.Count); for (int i = 0; i < data.Count; i++) { data.GetData(i, out ulong time, out double value); x.Add(time); y.Add(value); } LinePlot lines = new LinePlot(y, x); lines.Pen = ColorWheel.GetPen(); plot.Add(lines); } plot.XAxis1.WorldMax = maxX; plot.XAxis1.WorldMin = minX; plot.YAxis1.WorldMax = maxY; plot.YAxis1.WorldMin = minY; plot.Refresh(); } else { plot.Clear(); plot.AddInteraction(new PlotSurface2D.Interactions.HorizontalDrag()); plot.AddInteraction(new PlotSurface2D.Interactions.VerticalDrag()); plot.AddInteraction(new PlotSurface2D.Interactions.AxisDrag(false)); ColorWheel.Reset(); foreach (Guid freq in signals) { SignalDataBase data = e.Results[freq]; List <double> y = new List <double>(data.Count); List <double> x = new List <double>(data.Count); for (int i = 0; i < data.Count; i++) { data.GetData(i, out ulong time, out double value); x.Add(time); y.Add(value); } LinePlot lines = new LinePlot(y, x); lines.Pen = ColorWheel.GetPen(); plot.Add(lines); } plot.Refresh(); } }
private void BtnExport_Click(object sender, EventArgs e) { QueryResultsEventArgs results = m_lastResults; if (results == null) { MessageBox.Show("No query has been executed"); return; } using (SaveFileDialog dlg = new SaveFileDialog()) { dlg.Filter = "CVS File|*.csv"; if (dlg.ShowDialog() == DialogResult.OK) { StreamWriter fs = new StreamWriter(dlg.FileName, false); fs.AutoFlush = false; SortedList <DateTime, List <double?> > list = new SortedList <DateTime, List <double?> >(); int column = 0; foreach (SignalDataBase value in results.Results.Values) { for (int x = 0; x < value.Count; x++) { ulong date; double v; value.GetData(x, out date, out v); DateTime d = new DateTime((long)date); if (!list.ContainsKey(d)) { list.Add(d, new List <double?>()); for (int k = 0; k < column; k++) { list[d].Add(null); } } list[d].Add(v); } foreach (List <double?> lst in list.Values) { while (lst.Count <= column) { lst.Add(null); } } column++; } List <string> name = new List <string>(); Dictionary <Guid, MetadataBase> lookup = visualizationFramework1.Framework.AllSignals.ToDictionary((meta) => meta.UniqueId); foreach (Guid value in results.Results.Keys) { if (!lookup.ContainsKey(value)) { name.Add(value.ToString()); } else if (lookup[value].Name == "") { name.Add(value.ToString()); } else { name.Add(lookup[value].Name); } } fs.Write("Date"); name.ForEach((x) => fs.Write("," + x)); fs.WriteLine(); foreach (KeyValuePair <DateTime, List <double?> > kvp in list) { fs.Write(kvp.Key.ToString("yyyy.MM.dd HH:mm:ss:fff")); foreach (double?val in kvp.Value) { fs.Write(","); if (val.HasValue) { fs.Write(val.ToString()); } } fs.WriteLine(); } fs.Flush(); fs.Close(); Process.Start(dlg.FileName); } } }
private void m_framework_SynchronousNewQueryResults(object sender, QueryResultsEventArgs e) { m_suspendEvent = true; monthCalendar1.SetSelectionRange(e.StartTime.Date, e.EndTime.Date); m_suspendEvent = false; }