RE: Logging CAN messages

"John Dammeyer" <[email protected]> Sat, 31 Oct 2020 13:45:11 -0700
Newsgroups gmane.comp.hardware.bus.can
Message-ID <[email protected]>
This is a multipart message in MIME format.
------=_NextPart_000_0E2D_01D6AF8C.0E405E30
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hi Kees,
That product is close to what they need.  Nicely done!=20
=20
Although when I had the scope on their system last Thursday it looks like t=
he messages were running at least every 10mS.  I think they said 100Hz, 50H=
z and 20Hz intervals.  I'd say I'd have to have the ability to store at lea=
st 5,000 messages at 500kbps.
=20
A few years ago I did do a similar logging project.  They wanted the data s=
tored on a Raspberry PiZeroW and then upload to the cloud via WiFi when ava=
ilable. =20
=20
We found that no matter what we did the Pi still took about 12 seconds to b=
oot.  Ultimately what I did was design and build a PIC32 front end to times=
tamp and queue all messages.  Once the Pi was awake the PIC32 became an SPI=
 slave to the Pi which then pulled up the stored messages. =20
=20
Unfortunately I don't have access to the hardware or legally the software. =
 I was hoping that there might be something that uses a KVaser or Port or s=
ome other USB dongle and a PC application that would do this.
=20
I'll talk to the client and mention your product.  Not that interested in m=
aking changes in Basic though.
=20
Thanks again
John Dammeyer
=20
=20
=20
=20
=20
From: [email protected] [mailto:canlist-owner@vector-info=
rmatik.com] On Behalf Of Kees Zagers
Sent: October-31-20 11:53 AM
To: [email protected]
Subject: Re: [CANLIST] Logging CAN messages
=20
Hi John,
In principle I created this functionality in my SI2CBB (www.unicanner.com).=
 The embedded hardware has all the CAN functionality in this case. The CANL=
OG command I created has the event logging possibility. Button (connected t=
o one of the Arduino pins), specific message and error event can be defined=
 by the user. The only restriction is the fact that I used the standard cir=
cular FIFO buffer of the built-in CAN controller of the Microchip PIC32. Th=
is buffer only contains 32 messages. So the pre-trigger information is 32 m=
essages, which probably will be a fraction of the messages during the last =
five seconds. The post-trigger information can be as long as you want. The =
PIC32 has the possibility to create 32 of these FIFO buffers in RAM, where =
every FIFO can be linked to one or more filters and masks. If all FIFO's ar=
e linked to the same filter and mask, they can be cascaded, which gives us =
a buffer of 1024 messages. The problem however in this case it is not circu=
lar; if the last FIFO is full it stops. I have to check, but it should be p=
ossible to detect the buffer full interrupt of the last FIFO and return to =
the first FIFO again. In that case we can have at least 1 second of the pre=
-trigger messages in a normal CANbus system.
Anyway it is difficult to say how large the circular buffer should be to co=
ntain the information of 5 or 10 seconds, because it depends of course on t=
he bus speed and bus load.
The result of the logging can be directly uploaded to a PC through the USB =
interface or locally stored on an SD flash card.
So far my input.
Cheers
Kees
Op 30-10-2020 om 06:50 schreef John Dammeyer:
I haven't kept up to date with newer developments over the last few years. =
 My Lawicel CANUSB, RM CANUSB and monitor program plus whatever I've writte=
n has been adequate for the tasks I do.
=20
I've been asked to determine if a tool exists that can log CAN messages in =
a circular buffer.  Say 10 seconds worth and when a trigger like either a m=
essage or say an error flag occurs the logging to the circular buffer goes =
for 5 seconds and then is stopped and saved.
=20
Essentially the system shows random faults and they'd like to know what hap=
pened for 5 seconds on either side of the event. =20
=20
The even can be: a contact closure like a button pressed by an operator;  a=
 specific message,  Bus error as signaled by an error flag.
=20
Does a tool like that exist?
=20
Thanks
John Dammeyer
=20
"ELS! Nothing else works as well for your Lathe"
Automation Artisans Inc.
www dot autoartisans dot com=20
=20
--=20
Kees Zagers
SI-KWADRAAT B.V.
Van Kemenadelaan 13
5674 PP  NUENEN
=20
Tel. +31(0)40-2839582
[email protected]

