예제 #1
0
        /// <summary>
        /// Input thread
        /// </summary>
        /// <param name="o"></param>
        private void ThD_Receive(object o)
        {
            string msg;

            while (true)
            {
                msg = Q_Receive.Read();
                char cmd = msg[0];

                RaiseMessage("NEW MSG \t " + msg);

                if (msg.EndsWith("\r") && (cmd == 't' || cmd == 'T' || cmd == 'r' || cmd == 'R'))
                {
                    RaiseCANMessage(new CANMessage(msg));
                }
                else
                {
                    if (msg == "z\r" || msg == "Z\r" || msg == "t\r" || msg == "T\r")
                    {
                        autoEvent.Set();
                    }
                    else
                    {
                        RaiseMessage("Unknown msg: \t" + msg);
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Send Thread
        /// </summary>
        /// <param name="o"></param>
        private void ThD_Send(object o)
        {
            CANMessage msg;
            bool       result;

            while (true)
            {
                msg = Q_Send.Read();

                lock (SyncPort)
                    serialPort.Write(msg.ToString() + "\r");

                result = autoEvent.WaitOne(100);
                if (result)
                {
                    RaiseMessage("Written \t \t msg = " + msg.ToString());
                }
                else
                {
                    RaiseMessage("Write Error \t msg = " + msg.ToString());
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Input thread
        /// </summary>
        /// <param name="o"></param>
        private void ThD_Receive(object o)
        {
            string rawmsg;

            while (true)
            {
                rawmsg = Q_Receive.Read();

                SplitCANFrames(rawmsg, ref msgBuff);

                foreach (string msg in msgBuff)
                {
                    char cmd = msg[0];

                    RaiseMessage("NEW MSG \t " + msg);

                    if (msg.EndsWith("\r") && (cmd == 't' || cmd == 'T' || cmd == 'r' || cmd == 'R'))
                    {
                        RaiseCANMessage(new CANMessage(msg));
                    }
                    else
                    {
                        if (msg == "z\r" || msg == "Z\r" || msg == "t\r" || msg == "T\r")
                        {
                            autoEvent.Set();
                        }
                        else
                        {
                            RaiseMessage("Unknown msg: \t" + msg);
                        }
                    }
                }

                msgBuff.Clear();
            }
        }