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:
1:90487a39d54e
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 #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 0:4d16a55d0eec 42 float mpg;
rtgree01 0:4d16a55d0eec 43 } data;
rtgree01 0:4d16a55d0eec 44 };
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 #endif