Ejemplo n.º 1
0
 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();
     }
 }
Ejemplo n.º 2
0
 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));
     }
 }
Ejemplo n.º 3
0
 public override void UpdateControl(ZomBDataObject value)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Utils.ZomBDataFunction(UpdateControl), value);
     }
     else
     {
         this.Value = float.Parse(value);
     }
 }
Ejemplo n.º 4
0
 public override void UpdateControl(ZomBDataObject value)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new Utils.ZomBDataFunction(UpdateControl), value);
     }
     else
     {
         if (Append)
             Value += value;
         else
             Value = value;
     }
 }
Ejemplo n.º 5
0
 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);
     }
 }
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 11
0
 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));
            }
        }
Ejemplo n.º 13
0
 public void UpdateControl(ZomBDataObject value)
 {
 }
Ejemplo n.º 14
0
 public void UpdateControl(ZomBDataObject value)
 {
     Target = RectParse(value);
 }
Ejemplo n.º 15
0
 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)
 {
 }