CERB40 2 crashes in ControllerAreaNetwork.SendMessage after upgrade from 4.3.7.9 (SDK 2015 prerelease) to version 4.3.7.10 (release)

After firmware upgrade my application crashes the Cerb40 after a few seconds. I isolated the problem in ControllerAreaNetwork.SendMessage. After a few sends the Cerb40 crashes (hardware is restarted by watchdog timer).

After some tests I noticed a different behaviour of error handling of SendMessage. When sending messages on an open canbus (error situation) SendMessage returns a few times ok but then throws an System.Exception with stacktrace ControllerAreaNetwork.NativeSendMessages. Is this expected behaviour?

Crashes of Cerb40 only occur when sending and receiving messages. Could the problem have something to do with modified Sendmessage improved error notification in latest release (error handling has been crashing Cerb40 in previous releases too).

I am desperate because I just cannot rebuild my application. Is there a way to rollback to 4.3.7.9 prerelease?

My test code

using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using GHI.Pins;
using System.Threading;
using GHI.IO;


namespace CanTest
{
    public class Program
    {
        static OutputPort LED;                  // led to check running
        static bool sendCan = false;
        static int cntr = 0;

        private static void TimerTick100mS()
        {
            LED.Write((cntr++ % 5) == 0);       // toggle led every 500 mSec
            sendCan = true;                     // send message every 100 mSec
        }


        public static void Main()
        {
            LED = new OutputPort(FEZCerb40II.Gpio.PB5, false);
            var timer = new Timer(callback => TimerTick100mS(), null, 500, 100);

            // Set some private timings and create canbus network
            int PhaseSegment1 = 12;
            int PhaseSegment2 = 8;
            int BaudRatePrescaler = 4*16;
            int propagation = 3;
            var timings = new ControllerAreaNetwork.Timings(propagation, PhaseSegment1, PhaseSegment2, BaudRatePrescaler, 1, true);
            var canChannel = new ControllerAreaNetwork(ControllerAreaNetwork.Channel.One, timings);

            Byte[] outputData = new Byte[8] {0, 0, 0, 0, 0, 0, 0, 0};

            // Handle error event
            canChannel.ErrorReceived += (s, e) =>
            {
                Debug.Print("Error on CAN: " + e.Error.ToString());
                s.Reset();
            };

            // Handle receiver event
            canChannel.MessageAvailable += (s, e) =>
            {
                var m = s.ReadMessage();
                var module = m. ArbitrationId >> 6;
                var messageType = m.ArbitrationId & 0x1f; 
                Debug.Print("Message " + messageType.ToString() + " from " + module.ToString() + " seq " + m.Data[0].ToString());
            };

            // enable controller
            canChannel.Enabled = true;

            while (true)
            {
                if (sendCan)
                {
                    sendCan = false;

                    // Create some message
                    uint moduleNr = 2;
                    uint messageID = (moduleNr << 6) + 1;
                    var message = new ControllerAreaNetwork.Message() { ArbitrationId = messageID, Length = 8, Data = new Byte[8], IsExtendedId = false, IsRemoteTransmissionRequest = false };
                    
                    try
                    {
                        bool ok = canChannel.SendMessage(message);      // Crashed Cerb40 after some successfull sends !!!
                        Debug.Print(ok ? "Send ok" : "Send NOK");
                    }
                    catch (Exception err)
                    {
                        // From time to time we get a System.Exception !!!
                        Debug.Print("Exception on sendmessage " + err.Message);
                    }
                }
                Thread.Sleep(10);
            }
        }
    }
}

you can uninstall the new GHI SDK and reinstall the older pre-release SDK.

I’d suggest that if this is a significant commercial issue for you, you might want to get on the phone to talk to GHI tomorrow morning their time

you can uninstall the new GHI SDK and reinstall the older pre-release SDK

I would like to do that but I cannot find the 2015 pre-releases any more. On the GHI download page only 2015 release is available. Also at the long time I am a little bit afraid for further support because Cerb40-2 hardware has become (regrettable) obsolete!

pre-release are not archived by GHI, you should consider going back to the last 2014 release in the archive. https://www.ghielectronics.com/support/netmf/sdks If you’re desperate, I have pre-release3 (I ordinarily wouldn’t keep non-release versions either, but I still happen to have that one)

In the future, you really need to archive them for yourself.

