Library to control Dodge LX (83.3k) CAN devices
Dependencies: DodgeRadioLib EthernetWrapperLib OBDIILib mbed
ecu_reader.h@1:90487a39d54e, 2011-12-30 (annotated)
- Committer:
- rtgree01
- Date:
- Fri Dec 30 20:23:00 2011 +0000
- Revision:
- 1:90487a39d54e
- Parent:
- 0:4d16a55d0eec
- Child:
- 2:e8b13ea2881b
HU emulator; CAN Monitor; OBD2 reader (started)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rtgree01 |
0:4d16a55d0eec | 1 | #ifndef ECU_READER_H |
rtgree01 |
0:4d16a55d0eec | 2 | #define ECU_READER_H |
rtgree01 |
0:4d16a55d0eec | 3 | |
rtgree01 |
0:4d16a55d0eec | 4 | #define CANSPEED_125 125000 // CAN speed at 125 kbps |
rtgree01 |
0:4d16a55d0eec | 5 | #define CANSPEED_250 250000 // CAN speed at 250 kbps |
rtgree01 |
0:4d16a55d0eec | 6 | #define CANSPEED_500 500000 // CAN speed at 500 kbps |
rtgree01 |
0:4d16a55d0eec | 7 | |
rtgree01 |
0:4d16a55d0eec | 8 | /* Details from http://en.wikipedia.org/wiki/OBD-II_PIDs */ |
rtgree01 |
0:4d16a55d0eec | 9 | #define ENGINE_COOLANT_TEMP 0x05 |
rtgree01 |
0:4d16a55d0eec | 10 | #define ENGINE_RPM 0x0C |
rtgree01 |
0:4d16a55d0eec | 11 | #define VEHICLE_SPEED 0x0D |
rtgree01 |
0:4d16a55d0eec | 12 | #define MAF_SENSOR 0x10 |
rtgree01 |
0:4d16a55d0eec | 13 | #define THROTTLE 0x11 |
rtgree01 |
0:4d16a55d0eec | 14 | #define O2_VOLTAGE 0x14 |
rtgree01 |
0:4d16a55d0eec | 15 | #define FUEL_LEVEL 0x2f |
rtgree01 |
0:4d16a55d0eec | 16 | |
rtgree01 |
0:4d16a55d0eec | 17 | #define PID_REQUEST 0x7DF |
rtgree01 |
0:4d16a55d0eec | 18 | #define PID_REPLY 0x7E8 |
rtgree01 |
0:4d16a55d0eec | 19 | |
rtgree01 |
0:4d16a55d0eec | 20 | namespace mbed { |
rtgree01 |
0:4d16a55d0eec | 21 | |
rtgree01 |
0:4d16a55d0eec | 22 | class ecu_reader{ |
rtgree01 |
0:4d16a55d0eec | 23 | |
rtgree01 |
0:4d16a55d0eec | 24 | public: |
rtgree01 |
0:4d16a55d0eec | 25 | |
rtgree01 |
0:4d16a55d0eec | 26 | ecu_reader( CAN *c, int can_speed); |
rtgree01 |
0:4d16a55d0eec | 27 | |
rtgree01 |
0:4d16a55d0eec | 28 | void request(unsigned char pid); |
rtgree01 |
0:4d16a55d0eec | 29 | void readCAN(); |
rtgree01 |
0:4d16a55d0eec | 30 | |
rtgree01 |
0:4d16a55d0eec | 31 | private: |
rtgree01 |
0:4d16a55d0eec | 32 | |
rtgree01 |
0:4d16a55d0eec | 33 | CAN *can; |
rtgree01 |
0:4d16a55d0eec | 34 | |
rtgree01 |
0:4d16a55d0eec | 35 | struct ecu_info { |
rtgree01 |
0:4d16a55d0eec | 36 | int coolantTemp; |
rtgree01 |
0:4d16a55d0eec | 37 | int rpm; |
rtgree01 |
0:4d16a55d0eec | 38 | int speed; |
rtgree01 |
0:4d16a55d0eec | 39 | int mafSensor; |
rtgree01 |
0:4d16a55d0eec | 40 | int throttle; |
rtgree01 |
0:4d16a55d0eec | 41 | int o2Voltage; |
rtgree01 |
1:90487a39d54e | 42 | int fuel; |
rtgree01 |
0:4d16a55d0eec | 43 | float mpg; |
rtgree01 |
0:4d16a55d0eec | 44 | } data; |
rtgree01 |
0:4d16a55d0eec | 45 | }; |
rtgree01 |
0:4d16a55d0eec | 46 | |
rtgree01 |
0:4d16a55d0eec | 47 | |
rtgree01 |
0:4d16a55d0eec | 48 | |
rtgree01 |
0:4d16a55d0eec | 49 | |
rtgree01 |
0:4d16a55d0eec | 50 | |
rtgree01 |
0:4d16a55d0eec | 51 | } |
rtgree01 |
0:4d16a55d0eec | 52 | |
rtgree01 |
0:4d16a55d0eec | 53 | |
rtgree01 |
0:4d16a55d0eec | 54 | |
rtgree01 |
0:4d16a55d0eec | 55 | #endif |