Beispiel #1
0
        //params order
        // date, time stamp, itf, id, size, data
        //(2019-06-04 13:09:49.115038) can0 601 [8] 00 00 0F 19 00 1D 02 85
        private static CanMessage CreateMessage(params string[] cols)
        {
            CanMessage msg;

            int id   = Convert.ToInt32(cols[3], 16);
            int size = Convert.ToInt32(cols[4].Trim(new char[] { '[', ']' }), 16);

            byte[] payload = new byte[size];

            for (int i = 0; i < size; i++)
            {
                int x = Convert.ToInt32(cols[i + 5], 16);
                payload[i] = (byte)x;
            }

            DateTime ts = DateTime.Parse(cols[1].Trim(')'));

            if (lastTime == DateTime.MinValue)
            {
                lastTime = ts;
            }

            int time = ts.Subtract(lastTime).Milliseconds;

            lastTime = ts;

            switch (id)
            {
            case CanMessage.MESSAGE_ID01:
                msg = new CanMessage01();
                break;

            case CanMessage.MESSAGE_ID02:
                msg = new CanMessage02();
                break;

            default:
                msg = new CanMessage();
                break;
            }
            msg.timeStamp = time;
            msg.SetPayload(payload);
            return(msg);
        }
Beispiel #2
0
        static void ManualMode(MessageSender <CanMessage> sender)
        {
            CanMessage01 msg  = new CanMessage01();
            CanMessage02 msg2 = new CanMessage02();

            Console.WriteLine("\n User Up/Down Arrows to change RPM, 'r' to reset 'esc' to exit\n");
            ConsoleKeyInfo cki;

            int rpm = 0;

            msg.MotorTemp = 0;

            do
            {
                Console.Write("Rpm: {0}              \r", rpm);
                cki = Console.ReadKey();
                Console.Write("\r");


                switch (cki.Key.ToString())
                {
                case "UpArrow":
                    if (rpm < 10000)
                    {
                        rpm += RPM_INCREMENT;
                    }
                    break;

                case "DownArrow":
                    rpm -= RPM_INCREMENT;
                    if (rpm < 0)
                    {
                        rpm = 0;
                    }

                    break;

                case "R":
                    rpm = 0;
                    break;

                case "OemComma":
                    if (msg.MotorTemp > 0)
                    {
                        msg.MotorTemp -= 25;
                    }
                    break;

                case "OemPeriod":
                    if (msg.MotorTemp < 200)
                    {
                        msg.MotorTemp += 25;
                    }
                    break;

                default: break;
                }

                //Console.WriteLine(cki.Key.ToString());

                msg.Rpm       = rpm;
                msg.timeStamp = 10;
                msg.repeat    = true;
            } while (cki.Key != ConsoleKey.Escape && sender.Send(msg));
        }