pre-release are not archived by GHI, you should consider going back to the last 2014 release in the archive. https://www.ghielectronics.com/support/netmf/sdks If you’re desperate, I have pre-release3 (I ordinarily wouldn’t keep non-release versions either, but I still happen to have that one)

No support for CAN on Cerb40 in 2014 releases. 2015 pre-release3 has bug in CAN error handling fixed in pre-release4 (and broken in release ???). I have no alternative then pre-release4 !

@ LGOR - We will take a look and let you know what we find.

@ LGOR -

https://www.ghielectronics.com/community/codeshare/entry/1044

Try to use that to see what happens!

Tried CANExt but device still crashes. CANExt is part of unmanaged driver. I wonder if it is a good idea to mix managed and native driver both manipulating the same registers.
Anyway I gave it try … without success.
What happened with the driver from latest pre-release. It worked fine for me!

One more question: why are GHI.Pins.FEZCerb40II marked as obsolete. Cerb40 is still supported in SDK 2015, isn’t it?

it’s marked obsolete as Cerb40 is now obsolete. You can still use it, it’s still supported, but the warning is just reminding you that

@ LGOR -
Can you please show us step by step how you made it crashes, please?

I don’t think it simple just send and receive then crash.

Can you please show us step by step how you made it crashes, please?

I just run the test code (with a single CAN partner on the bus) and after a few seconds the CERB40 crashes (CAN partner is independent PIC based module which ran fine with previous pre-release, anyway system crash should never occur).
See below debug output (output is generated from original test program, without CANExt).
You can also see some errors (1 and 3) comming from the CANbus. I don’t find a description for the error codes, but from the STM32 manual I guess it are warning and bus off errors.

Debug output

Loading start at 8079dd4, end 809fd60

Assembly: mscorlib (4.3.1.0) Assembly: Microsoft.SPOT.Native (4.3.1.0) Assembly: Microsoft.SPOT.Hardware (4.3.1.0)
Assembly: Microsoft.SPOT.Graphics (4.3.1.0) Assembly: Microsoft.SPOT.TinyCore (4.3.1.0)
Assembly: Microsoft.SPOT.IO (4.3.1.0) Assembly: System.IO (4.3.1.0) Assembly: Microsoft.SPOT.Hardware.Usb (4.3.1.0)
Assembly: Microsoft.SPOT.Hardware.SerialPort (4.3.1.0) Assembly: Microsoft.SPOT.Hardware.PWM (4.3.1.0)
Loading Deployment Assemblies.

Attaching deployed file.

Assembly: CanTest (1.0.0.0) Attaching deployed file.

Assembly: GHI.Pins (4.3.7.10) Attaching deployed file.

Assembly: GHI.Hardware (4.3.7.10) Resolving.

The debugging target runtime is loading the application assemblies and starting execution.
Ready.

‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\mscorlib.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Native.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Graphics.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.TinyCore.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.IO.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.IO.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.Usb.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.SerialPort.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.PWM.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics\NETMF v4.3 SDK\Libraries\le\GHI.Hardware.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘c:\users\luc\documents\visual studio 2013\Projects\CanTest\CanTest\bin\Debug\le\CanTest.exe’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics\NETMF v4.3 SDK\Libraries\le\GHI.Pins.dll’
The thread ‘’ (0x2) has exited with code 0 (0x0).
Send ok
Error on CAN: 1
Error on CAN: 1
Error on CAN: 1
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Send ok
Send ok
Send ok
Send ok
Error on CAN: 3
Error on CAN: 3
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Message 11 from 2
Send ok
Send ok
Send ok

Debugger freezes (until timeout) caused by Cerb40 crash !!!
Crash also occurs after a few seconds when running without debugger (running state of module checked by flashing led on board)

What happens if you disable the debug output? Still same? I’ve see issues where too many in different threads can kill a programme.

Check all of your threads to be sure that they do yield at some point or if doing heavy time processing. I ran into this with a Cerbuino where I didn’t yield in a thread and it would often crash.

What happens if you disable the debug output? Still same? I’ve see issues where too many in different threads can kill a programme.

Test program was written because of crashes in “real” application (without Debug output) after firmware update.

@ LGOR -

I just ran into your code, that looks fine to me!
Just, please?

  • What is baudrate are you using, please? (I know we can calculate the timing from your values, but for sure, we will calculate again if I know what exactly value you wanted)
  • How often does your device send those message to Cerberus, please?

