public void UpdateControl(ZomBDataObject valuea) { if (this.InvokeRequired) { this.Invoke(new Utils.ZomBDataFunction(UpdateControl), valuea); } else { string value = valuea.ToString(); if (value != "") { if (value.Contains("=")) vrs[value.Substring(0, value.IndexOf("="))] = value.Substring(value.IndexOf("=") + 1); } label1.Text = label2.Text = ""; foreach (KeyValuePair<string, ZomBDataObject> kv in vrs) { label1.Text += kv.Key + "\r\n"; label2.Text += kv.Value + "\r\n"; } label1.Text += " \r\n"; label2.Text += " \r\n"; this.Update(); } }
void IZomBControl.UpdateControl(ZomBDataObject value) { //this needs to be tested, but should work string Output = value; string[] vars = Output.Split('|'); foreach (string item in vars) { if (item.StartsWith("dbg-")) UpdateControl(item.Substring(4)); } }
public override void UpdateControl(ZomBDataObject value) { if (this.InvokeRequired) { this.Invoke(new Utils.ZomBDataFunction(UpdateControl), value); } else { this.Value = float.Parse(value); } }
public override void UpdateControl(ZomBDataObject value) { if (this.InvokeRequired) { this.Invoke(new Utils.ZomBDataFunction(UpdateControl), value); } else { if (Append) Value += value; else Value = value; } }
public override void UpdateControl(ZomBDataObject valuea) { string value = valuea; if (pad != null) { float l, r; if (value.Contains(";")) { try { l = float.Parse(value.Substring(0, value.IndexOf(';'))); r = float.Parse(value.Substring(1 + value.IndexOf(';'))); } catch { l = r = 0; } } else { try { l = r = float.Parse(value); } catch { l = r = 0; } } pad.Vibrate(l, r); } }
/// <summary> /// Updates the control /// </summary> public virtual void UpdateControl(ZomBDataObject value) { StringValue = value.ToString(); int o; if (value.Value is int || value.Value is double || value.Value is float) o = (int)((double)value.Value); else int.TryParse(value.ToString(), out o); IntValue = o; double d; if (value.Value is int || value.Value is double || value.Value is float) d = (double)value.Value; else double.TryParse(value.ToString(), out d); DoubleValue = d; BoolValue = (IntValue != 0 || value.ToString().ToLower() == "true" || value.ToString().ToLower() == "yes"); if (DoubleValue == 0 && (value.ToString().ToLower() == "true" || value.ToString().ToLower() == "yes")) DoubleValue = IntValue = 1; if (value.Value is bool) BoolValue = (bool)value.Value; }
/// <summary> /// The background worker. Will exit after 10 consectutive errors /// </summary> private void TickleClientWorker() { //TCP==tickle //Person[] ticklishPeople = People.GetTicklish(); //foreach (Person poorSoul in ticklishPeople) //{ // poorSoul.Apply(Objects.Get("Feather"), Person.Location.Foot); //} //number of errors int nume = 0; //config bool implicitSend = false; bool longNames = false; NetworkStream zb = null; while (isrunning) { try { cRIOConnection.Connect(IPAddress, Port); zb = cRIOConnection.GetStream(); break; } catch (SocketException) { //Nohbdy is around } catch (ThreadAbortException) { isrunning = false; return; } catch (Exception ex) { nume++; DoError(ex); if (nume > 10) { isrunning = false; DoError(new Exception("10 consecutive errors were encountered, stopping DashboardDataHub")); isrunning = false; return; } } } try { //config int last; do { last = zb.ReadByte(); switch (last) { case 0x45: implicitSend = false; break; case 0x49: implicitSend = true; break; case 0x4C: longNames = true; break; case -1: return; default: break; } } while (last != 0x00); //end config int namel, valuel; while (isrunning) { try { last = zb.ReadByte(); //Fire! on 0 if (last == 0x00 || implicitSend) { if (kys.Count > 0) { //fire events if (DataRecieved != null) DataRecieved(this, new EventArgs()); if (NewDataRecieved != null) NewDataRecieved(this, new NewDataRecievedEventArgs(kys)); kys = new ZomBDataLookup(); } if (last == 0x00) continue; } if (last == -1) return;//stream closed //last byte was name lenght namel = last; //Read the value if (longNames) { valuel = (zb.ReadByte() << 8) + zb.ReadByte(); } else { valuel = zb.ReadByte(); } if (valuel < 0) return;//stream closed //Make the buffers byte[] buf = new byte[namel], vbuf = new byte[valuel]; //Read the name while (cRIOConnection.Available < namel) Thread.Sleep(1); zb.Read(buf, 0, namel); //and the value while (cRIOConnection.Available < valuel) Thread.Sleep(1); zb.Read(vbuf, 0, valuel); string nom = Encoding.UTF8.GetString(buf), val = Encoding.UTF8.GetString(vbuf); //if peeking, send if (peeking) { dp.Invoke(cb, nom); } else { //otherwise //Add the value if (kys.ContainsKey(nom)) kys[nom] = new ZomBDataObject(val, ZomBDataTypeHint.Unknown); else kys.Add(nom, new ZomBDataObject(val, ZomBDataTypeHint.Unknown)); } //Decrease error if (nume > 0) nume--; } catch (ThreadAbortException) { isrunning = false; return; } catch (Exception ex) { nume++; DoError(ex); if (nume > 10) { isrunning = false; DoError(new Exception("10 consecutive errors were encountered, stopping DashboardDataHub")); isrunning = false; return; } } } } catch { }//Don't let em leak! finally { if (zb != null) zb.Dispose(); try { cRIOConnection.Close(); } catch { } cRIOConnection = null; } }
public override void UpdateControl(ZomBDataObject value) { if (this.InvokeRequired) { this.Invoke(new Utils.ZomBDataFunction(UpdateControl), value); } else { if (value == "0" || value == "1") Value = int.Parse(value) == 0 ? false : true; else Value = bool.Parse(value); } }
public override void UpdateControl(ZomBDataObject value) { try { if (value.Value is int || value.Value is double || value.Value is float) newDdb((double)value.Value); else newDdb(double.Parse(value.ToString())); } catch { } }
/// <summary> /// Convert the name=value|n=v form to a Dictionary of name and values /// </summary> /// <param name="Output"></param> /// <returns></returns> private ZomBDataLookup SplitParams(string Output) { //Split the main string string[] s = Output.Split(':'); ZomBDataLookup k = new ZomBDataLookup(1); string ky, val; ky = s[0]; val = s[1].Split('\r','\n','\b','#')[0]; k[ky] = new ZomBDataObject(val, ZomBDataTypeHint.Unknown); return k; }
public override void UpdateControl(ZomBDataObject value) { base.UpdateControl(value); try { if (0 != (value.TypeHint & (ZomBDataTypeHint.Number | ZomBDataTypeHint.Boolean)) || DoubleValue.ToString() == StringValue) { if (DoubleValue == 0) Value = SpikePositions.Off; else if (DoubleValue > 0) Value = SpikePositions.Forward; else Value = SpikePositions.Reverse; } else Value = (SpikePositions)Enum.Parse(typeof(SpikePositions), StringValue); } catch { } }
/// <summary> /// The background worker. Will exit after 10 consectutive errors /// </summary> private void DoWork() { int i = 0; Random rand = new Random(); kys["group.~TYPE~"] = "PIDController"; while (isrunning) { kys["float"] = new ZomBDataObject(Math.Sin((i++) / 100.0), ZomBDataTypeHint.Double); kys["int"] = new ZomBDataObject(Math.Sin((i++) / 100.0) + Math.Sin((i) / 5.0)*.1, ZomBDataTypeHint.Integer); kys["bool"] = new ZomBDataObject(Math.Sin((i++) / 100.0) > 0, ZomBDataTypeHint.Boolean); kys["str"] = new ZomBDataObject(Math.Round(Math.Sin((i++) / 100.0), 3).ToString(), ZomBDataTypeHint.String); kys["floatrand"] = new ZomBDataObject(rand.NextDouble(), ZomBDataTypeHint.Double); kys["group.Data.p"] = new ZomBDataObject((Math.Sin((i) / 100.0)+1)*2.0, ZomBDataTypeHint.Double); kys["group.Data.i"] = new ZomBDataObject((Math.Sin((i+50) / 100.0)+1)*2.0, ZomBDataTypeHint.Double); kys["group.Data.d"] = new ZomBDataObject((Math.Sin((i-50) / 100.0)+1)*2.0, ZomBDataTypeHint.Double); Thread.Sleep(10); if (peeking) { foreach (var item in kys) { dp.Invoke(cb, item.Key); } } //Fire events if (DataRecieved != null) DataRecieved(this, new EventArgs()); if (NewDataRecieved != null) NewDataRecieved(this, new NewDataRecievedEventArgs(kys)); } }
public void UpdateControl(ZomBDataObject value) { }
public void UpdateControl(ZomBDataObject value) { Target = RectParse(value); }
public override void UpdateControl(ZomBDataObject value) { StringValue = value; }
/// <summary> /// Convert the name=value|n=v form to a Dictionary of name and values /// </summary> /// <param name="Output"></param> /// <returns></returns> private ZomBDataLookup SplitParams(string Output) { //Split the main string string[] s = Output.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); ZomBDataLookup k = new ZomBDataLookup(s.Length); foreach (string item in s) { //split and add each item to the Dictionary string ky, val; ky = item.Split('=')[0]; val = item.Split('=')[1]; k[ky] = new ZomBDataObject(val, ZomBDataTypeHint.Unknown);//Latter will overwrite } return k; }
void IZomBControl.UpdateControl(ZomBDataObject value) { }