Sophie Dexter
/
Just4Trionic
Just4Trionic - CAN and BDM FLASH programmer for Saab cars
main.cpp
- Committer:
- Just4pLeisure
- Date:
- 2010-05-19
- Revision:
- 0:e0b964252a05
- Child:
- 1:d5452e398b76
File content as of revision 0:e0b964252a05:
/******************************************************************************* Just4Trionic by Just4pLeisure ***************************** Whilst I have written this program myself I could not have done it without a lot of help and the original ideas and programs written by: Dilemma - Author of the Trionic Suite software programs and general Guru http://trionic.mobixs.eu/ and http://www.ecuproject.com. General Failure - Author of the T5CANlib software and regular contributor at http://www.ecuproject.com. Tomi Liljemark - Lots of information and programs about the Saab CAN bus http://pikkupossu.1g.fi/tomi/projects/projects.html. Scott Howard - Author of the BDM software. Plus inspiration and ideas from many others, including johnc. Sophie x ******************************************************************************** WARNING: Use at your own risk, sadly this software comes with no guarantees. This software is provided 'free' and in good faith, but the author does not accept liability for any damage arising from its use. ******************************************************************************** Version 1 (04/2010)- The basic functions are working, but not very easy to use I have decided to 'release' this software somewhat prematurely because the FLASH chips in my spare ECU have 'died' and I don't know when I will be able to do carry on improving and 'polishing' it. This way others will be able to use and enhance it without having to wait for me. For now, only option '5' Trionic ECU CAN interface is working. BDM and Lawicell CAN232 functions are dummies. The intention is to build a complete suite of CAN software for Trionic5, 7 and 8 ECU types as well as adding a BDM interface to make an 'all-in-one' USB programming tool. To make this you will need an mbed system and the CAN circuit from this page: http://mbed.org/projects/cookbook/wiki/CanBusExample1 Some ideas for the truly creative and adventurous of you is to make a gizmo that doesn't even need to be connected to a laptop or PC to use, maybe even a self- contained vesion of Dilemma's CarPC using ideas from this pages: http://mbed.org/projects/cookbook/wiki/PS2Keyboard http://mbed.org/projects/cookbook/wiki/PS2Mouse http://mbed.org/projects/cookbook/wiki/MobileLCD http://mbed.org/projects/cookbook/wiki/SDCard *******************************************************************************/ #include "mbed.h" #include "strings.h" #include "BDM.h" #include "CAN232.h" #include "Trionic5.h" Serial pc(USBTX, USBRX); // tx, rx #define CR 0x0D #define NL 0x0A #define BELL 0x07 #define TRUE 1 #define FALSE 0 void ShowHelp(); int main() { // fast serial speed // pc.baud(921600); pc.baud(115200); // make plenty of space for command from RS232 char command[5]; ShowHelp(); while (1) { // Only get 2 characters, the command and \r // For now I cannot work out how to use gets() so only single characters // can be used for commands :-( // // At the moment only option '5' does anything - the Trionic5 functions // pc.gets(command,2); int len = strlen(command); if (len != 1) printf ("\a"); else if (ToUpper(command[0]) == 'B') BDM(); else if (ToUpper(command[0]) == 'O') CAN232(); else if (ToUpper(command[0]) == '5') Trionic5(); else if (ToUpper(command[0]) == 'H') ShowHelp(); // Unrecognised so ring the BELL :( else printf ("\a"); } } void ShowHelp() { printf("Just4Trionic Command Menu\r\n"); printf("=========================\r\n"); printf("b/B - Start BDM interface (NOT DONE)\r\n"); printf("o/O - Open Lawicel CAN232 type interface (NOT DONE)\r\n"); printf("5 - Start Trionic5 ECU CAN interface\r\n"); printf("\r\n"); printf("h/H - show this help menu\r\n"); return; }