I don’t remember baudrate exactly but it must be somewhere around 50k (it was initial one off the predefined values, but predefined values have been limited for wathever reason in one off the releases). Baudrate has been lowered (hystorical) to avoid overruns while using the managed driver.
Messages coming from device are event based, but in the test they will not be faster then 1message / sec.

If important I can provide you more exact baudrate but I don’t think it is very important (works already for months, years with these timings).

Of course it’s important, otherwise Dat wouldn’t have asked you for it. Speeding up resolution is important to you, right? Anything that shortcuts that should be a no-brainer that you’d want to get that data as quickly as possible to the people that can look deeper

@ LGOR -

Hi,
About your baudrate, I don’t think it about 50Kb, it should be (42000000/(16*4))/21=31250b, I think. So make sure your PIC is running at that speed.
There are some default value, can you please try that, please?

We are trying to reproduce the crashing bug.

About your baudrate, I don’t think it about 50Kb, it should be (42000000/(16*4))/21=31250b

50KB was only an estimate because I didn’t have sources with me at the moment I responded to your question. 31K250 is indeed the exact baudrate. I started using 1MBaud and just divided by 2 in steps to meet on one side sufficient performance and on the other side no problem with overruns (managed driver). So baudrate became 1MB / 32 = 31K250.

PIC is also running at 31K250 (verified with dig scope during development). Please note that the application is running for months in the field with multiple modules at that baudrate (nothing changed to baud rate on either side, the problem occured just after firmware upgrate in test environment).

For using standard baudrate I have to reprogram PIC which will take some time to setup the development environment (no problem, if required I can do that over the weekend but honostly I don’t think it matters).

I understood from your latest mail, you were not able to reproduce the error yet. This looks strange because my test program is rather basic CAN use and it crashes systematically within a few seconds!
To rule out some causes:

  • could you please verify loaded assemblies (possible mixup of versions during upgrade ?) Debug output is available in previous mail.
  • could you send me latest 2015 SDK pre-release (a roll back to that pre-release should solve the problem when caused by the upgrade)
  • from my side I will install the testprogram on different hardware to rule out hardware problems

Any other suggestions?

Hi, I can reproduce the problem. It is happened when Error happened -> reset -> message coming while sending.
This will be fixed for next release. For current release, using my code below as workaround.


using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using GHI.Processor;
using GHI.IO;
using GHI.Pins;
namespace CanCrash
{
    public class Program
    {
       
        static bool sendCan = false;
        static int cntr = 0;
        static InputPort button = new InputPort((Cpu.Pin)(2 * 16 + 2), false, Port.ResistorMode.PullUp); // Socket 4 - PC2 - pin 3
        static OutputPort led = new OutputPort((Cpu.Pin)(2 * 16 + 4), true); // LED
        //GHI added
        const int RESET_WAIT_FOR_READY = 2000;
        private static void TimerTick100mS()
        {
            led.Write((cntr++ % 5) == 0);       // toggle led every 500 mSec
            sendCan = true;                     // send message every 100 mSec
        }


