Library to control Dodge LX (83.3k) CAN devices
Dependencies: DodgeRadioLib EthernetWrapperLib OBDIILib mbed
main.cpp@0:4d16a55d0eec, 2011-08-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |