publish final code

Dependencies:   FXOS8700CQ Pubnub_mbed2_sync2 SoftSerial TinyGPSplus WNCInterface2 mbed-rtos mbed

Committer:
cswiger
Date:
Tue Feb 21 22:28:26 2017 +0000
Revision:
0:1092494506a3
publish final code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cswiger 0:1092494506a3 1 /* Library for the Sparkfun OBD2 uart - cloned from
cswiger 0:1092494506a3 2 * https://github.com/sigalabs/Vehicle-OBD2-Shield
cswiger 0:1092494506a3 3 */
cswiger 0:1092494506a3 4
cswiger 0:1092494506a3 5 #ifndef __OBD2_H
cswiger 0:1092494506a3 6 #define __OBD2_H
cswiger 0:1092494506a3 7
cswiger 0:1092494506a3 8
cswiger 0:1092494506a3 9 #define NUL '\0'
cswiger 0:1092494506a3 10 #define CR '\r'
cswiger 0:1092494506a3 11 #define PROMPT '>'
cswiger 0:1092494506a3 12 #define DATA 1
cswiger 0:1092494506a3 13
cswiger 0:1092494506a3 14 #define STRLEN 40
cswiger 0:1092494506a3 15
cswiger 0:1092494506a3 16 #define DTC_BUFFER (MAX_DTC_READ*6)+2
cswiger 0:1092494506a3 17 //OBD2 PIDs
cswiger 0:1092494506a3 18
cswiger 0:1092494506a3 19 #define PID_SUPPORT00 0x00
cswiger 0:1092494506a3 20 #define MIL_CODE 0x01
cswiger 0:1092494506a3 21 #define FREEZE_DTC 0x02
cswiger 0:1092494506a3 22 #define FUEL_STATUS 0x03
cswiger 0:1092494506a3 23 #define LOAD_VALUE 0x04
cswiger 0:1092494506a3 24 #define COOLANT_TEMP 0x05
cswiger 0:1092494506a3 25 #define STFT_BANK1 0x06
cswiger 0:1092494506a3 26 #define LTFT_BANK1 0x07
cswiger 0:1092494506a3 27 #define STFT_BANK2 0x08
cswiger 0:1092494506a3 28 #define LTFT_BANK2 0x09
cswiger 0:1092494506a3 29 #define FUEL_PRESSURE 0x0A
cswiger 0:1092494506a3 30 #define MAN_PRESSURE 0x0B
cswiger 0:1092494506a3 31 #define ENGINE_RPM 0x0C
cswiger 0:1092494506a3 32 #define VEHICLE_SPEED 0x0D
cswiger 0:1092494506a3 33 #define TIMING_ADV 0x0E
cswiger 0:1092494506a3 34 #define INT_AIR_TEMP 0x0F
cswiger 0:1092494506a3 35 #define MAF_AIR_FLOW 0x10
cswiger 0:1092494506a3 36 #define THROTTLE_POS 0x11
cswiger 0:1092494506a3 37 #define SEC_AIR_STAT 0x12
cswiger 0:1092494506a3 38 #define OXY_SENSORS1 0x13
cswiger 0:1092494506a3 39 #define B1S1_O2_V 0x14
cswiger 0:1092494506a3 40 #define B1S2_O2_V 0x15
cswiger 0:1092494506a3 41 #define B1S3_O2_V 0x16
cswiger 0:1092494506a3 42 #define B1S4_O2_V 0x17
cswiger 0:1092494506a3 43 #define B2S1_O2_V 0x18
cswiger 0:1092494506a3 44 #define B2S2_O2_V 0x19
cswiger 0:1092494506a3 45 #define B2S3_O2_V 0x1A
cswiger 0:1092494506a3 46 #define B2S4_O2_V 0x1B
cswiger 0:1092494506a3 47 #define OBD_STD 0x1C
cswiger 0:1092494506a3 48 #define OXY_SENSORS2 0x1D
cswiger 0:1092494506a3 49 #define AUX_INPUT 0x1E
cswiger 0:1092494506a3 50 #define RUNTIME_START 0x1F
cswiger 0:1092494506a3 51 #define PID_SUPPORT20 0x20
cswiger 0:1092494506a3 52 #define DIST_MIL_ON 0x21
cswiger 0:1092494506a3 53 #define FUEL_RAIL_P 0x22
cswiger 0:1092494506a3 54 #define FUEL_RAIL_DIESEL 0x23
cswiger 0:1092494506a3 55 #define O2S1_WR_V 0x24
cswiger 0:1092494506a3 56 #define O2S2_WR_V 0x25
cswiger 0:1092494506a3 57 #define O2S3_WR_V 0x26
cswiger 0:1092494506a3 58 #define O2S4_WR_V 0x27
cswiger 0:1092494506a3 59 #define O2S5_WR_V 0x28
cswiger 0:1092494506a3 60 #define O2S6_WR_V 0x29
cswiger 0:1092494506a3 61 #define O2S7_WR_V 0x2A
cswiger 0:1092494506a3 62 #define O2S8_WR_V 0x2B
cswiger 0:1092494506a3 63 #define EGR 0x2C
cswiger 0:1092494506a3 64 #define EGR_ERROR 0x2D
cswiger 0:1092494506a3 65 #define EVAP_PURGE 0x2E
cswiger 0:1092494506a3 66 #define FUEL_LEVEL 0x2F
cswiger 0:1092494506a3 67 #define WARM_UPS 0x30
cswiger 0:1092494506a3 68 #define DIST_MIL_CLR 0x31
cswiger 0:1092494506a3 69 #define EVAP_PRESSURE 0x32
cswiger 0:1092494506a3 70 #define BARO_PRESSURE 0x33
cswiger 0:1092494506a3 71 #define O2S1_WR_C 0x34
cswiger 0:1092494506a3 72 #define O2S2_WR_C 0x35
cswiger 0:1092494506a3 73 #define O2S3_WR_C 0x36
cswiger 0:1092494506a3 74 #define O2S4_WR_C 0x37
cswiger 0:1092494506a3 75 #define O2S5_WR_C 0x38
cswiger 0:1092494506a3 76 #define O2S6_WR_C 0x39
cswiger 0:1092494506a3 77 #define O2S7_WR_C 0x3A
cswiger 0:1092494506a3 78 #define O2S8_WR_C 0x3B
cswiger 0:1092494506a3 79 #define CAT_TEMP_B1S1 0x3C
cswiger 0:1092494506a3 80 #define CAT_TEMP_B2S1 0x3D
cswiger 0:1092494506a3 81 #define CAT_TEMP_B1S2 0x3E
cswiger 0:1092494506a3 82 #define CAT_TEMP_B2S2 0x3F
cswiger 0:1092494506a3 83 #define PID_SUPPORT40 0x40
cswiger 0:1092494506a3 84 #define MONITOR_STAT 0x41
cswiger 0:1092494506a3 85 #define CTRL_MOD_V 0x42
cswiger 0:1092494506a3 86 #define ABS_LOAD_VAL 0x43
cswiger 0:1092494506a3 87 #define CMD_EQUIV_R 0x44
cswiger 0:1092494506a3 88 #define REL_THR_POS 0x45
cswiger 0:1092494506a3 89 #define AMBIENT_TEMP 0x46
cswiger 0:1092494506a3 90 #define ABS_THR_POS_B 0x47
cswiger 0:1092494506a3 91 #define ABS_THR_POS_C 0x48
cswiger 0:1092494506a3 92 #define ACCEL_PEDAL_D 0x49
cswiger 0:1092494506a3 93 #define ACCEL_PEDAL_E 0x4A
cswiger 0:1092494506a3 94 #define ACCEL_PEDAL_F 0x4B
cswiger 0:1092494506a3 95 #define CMD_THR_ACTU 0x4C
cswiger 0:1092494506a3 96 #define TIME_MIL_ON 0x4D
cswiger 0:1092494506a3 97 #define TIME_MIL_CLR 0x4E
cswiger 0:1092494506a3 98 #define FUEL_TYPE 0x51
cswiger 0:1092494506a3 99 #define ETHYL_FUEL 0x52
cswiger 0:1092494506a3 100 #define LAST_PID 0x52
cswiger 0:1092494506a3 101
cswiger 0:1092494506a3 102
cswiger 0:1092494506a3 103 //DTCs
cswiger 0:1092494506a3 104 #define MAX_DTC_READ 5
cswiger 0:1092494506a3 105
cswiger 0:1092494506a3 106
cswiger 0:1092494506a3 107 // function prototypes
cswiger 0:1092494506a3 108 char Init();
cswiger 0:1092494506a3 109 char stn1110_read(char *str, char size);
cswiger 0:1092494506a3 110 void stn1110_write(char *str);
cswiger 0:1092494506a3 111 char stn1110_check_response(const char *cmd, char *str);
cswiger 0:1092494506a3 112 char stn1110_compact_response(char *buf, char *str);
cswiger 0:1092494506a3 113 char stn1110_command(char *str, char *cmd);
cswiger 0:1092494506a3 114 void check_supported_pids(void);
cswiger 0:1092494506a3 115 char is_pid_supported(char pid);
cswiger 0:1092494506a3 116 char get_pid(char pid, long *ret);
cswiger 0:1092494506a3 117 char verifyECUAlive(void);
cswiger 0:1092494506a3 118 char Refresh(void);
cswiger 0:1092494506a3 119 bool dtc_read(void);
cswiger 0:1092494506a3 120 bool dtc_clear(void);
cswiger 0:1092494506a3 121
cswiger 0:1092494506a3 122 //Structures
cswiger 0:1092494506a3 123 struct DTC_t {
cswiger 0:1092494506a3 124 char code[6];
cswiger 0:1092494506a3 125 } DTC[MAX_DTC_READ];
cswiger 0:1092494506a3 126
cswiger 0:1092494506a3 127 //Variables
cswiger 0:1092494506a3 128 char isIgnitionOn;
cswiger 0:1092494506a3 129 char isEngineOn;
cswiger 0:1092494506a3 130 bool has_dtc;
cswiger 0:1092494506a3 131
cswiger 0:1092494506a3 132
cswiger 0:1092494506a3 133 char *strip_answer(char *s);
cswiger 0:1092494506a3 134 unsigned long pid01to20_support;
cswiger 0:1092494506a3 135 unsigned long pid21to40_support;
cswiger 0:1092494506a3 136 unsigned long pid41to60_support;
cswiger 0:1092494506a3 137 long tempLong;
cswiger 0:1092494506a3 138 long engineRPM;
cswiger 0:1092494506a3 139
cswiger 0:1092494506a3 140
cswiger 0:1092494506a3 141 #endif