        public static void Main()
        {
            while (button.Read())
            {
                led.Write(!led.Read());
                Thread.Sleep(50);
                Debug.Print("Wait for the button ");
            }
            
            
            var timer = new Timer(callback => TimerTick100mS(), null, 500, 100);

            // Set some private timings and create canbus network
            int PhaseSegment1 = 12;
            int PhaseSegment2 = 8;
            int BaudRatePrescaler = 4 * 16;
            int propagation = 3;
            var timings = new ControllerAreaNetwork.Timings(propagation, PhaseSegment1, PhaseSegment2, BaudRatePrescaler, 1, true);
            var canChannel = new ControllerAreaNetwork(ControllerAreaNetwork.Channel.One, timings);
           
            Byte[] outputData = new Byte[8] { 0, 0, 0, 0, 0, 0, 0, 0 };
            //GHI added
            bool resetFlag = false;
            // Handle error event
            canChannel.ErrorReceived += (s, e) =>
            {
                //GHI added
                resetFlag = true;
                //GHI added
                canChannel.DiscardIncomingMessages();
                s.Reset();
                Debug.Print("Error on CAN: " + e.Error.ToString());
            };

            // Handle receiver event
            canChannel.MessageAvailable += (s, e) =>
            {
                var m = s.ReadMessage();
                var module = m.ArbitrationId >> 6;
                var messageType = m.ArbitrationId & 0x1f;
                Debug.Print("Message " + messageType.ToString() + " from " + module.ToString() + " seq " + m.Data[0].ToString());
            };

            // enable controller
            canChannel.Enabled = true;
            int msgcnt = 0;
            while (true)
            {
                if (sendCan)
                {
                    sendCan = false;

                    // Create some message
                    uint moduleNr = 2;
                    uint messageID = (moduleNr << 6) + 1;
                    var message = new ControllerAreaNetwork.Message() { ArbitrationId = messageID, Length = 8, Data = new Byte[8], IsExtendedId = false, IsRemoteTransmissionRequest = false };

                    try
                    {

                        //GHI added
                        if (canChannel.CanSend)
                        {
                            //GHI added
                            if (resetFlag)
                            {
                                Thread.Sleep(RESET_WAIT_FOR_READY);
                                resetFlag = false;
                            }
                            bool ok = canChannel.SendMessage(message);      // Crashed Cerb40 after some successfull sends !!!                           
                            Debug.Print(ok ? ("Send ok" + msgcnt++) : "Send NOK");
                        }
                        
                    }
                    catch (Exception err)
                    {
                        // From time to time we get a System.Exception !!!
                        Debug.Print("Exception on sendmessage " + err.Message);
                    }
                    //Debug.Print("still alive");
                }
                Thread.Sleep(10);
               
            }
        }
    }
}


1 Like

Hi, I can reproduce the problem. It is happened when Error happened → reset → message coming while sending

Glad you could reproduce the problem. Your workaround does not completely solves crashes, however the frequency of crashes is much lower (about 1 minute). That gave me the opportunity to do some more diagnostics.

The crashes certainly have something to do with sending while doing error handling. But why are we getting bus errors so frequently on a bus that is perfectly ok? There should be none right? With this in mind I did following tests:

Test 1:
I modified the PIC code so that no messages were sent from PIC and ran CanTest sending a message every 5 seconds to Cerb40. No problems and no bus errors! See output below

The thread ‘’ (0x2) has exited with code 0 (0x0).
Step into: Stepping over non-user code ‘CanTest.Program.’
06/01/2011 00:00:32 Send ok 0
06/01/2011 00:00:37 Send ok 1
06/01/2011 00:00:42 Send ok 2
06/01/2011 00:00:47 Send ok 3
06/01/2011 00:00:52 Send ok 4
06/01/2011 00:00:57 Send ok 5
06/01/2011 00:01:02 Send ok 6
06/01/2011 00:01:07 Send ok 7
06/01/2011 00:01:12 Send ok 8
06/01/2011 00:01:17 Send ok 9
06/01/2011 00:01:22 Send ok 10
06/01/2011 00:01:27 Send ok 11
06/01/2011 00:01:32 Send ok 12
06/01/2011 00:01:37 Send ok 13
06/01/2011 00:01:42 Send ok 14
06/01/2011 00:01:47 Send ok 15
06/01/2011 00:01:52 Send ok 16
The program ‘[22] Micro Framework application: Managed’ has exited with code 0 (0x0).

Test 2
I removed sending from CanTest and modified PIC code to send only a single message to Cerb40.
Result (see output below): We receive the PIC message over and over at high speed with every 15 receptions a CANbus bus-off error!
Where is the repeated message comming from: it is not send from the application but from the PIC CANcontroller which retries the message and then sends bus-off after unsuccesfull retries (canbus retries verified on scope)!
Is it possible that incomming messages are not properly validated by Cerb40? My guess is that this is the major problem. Secondary problem is crash during inproper error handling which we would probably not have seen without first problem. Does this make sense?

I would like to emphasize that PIC is not a new development and runs fine for years with Cerb40 (first with managed driver and later with 2015 sdk prereleases)
I hope this helps …

Step into: Stepping over non-user code ‘CanTest.Program.’
06/01/2011 00:00:41 Error on CAN: 3
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Error on CAN: 3
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Error on CAN: 3
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:41 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Error on CAN: 3
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Error on CAN: 3
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255
06/01/2011 00:00:42 Message 11 from 3 0 0 0 0 0 0 255 255