Example #1
0
        public void Send(char[] arr)
        {
            _wrapped.Send(arr);

            foreach (char c in arr)
            {
                LogWrite(c);
            }
        }
Example #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);
        }