------=_NextPart_000_0E2D_01D6AF8C.0E405E30
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dutf-8"><meta name=3DProgId content=3DWord.Document=
><meta name=3DGenerator content=3D"Microsoft Word 14"><meta name=3DOriginat=
or content=3D"Microsoft Word 14"><link rel=3DFile-List href=3D"cid:filelist=
[email protected]"><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:Zoom>150</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-CA</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"true" DefSemi=
Hidden=3D"true" DefQFormat=3D"false" DefPriority=3D"99" LatentStyleCount=3D=
"267">
<w:LsdException Locked=3D"false" Priority=3D"0" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" Priority=3D"35" QFormat=3D"true" Name=3D"c=
aption"/>
<w:LsdException Locked=3D"false" Priority=3D"10" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Title"/>
<w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragraph F=
ont"/>
<w:LsdException Locked=3D"false" Priority=3D"11" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" Priority=3D"22" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"59" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Placehold=
er Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 1"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Revision"=
/>
<w:LsdException Locked=3D"false" Priority=3D"34" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" QFormat=3D"true" Name=3D"T=
OC Heading"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
=09{font-family:"Cambria Math";
=09panose-1:2 4 5 3 5 4 6 3 2 4;
=09mso-font-charset:0;
=09mso-generic-font-family:roman;
=09mso-font-pitch:variable;
=09mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;
=09mso-font-charset:0;
=09mso-generic-font-family:swiss;
=09mso-font-pitch:variable;
=09mso-font-signature:-536870145 1073786111 1 0 415 0;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;
=09mso-font-charset:0;
=09mso-generic-font-family:swiss;
=09mso-font-pitch:variable;
=09mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
@font-face
=09{font-family:Consolas;
=09panose-1:2 11 6 9 2 2 4 3 2 4;
=09mso-font-charset:0;
=09mso-generic-font-family:modern;
=09mso-font-pitch:fixed;
=09mso-font-signature:-520092929 1073806591 9 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{mso-style-unhide:no;
=09mso-style-qformat:yes;
=09mso-style-parent:"";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09mso-pagination:widow-orphan;
=09font-size:12.0pt;
=09mso-bidi-font-size:10.0pt;
=09font-family:"Times New Roman","serif";
=09mso-fareast-font-family:Calibri;
=09mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
=09{mso-style-noshow:yes;
=09mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;
=09text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-noshow:yes;
=09mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;
=09text-underline:single;}
p
=09{mso-style-noshow:yes;
=09mso-style-priority:99;
=09mso-margin-top-alt:auto;
=09margin-right:0cm;
=09mso-margin-bottom-alt:auto;
=09margin-left:0cm;
=09mso-pagination:widow-orphan;
=09font-size:12.0pt;
=09mso-bidi-font-size:10.0pt;
=09font-family:"Times New Roman","serif";
=09mso-fareast-font-family:Calibri;
=09mso-fareast-language:EN-US;}
pre
=09{mso-style-noshow:yes;
=09mso-style-priority:99;
=09mso-style-link:"HTML Preformatted Char";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09mso-pagination:widow-orphan;
=09tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt =
412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
=09font-size:10.0pt;
=09font-family:"Courier New";
=09mso-fareast-font-family:Calibri;
=09mso-fareast-language:EN-CA;}
p.Code, li.Code, div.Code
=09{mso-style-name:Code;
=09mso-style-update:auto;
=09mso-style-unhide:no;
=09mso-style-qformat:yes;
=09margin:0cm;
=09margin-bottom:.0001pt;
=09mso-pagination:widow-orphan;
=09font-size:8.0pt;
=09font-family:"Courier New";
=09mso-fareast-font-family:Calibri;
=09mso-fareast-language:EN-CA;}
span.EmailStyle19
=09{mso-style-type:personal;
=09mso-style-noshow:yes;
=09mso-style-unhide:no;
=09mso-ansi-font-size:11.0pt;
=09mso-bidi-font-size:11.0pt;
=09font-family:"Times New Roman","serif";
=09mso-ascii-font-family:"Times New Roman";
=09mso-fareast-font-family:Calibri;
=09mso-hansi-font-family:"Times New Roman";
=09mso-bidi-font-family:"Times New Roman";
=09color:windowtext;}
span.HTMLPreformattedChar
=09{mso-style-name:"HTML Preformatted Char";
=09mso-style-noshow:yes;
=09mso-style-priority:99;
=09mso-style-unhide:no;
=09mso-style-locked:yes;
=09mso-style-link:"HTML Preformatted";
=09font-family:Consolas;
=09mso-ascii-font-family:Consolas;
=09mso-fareast-font-family:Calibri;
=09mso-hansi-font-family:Consolas;
=09mso-bidi-font-family:Consolas;
=09mso-fareast-language:EN-US;}
span.EmailStyle22
=09{mso-style-type:personal-reply;
=09mso-style-noshow:yes;
=09mso-style-unhide:no;
=09mso-ansi-font-size:11.0pt;
=09mso-bidi-font-size:11.0pt;
=09font-family:"Times New Roman","serif";
=09mso-ascii-font-family:"Times New Roman";
=09mso-fareast-font-family:Calibri;
=09mso-hansi-font-family:"Times New Roman";
=09mso-bidi-font-family:"Times New Roman";
=09color:#1F497D;}
span.SpellE
=09{mso-style-name:"";
=09mso-spl-e:yes;}
.MsoChpDefault
=09{mso-style-type:export-only;
=09mso-default-props:yes;
=09font-size:10.0pt;
=09mso-ansi-font-size:10.0pt;
=09mso-bidi-font-size:10.0pt;}
@page WordSection1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 72.0pt 72.0pt 72.0pt;
=09mso-header-margin:36.0pt;
=09mso-footer-margin:36.0pt;
=09mso-paper-source:0;}
div.WordSection1
=09{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
=09{mso-style-name:"Table Normal";
=09mso-tstyle-rowband-size:0;
=09mso-tstyle-colband-size:0;
=09mso-style-noshow:yes;
=09mso-style-priority:99;
=09mso-style-parent:"";
=09mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
=09mso-para-margin:0cm;
=09mso-para-margin-bottom:.0001pt;
=09mso-pagination:widow-orphan;
=09font-size:10.0pt;
=09font-family:"Times New Roman","serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-CA link=3Dblue vli=
nk=3Dpurple style=3D'tab-interval:36.0pt'><div class=3DWordSection1><p clas=
s=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-family:Calib=
ri;color:#1F497D'>Hi <span class=3DSpellE>Kees</span>,<o:p></o:p></span></p=
><p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-fami=
ly:Calibri;color:#1F497D'>That product is close to what they need. <span st=
yle=3D'mso-spacerun:yes'>=C2=A0</span>Nicely done! <o:p></o:p></span></p><p=
 class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-family:=
Calibri;color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><sp=
an style=3D'font-size:11.0pt;mso-fareast-font-family:Calibri;color:#1F497D'=
>Although when I had the scope on their system last Thursday it looks like =
the messages were running at least every 10mS.<span style=3D'mso-spacerun:y=
es'>=C2=A0 </span>I think they said 100Hz, 50Hz and 20Hz intervals.<span st=
yle=3D'mso-spacerun:yes'>=C2=A0 </span>I'd say I'd have to have the ability=
 to store at least 5,000 messages at 500kbps.<o:p></o:p></span></p><p class=
=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-family:Calibr=
i;color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span sty=
le=3D'font-size:11.0pt;mso-fareast-font-family:Calibri;color:#1F497D'>A few=
 years ago I did do a similar logging project.<span style=3D'mso-spacerun:y=
es'>=C2=A0 </span>They wanted the data stored on a Raspberry <span class=3D=
SpellE>PiZeroW</span> and then upload to the cloud via <span class=3DSpellE=
>WiFi</span> when available.<span style=3D'mso-spacerun:yes'>=C2=A0 </span>=
<o:p></o:p></span></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;=
mso-fareast-font-family:Calibri;color:#1F497D'><o:p>&nbsp;</o:p></span></p>=
<p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-famil=
y:Calibri;color:#1F497D'>We found that no matter what we did the Pi still t=
ook about 12 seconds to boot.<span style=3D'mso-spacerun:yes'>=C2=A0 </span=
>Ultimately what I did was design and build a PIC32 front end to timestamp =
and queue all messages.<span style=3D'mso-spacerun:yes'>=C2=A0 </span>Once =
the Pi was awake the PIC32 became an SPI slave to the Pi which then pulled =
up the stored messages.<span style=3D'mso-spacerun:yes'>=C2=A0 </span><o:p>=
</o:p></span></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-f=
areast-font-family:Calibri;color:#1F497D'><o:p>&nbsp;</o:p></span></p><p cl=
ass=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-family:Cal=
ibri;color:#1F497D'>Unfortunately I don't have access to the hardware or le=
gally the software.<span style=3D'mso-spacerun:yes'>=C2=A0 </span>I was hop=
ing that there might be something that uses a <span class=3DSpellE>KVaser</=
span> or Port or some other USB dongle and a PC application that would do t=
his.<o:p></o:p></span></p><p class=3DMsoNormal><span style=3D'font-size:11.=
0pt;mso-fareast-font-family:Calibri;color:#1F497D'><o:p>&nbsp;</o:p></span>=
</p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-f=
amily:Calibri;color:#1F497D'>I'll talk to the client and mention your produ=
ct.<span style=3D'mso-spacerun:yes'>=C2=A0 </span>Not that interested in ma=
king changes in Basic though.<o:p></o:p></span></p><p class=3DMsoNormal><sp=
an style=3D'font-size:11.0pt;mso-fareast-font-family:Calibri;color:#1F497D'=
><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'font-size:=
11.0pt;mso-fareast-font-family:Calibri;color:#1F497D'>Thanks again<o:p></o:=
p></span></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-farea=
st-font-family:Calibri;color:#1F497D'>John Dammeyer<o:p></o:p></span></p><p=
 class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-font-family:=
Calibri;color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><sp=
an style=3D'font-size:11.0pt;mso-fareast-font-family:Calibri;color:#1F497D'=
><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'font-size:=
11.0pt;mso-fareast-font-family:Calibri;color:#1F497D'><o:p>&nbsp;</o:p></sp=
an></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-fareast-fon=
t-family:Calibri;color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoN=
ormal><span style=3D'font-size:11.0pt;mso-fareast-font-family:Calibri;color=
:#1F497D'><o:p>&nbsp;</o:p></span></p><div style=3D'border:none;border-left=
:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style=3D'border:none=
;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=3DMsoNo=
rmal><b><span lang=3DEN-US style=3D'font-size:10.0pt;font-family:"Tahoma","=
sans-serif";mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-=
US;mso-fareast-language:EN-CA'>From:</span></b><span lang=3DEN-US style=3D'=
font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-font-family:=
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-CA'> canl=
[email protected] [mailto:[email protected]=
] <b>On Behalf Of </b>Kees Zagers<br><b>Sent:</b> October-31-20 11:53 AM<br=
><b>To:</b> [email protected]<br><b>Subject:</b> Re: [CANLIST] L=
ogging CAN messages<o:p></o:p></span></p></div></div><p class=3DMsoNormal><=
o:p>&nbsp;</o:p></p><p>Hi John,<o:p></o:p></p><p>In principle I created thi=
s functionality in my SI2CBB (<a href=3D"http://www.unicanner.com">www.unic=
anner.com</a>). The embedded hardware has all the CAN functionality in this=
 case. The CANLOG command I created has the event logging possibility. Butt=
on (connected to one of the Arduino pins), specific message and error event=
 can be defined by the user. The only restriction is the fact that I used t=
he standard circular FIFO buffer of the built-in CAN controller of the Micr=
ochip PIC32. This buffer only contains 32 messages. So the pre-trigger info=
rmation is 32 messages, which probably will be a fraction of the messages d=
uring the last five seconds. The post-trigger information can be as long as=
 you want. The PIC32 has the possibility to create 32 of these FIFO buffers=
 in RAM, where every FIFO can be linked to one or more filters and masks. I=
f all FIFO's are linked to the same filter and mask, they can be cascaded, =
which gives us a buffer of 1024 messages. The problem however in this case =
it is not circular; if the last FIFO is full it stops. I have to check, but=
 it should be possible to detect the buffer full interrupt of the last FIFO=
 and return to the first FIFO again. In that case we can have at least 1 se=
cond of the pre-trigger messages in a normal CANbus system.<o:p></o:p></p><=
p>Anyway it is difficult to say how large the circular buffer should be to =
contain the information of 5 or 10 seconds, because it depends of course on=
 the bus speed and bus load.<o:p></o:p></p><p>The result of the logging can=
 be directly uploaded to a PC through the USB interface or locally stored o=
n an SD flash card.<o:p></o:p></p><p>So far my input.<o:p></o:p></p><p>Chee=
rs<o:p></o:p></p><p>Kees<o:p></o:p></p><div><p class=3DMsoNormal><span styl=
e=3D'mso-fareast-font-family:"Times New Roman"'>Op 30-10-2020 om 06:50 schr=
eef John Dammeyer:<o:p></o:p></span></p></div><blockquote style=3D'margin-t=
op:5.0pt;margin-bottom:5.0pt'><p class=3DMsoNormal><span style=3D'font-size=
:11.0pt'>I haven't kept up to date with newer developments over the last fe=
w years.<span style=3D'mso-spacerun:yes'>=C2=A0 </span>My Lawicel CANUSB, R=
M CANUSB and monitor program plus whatever I've written has been adequate f=
or the tasks I do.</span><o:p></o:p></p><p class=3DMsoNormal><span style=3D=
'font-size:11.0pt'>&nbsp;</span><o:p></o:p></p><p class=3DMsoNormal><span s=
tyle=3D'font-size:11.0pt'>I've been asked to determine if a tool exists tha=
t can log CAN messages in a circular buffer.<span style=3D'mso-spacerun:yes=
'>=C2=A0 </span>Say 10 seconds worth and when a trigger like either a messa=
ge or say an error flag occurs the logging to the circular buffer goes for =
5 seconds and then is stopped and saved.</span><o:p></o:p></p><p class=3DMs=
oNormal><span style=3D'font-size:11.0pt'>&nbsp;</span><o:p></o:p></p><p cla=
ss=3DMsoNormal><span style=3D'font-size:11.0pt'>Essentially the system show=
s random faults and they'd like to know what happened for 5 seconds on eith=
er side of the event. <span style=3D'mso-spacerun:yes'>=C2=A0</span></span>=
<o:p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt'>&nbsp;=
</span><o:p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt'=
>The even can be: a contact closure like a button pressed by an operator;<s=
pan style=3D'mso-spacerun:yes'>=C2=A0 </span>a specific message,<span style=
=3D'mso-spacerun:yes'>=C2=A0 </span>Bus error as signaled by an error flag.=
</span><o:p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt'=
>&nbsp;</span><o:p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:=
11.0pt'>Does a tool like that exist?</span><o:p></o:p></p><p class=3DMsoNor=
mal><span style=3D'font-size:11.0pt'>&nbsp;</span><o:p></o:p></p><p class=
=3DMsoNormal><span style=3D'font-size:11.0pt'>Thanks</span><o:p></o:p></p><=
p class=3DMsoNormal><span style=3D'font-size:11.0pt'>John Dammeyer</span><o=
:p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt'>&nbsp;</=
span><o:p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;ms=
o-bidi-font-size:10.5pt;font-family:"Calibri","sans-serif"'>&quot;ELS! Noth=
ing else works as well for your Lathe&quot;</span><o:p></o:p></p><p class=
=3DMsoNormal><span style=3D'font-size:11.0pt;mso-bidi-font-size:10.5pt;font=
-family:"Calibri","sans-serif"'>Automation Artisans Inc.</span><o:p></o:p><=
/p><p class=3DMsoNormal><span style=3D'font-size:11.0pt;mso-bidi-font-size:=
10.5pt;font-family:"Calibri","sans-serif"'>www dot autoartisans dot com </s=
pan><o:p></o:p></p><p class=3DMsoNormal>&nbsp;<o:p></o:p></p></blockquote><=
pre>-- <o:p></o:p></pre><pre>Kees Zagers<o:p></o:p></pre><pre>SI-KWADRAAT B=
.V.<o:p></o:p></pre><pre>Van Kemenadelaan 13<o:p></o:p></pre><pre>5674 PP<s=
pan style=3D'mso-spacerun:yes'>=C2=A0 </span>NUENEN<o:p></o:p></pre><pre><o=
:p>&nbsp;</o:p></pre><pre>Tel. +31(0)40-2839582<o:p></o:p></pre><pre><a hre=
f=3D"mailto:[email protected]">[email protected]</a><o:p></o:p></pre></=
div></div></body></html>
------=_NextPart_000_0E2D_01D6AF8C.0E405E30--


--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector.com/canlist/
Report any problems to <[email protected]>