示例#1
0
        private static void CanController_DataReceived(object sender, CanMessageReceivedEventArgs e)
        {
            CanController canCtl = (CanController)sender;

            while (true)
            {
                // try get the next message
                var msg = canCtl.GetMessage();

                if (msg == null)
                {
                    Debug.WriteLine("*** No more message available!!!");
                    break;
                }

                // new message available, output message
                if (msg.Message != null)
                {
                    Debug.Write($"Message on {canCtl.ControllerId}: ");
                    for (int i = 0; i < msg.Message.Length; i++)
                    {
                        Debug.Write(msg.Message[i].ToString("X2"));
                    }

                    new Thread(BlinkLED).Start();
                }
                Debug.WriteLine("");
            }
        }
 private void StLinkBridge_CanMessageReceived(object sender, CanMessageReceivedEventArgs e)
 {
     foreach (var message in e.ReceivedMessages)
     {
         AddMessageToActivityIndicator(message);
     }
 }
        private void CanPollingTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            List <CanMessage> receivedMessages = new List <CanMessage>();

            // Check for overrun
            bool OverrunDetected = false;

            base.CanReadLL(out receivedMessages, OverrunDetected);

            if ((receivedMessages.Count > TargetMessageBufferUsage) || OverrunDetected)
            {
                CanPollingTimer.Interval /= 1.05;
            }

            if (receivedMessages.Count > 0)
            {
                CanMessageReceivedEventArgs canMessageReceivedEventArgs = new CanMessageReceivedEventArgs()
                {
                    BufferOverrunDetected = OverrunDetected,
                    ReceivedMessages      = receivedMessages,
                };
                //CanMessageReceived?.Invoke(this, canMessageReceivedEventArgs);
                //CanMessageReceived?.BeginInvoke(this, canMessageReceivedEventArgs, CanMessageReceivedEndAsyncEvent, null);
                foreach (EventHandler <CanMessageReceivedEventArgs> receiver in CanMessageReceived.GetInvocationList())
                {
                    receiver.BeginInvoke(this, canMessageReceivedEventArgs, CanMessageReceivedEndAsyncEvent, null);
                }
            }
        }
示例#4
0
        private void Wrapper_CanMessageReceived(object sender, CanMessageReceivedEventArgs e)
        {
            //var canMessage = GenerateSimpleCanMessageType();
            //var listOfMessages = new SortedList<uint, CanMessageType>();
            //listOfMessages.Add((uint)canMessage.ID, canMessage);

            //var dataPoints = CanDB.CanDB.ParseReceivedCanMessagesRx(e.ReceivedMessages, listOfMessages);

            //Assert.AreEqual(3, dataPoints.Count);
            //double value1 = -1.3;
            //double value2 = 1.4;
            //double value3 = 5;
            //Assert.AreEqual(value1, dataPoints[0].data);
            //Assert.AreEqual(value2, dataPoints[1].data);
            //Assert.AreEqual(value3, dataPoints[2].data);
        }