Library to control Dodge LX (83.3k) CAN devices

Dependencies:   DodgeRadioLib EthernetWrapperLib OBDIILib mbed

Committer:
rtgree01
Date:
Sat Aug 20 14:20:13 2011 +0000
Revision:
0:4d16a55d0eec
Child:
2:e8b13ea2881b
First Rev with OBDII enabled, calculates mpg, but no transmission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rtgree01 0:4d16a55d0eec 1 #include "mbed.h"
rtgree01 0:4d16a55d0eec 2 #include "radioEmulator.h"
rtgree01 0:4d16a55d0eec 3 #include "WatchDogTimer.h"
rtgree01 0:4d16a55d0eec 4 #include "ecu_reader.h"
rtgree01 0:4d16a55d0eec 5
rtgree01 0:4d16a55d0eec 6 WatchDogTimer wdt;
rtgree01 0:4d16a55d0eec 7
rtgree01 0:4d16a55d0eec 8 RadioEmulator *radio;
rtgree01 0:4d16a55d0eec 9
rtgree01 0:4d16a55d0eec 10 Ticker obdTicker;
rtgree01 0:4d16a55d0eec 11 ecu_reader *obdii;
rtgree01 0:4d16a55d0eec 12 char buffer[128];
rtgree01 0:4d16a55d0eec 13 void readOBD(void);
rtgree01 0:4d16a55d0eec 14
rtgree01 0:4d16a55d0eec 15 int main()
rtgree01 0:4d16a55d0eec 16 {
rtgree01 0:4d16a55d0eec 17 CAN can1(p9,p10);
rtgree01 0:4d16a55d0eec 18 obdii = new ecu_reader(&can1, CANSPEED_500); //Create object and set CAN speed
rtgree01 0:4d16a55d0eec 19
rtgree01 0:4d16a55d0eec 20 obdTicker.attach(readOBD, 5);
rtgree01 0:4d16a55d0eec 21
rtgree01 0:4d16a55d0eec 22 wdt.kick(2);
rtgree01 0:4d16a55d0eec 23 radio = new RadioEmulator();
rtgree01 0:4d16a55d0eec 24 while (1)
rtgree01 0:4d16a55d0eec 25 {
rtgree01 0:4d16a55d0eec 26 radio->readCANbus();
rtgree01 0:4d16a55d0eec 27 radio->HostComm();
rtgree01 0:4d16a55d0eec 28
rtgree01 0:4d16a55d0eec 29 obdii->readCAN();
rtgree01 0:4d16a55d0eec 30
rtgree01 0:4d16a55d0eec 31 wdt.kick();
rtgree01 0:4d16a55d0eec 32 }
rtgree01 0:4d16a55d0eec 33 }
rtgree01 0:4d16a55d0eec 34
rtgree01 0:4d16a55d0eec 35 void readOBD(void)
rtgree01 0:4d16a55d0eec 36 {
rtgree01 0:4d16a55d0eec 37 printf("Trying OBD-II data\n\r");
rtgree01 0:4d16a55d0eec 38
rtgree01 0:4d16a55d0eec 39 obdii->request(VEHICLE_SPEED);
rtgree01 0:4d16a55d0eec 40 obdii->request(MAF_SENSOR);
rtgree01 0:4d16a55d0eec 41 obdii->request(FUEL_LEVEL);
rtgree01 0:4d16a55d0eec 42
rtgree01 0:4d16a55d0eec 43 obdii->request(ENGINE_RPM);
rtgree01 0:4d16a55d0eec 44 obdii->request(ENGINE_COOLANT_TEMP);
rtgree01 0:4d16a55d0eec 45 obdii->request(THROTTLE);
rtgree01 0:4d16a55d0eec 46 obdii->request(O2_VOLTAGE);
rtgree01 0:4d16a55d0eec 47 }