コード例 #1
0
 public void UpdateTestValues(DynoTestValues values)
 {
     if (InvokeRequired)
     {
         var d = new UpdateTestValuesDelegate(UpdateTestValues);
         Invoke(d, new object[] { values });
     }
     else
     {
         _currentValues = values;
         if (_currentValues != null)
         {
             circularProgressBarSpeed.SubscriptText  = ((int)_currentValues.Speed).ToString();
             circularProgressBarTorque.SubscriptText = ((int)_currentValues.Torque).ToString();
             circularProgressBarPower.SubscriptText  = ((int)_currentValues.Power).ToString();
             circularProgressBarSpeed.Value          = (int)Math.Min(Math.Max(circularProgressBarSpeed.Minimum, _currentValues.Speed), circularProgressBarSpeed.Maximum);
             circularProgressBarTorque.Value         = (int)Math.Min(Math.Max(circularProgressBarTorque.Minimum, _currentValues.Torque), circularProgressBarTorque.Maximum);
             circularProgressBarPower.Value          = (int)Math.Min(Math.Max(circularProgressBarPower.Minimum, _currentValues.Power), circularProgressBarPower.Maximum);
             this.Refresh();
         }
         else
         {
             circularProgressBarSpeed.SubscriptText  = "N/A";
             circularProgressBarTorque.SubscriptText = "N/A";
             circularProgressBarPower.SubscriptText  = "N/A";
             circularProgressBarSpeed.Value          = circularProgressBarSpeed.Minimum;
             circularProgressBarTorque.Value         = circularProgressBarTorque.Minimum;
             circularProgressBarPower.Value          = circularProgressBarPower.Minimum;
         }
     }
 }
コード例 #2
0
        public DynoTestValues GetDynoTestNumbers()
        {
            char[] s = new char[4];
            s[0] = (char)0xB4;
            s[1] = (char)0x11;
            s[2] = 'C';
            s[3] = (char)0x05;

            _uartService.Send(s);

            string power  = "";
            string torque = "";
            string speed  = "";

            for (int i = 0; i < 51; i++)
            {
                int t = Read();
                if (t == -1)
                {
                    goto badTestValues;
                }
                char c = (char)t;

                if (i == 0 && c != 0x02)
                {
                    goto badTestValues;
                }
                if (i == 1 && c != '2')
                {
                    goto badTestValues;
                }
                if (i == 2 && c != '1')
                {
                    goto badTestValues;
                }
                if (i == 3 && c != '1')
                {
                    goto badTestValues;
                }
                if (i == 4 && c != '=')
                {
                    goto badTestValues;
                }
                if (i > 4 && i < 11)
                {
                    power += c;
                }
                if (i == 11 && c != ' ')
                {
                    goto badTestValues;
                }
                if (i == 12 && c != 'H')
                {
                    goto badTestValues;
                }
                if (i == 13 && c != 'p')
                {
                    goto badTestValues;
                }
                if (i == 14 && c != '\r')
                {
                    goto badTestValues;
                }
                if (i == 15 && c != '2')
                {
                    goto badTestValues;
                }
                if (i == 16 && c != '3')
                {
                    goto badTestValues;
                }
                if (i == 17 && c != '1')
                {
                    goto badTestValues;
                }
                if (i == 18 && c != '=')
                {
                    goto badTestValues;
                }
                if (i > 18 && i < 26)
                {
                    torque += c;
                }
                if (i == 26 && c != ' ')
                {
                    goto badTestValues;
                }
                if (i == 27 && c != 'l')
                {
                    goto badTestValues;
                }
                if (i == 28 && c != 'b')
                {
                    goto badTestValues;
                }
                if (i == 29 && c != 'f')
                {
                    goto badTestValues;
                }
                if (i == 30 && c != '\r')
                {
                    goto badTestValues;
                }
                if (i == 31 && c != '2')
                {
                    goto badTestValues;
                }
                if (i == 32 && c != '0')
                {
                    goto badTestValues;
                }
                if (i == 33 && c != '9')
                {
                    goto badTestValues;
                }
                if (i == 34 && c != '=')
                {
                    goto badTestValues;
                }
                if (i > 34 && i < 42)
                {
                    speed += c;
                }
                if (i == 42 && c != ' ')
                {
                    goto badTestValues;
                }
                if (i == 43 && c != 'm')
                {
                    goto badTestValues;
                }
                if (i == 44 && c != 'p')
                {
                    goto badTestValues;
                }
                if (i == 45 && c != 'h')
                {
                    goto badTestValues;
                }
                if (i == 46 && c != '\r')
                {
                    goto badTestValues;
                }
                if (i == 47 && c != 0x17)
                {
                    goto badTestValues;
                }
                if (i == 48 || i == 49)
                {
                    //todo do check checksum
                }
                if (i == 50 && c != '$')
                {
                    goto badTestValues;
                }
            }

            DynoTestValues testValues = new DynoTestValues();

            testValues.Power  = float.Parse(power);
            testValues.Torque = float.Parse(torque);
            testValues.Speed  = float.Parse(speed);

            return(testValues);

badTestValues:
            while (Read() != -1)
            {
                ;
            }
            return(null);
        }