| ofs | hex dump | ascii |
|---|
| 0000 | 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 | MZ......................@....... |
| 0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 00 00 00 | ................................ |
| 0040 | 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f | ........!..L.!This.program.canno |
| 0060 | 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00 | t.be.run.in.DOS.mode....$....... |
| 0080 | 34 88 8a ef 70 e9 e4 bc 70 e9 e4 bc 70 e9 e4 bc e3 89 e5 bd 73 e9 e4 bc e3 89 e1 bd 62 e9 e4 bc | 4...p...p...p.......s.......b... |
| 00a0 | e3 89 e0 bd 7d e9 e4 bc 52 89 e5 bd 74 e9 e4 bc 70 e9 e5 bc 5b e9 e4 bc cb 88 ed bd 71 e9 e4 bc | ....}...R...t...p...[.......q... |
| 00c0 | cb 88 1b bc 71 e9 e4 bc cb 88 e6 bd 71 e9 e4 bc 52 69 63 68 70 e9 e4 bc 00 00 00 00 00 00 00 00 | ....q.......q...Richp........... |
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 45 00 00 4c 01 05 00 69 f3 cb 59 00 00 00 00 | ................PE..L...i..Y.... |
| 0100 | 00 00 00 00 e0 00 02 01 0b 01 0e 0a 00 1a 00 00 00 1a 00 00 00 00 00 00 a0 13 00 00 00 10 00 00 | ................................ |
| 0120 | 00 30 00 00 00 00 40 00 00 10 00 00 00 02 00 00 06 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 | .0....@......................... |
| 0140 | 00 80 00 00 00 04 00 00 00 00 00 00 03 00 40 81 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 | ..............@................. |
| 0160 | 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 54 3c 00 00 50 00 00 00 00 60 00 00 e0 01 00 00 | ................T<..P....`...... |
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 00 00 f0 01 00 00 80 38 00 00 54 00 00 00 | .................p.......8..T... |
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d8 38 00 00 40 00 00 00 | .........................8..@... |
| 01c0 | pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */using RealTimeGraphEx.DataSeries;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace RealTimeGraphEx.Controllers
{
public class GraphController : GraphControllerBase
{
#region Cross Thread Fields
internal DataYSeries dataSeries;
#endregion
public GraphController()
{
DataSeries = new DataYSeries();
}
public DataYSeries DataSeries
{
get { return (DataYSeries)GetValue(DataSeriesProperty); }
set { SetValue(DataSeriesProperty, value); }
}
public static readonly DependencyProperty DataSeriesProperty =
DependencyProperty.Register("Controller", typeof(DataYSeries), typeof(GraphController), new PropertyMetadata(null, new PropertyChangedCallback(SetCrossThreadFields)));
private static void SetCrossThreadFields(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
(d as GraphController).OnSetCrossModelFields();
}
protected virtual void OnSetCrossModelFields()
{
this.Dispatcher.Invoke(() =>
{
dataSeries = DataSeries;
}, System.Windows.Threading.DispatcherPriority.Send);
}
public override void Clear()
{
if (clearMethod != null)
{
clearMethod();
}
dataSeries.ClearPoints();
}
internal override void ClearPoints()
{
dataSeries.ClearPoints();
}
public virtual void PushData(List<double> values)
{
if (startThreadMethod != null)
{
startThreadMethod();
}
dataSeries.PushData(values);
}
public virtual void PushData(double[] values)
{
if (startThreadMethod != null)
{
startThreadMethod();
}
dataSeries.PushData(values);
}
public virtual void PushData(double value)
{
if (startThreadMethod != null)
{
startThreadMethod();
}
dataSeries.PushData(value);
}
}
}
|