02-12-2008 01:33 PM
02-13-2008 12:32 PM
Hi,
The data structure of the A2L file snipped you attached, does not comply to what our parser expects. What tool did you use to create the A2L file.
DirkW
02-13-2008 01:04 PM
Hi Dirk,
I was given the A2L file by one of our customers, I do not know what tool was used to create it. I have gotten past the timeout error now by changing the DTO and CRO id's. The new error message is that the ECU resources were unable to be unlocked and to check the relevant Seedkey dll's. The Seedkey dll's are in the same directory as the A2L file and the VI's. I know that the Seedkey is the correct one because I can use it with the A2L with a different program (VISION). Is there any way to manually check what data is being received for the seed? Should I try an use a call library node to call the Seedkey dll directly to check that it is calculating correctly and if so is there a way to obtain the function prototype for this dll (it only has one exposed function which is calculate from seed)?
Alternatively, would it be easier to try and capture the frames sent by VISION to unlock the ECU and duplicate these at a low level by calling ncWrite or similar in a call library node?
Dan
03-27-2008 04:50 AM
03-27-2008 04:54 AM
You can generate .a2l files through various third-party utilities. For example:
https://www.vector-worldwide.com/vi_asap2_editor_en,,9656.html
best regards
03-29-2008 06:08 AM
Hi Graham,
I tried starting off from a completely blank A2L and added connection parameters one at a time until I was sure each line was being read correctly by the toolkit parser. This seemed to work fine but the connection would open, try to unlock ECU resources and then return an error that the resources were unavailable and I should try a different seedkey.dll. I captured the CAN frames that were being sent via a second CAN card to look at the exact command sequence. I then extracted the seed data from the get seed reply frame and used a call library node function to call the seedkey.dll. This returned a different key to the one that was being sent in the unlock command so I could only assume that the toolkit is not calling the seedkey correctly somehow but since this is all hidden in a dll, I could not look at the exact mechanics to see what was going wrong. I then built a VI using the frame API stuff that comes with the NI-CAN drivers cd to manually send the the frames required to connect then get seed. I use the same call library node function to call the seedkey.dll and then build another frame with the returned key. This all seems to work fine and I have an unlocked ECU. Unfortunately since I did all this with the frame API, there was no way to subsequently use the toolkit vi's as they are built around the channel API which is apparently incompatible. Feeling completely frustrated with the non-functional toolkit and having logged a couple of tech help requests with NI I have given up on the tooklit altogether, built my own A2L parser and I am almost finished with the communications interface using the frame APIs. Thanks anyway,
Dan
03-31-2008 02:23 PM
Dan,
Sorry to hear that you could not get it running with the TK. Attached you can fin a CCP Logger example to log the CCP communication on a certain Bus. If you have a spare CAN port connected to the same Bus as your ECU communication is running, you could run this logger to log the low level CCP communication between your application and ECU.
Perhaps it helps fixing the seed Key issue if you see what the details are.
If you are still interested, please post the log file, so i could have a look to it.
DirkW
05-03-2008 08:10 PM
05-19-2008 07:10 PM