void VariableRemoved(Variable variable) { Dispatcher.Invoke(new Action<MainWindow>((sender) => { Widget widget = widgets[variable]; wrapPanel1.Children.Remove(widget); widgets.Remove(variable); }), this); }
void VariableAdded(Variable variable) { Dispatcher.Invoke(new Action<MainWindow>((sender) => { Widget widget = new Widget(variable); widget.OnChangeVariable += new Action<Variable>(widget_OnChangeVariable); wrapPanel1.Children.Add(widget); widgets[variable] = widget; }), this); }
unsafe void dataToVariable(Variable v, byte[] data) { }
private void AddVariable(string name, string type, byte[] data) { Type[] types = typeof(Native).GetNestedTypes(); Type native = types.Where(t => t.Name == "_" + type).SingleOrDefault(); if (native == null) { throw new Exception("Unsupported type send from server"); } Variable v = new Variable(native, name); v.DataToStruct(data); variables.Add(v); OnVariableAdded(v); }
internal void SendVariable(Variable v) { v.StructToData(); lock (clientWriter) { clientWriter.Write((byte)v.Name.Length); clientWriter.Write(System.Text.ASCIIEncoding.ASCII.GetBytes(v.Name)); clientWriter.Write(v.DataArray, 0, v.DataArray.Length); client.GetStream().Flush(); } }
public Widget(Variable variable) { this.variable = variable; InitializeComponent(); }
void widget_OnChangeVariable(Variable v) { varman.SendVariable(v); }