Libraries to support working with GMLAN - General Motors CAN BUS network in most of their vehicles between 2007-present day. Please note this is a work in progress and not guaranteed to be correct, use at your own risk! Read commit logs / subscribe to see what has been added, it's a work in progress after all ;)

Committer:
foxdie
Date:
Mon Apr 08 11:31:12 2013 +0000
Revision:
9:4af02032daeb
Parent:
2:1a2cb289f24d
Fixed bug where transmission of multi-frame messages wasn't recognising flow control to continue resulting in code waiting around doing nada

Who changed what in which revision?

UserRevisionLine numberNew contents of line
foxdie 2:1a2cb289f24d 1 /*
foxdie 2:1a2cb289f24d 2 GMLAN_29bit.h - 29-Bit specific header file for GMLAN Library
foxdie 2:1a2cb289f24d 3
foxdie 2:1a2cb289f24d 4 GMLAN is a Controller Area Network Bus used in General Motors vehicles from
foxdie 2:1a2cb289f24d 5 roughly 2007-onwards. Its purpose is to allow various Electronic Control Units
foxdie 2:1a2cb289f24d 6 (aka ECUs) within a modern vehicle to share information and enact procedures.
foxdie 2:1a2cb289f24d 7
foxdie 2:1a2cb289f24d 8 An example of this would be communication between the HU (Head unit) and the
foxdie 2:1a2cb289f24d 9 DIC (Dashboard Information Cluster), when you adjust the volume up / down, this
foxdie 2:1a2cb289f24d 10 is reported to the cluster to be displayed.
foxdie 2:1a2cb289f24d 11
foxdie 2:1a2cb289f24d 12 It is the function of this library to "crack open" this world to allow anyone
foxdie 2:1a2cb289f24d 13 with only as little as a few hours of C++ programming under their belt to get
foxdie 2:1a2cb289f24d 14 started in what can sometimes seem a daunting world.
foxdie 2:1a2cb289f24d 15
foxdie 2:1a2cb289f24d 16 Jason Gaunt, 18th Feb 2013
foxdie 2:1a2cb289f24d 17 */
foxdie 2:1a2cb289f24d 18
foxdie 2:1a2cb289f24d 19 #ifndef GMLAN_29BIT_H
foxdie 2:1a2cb289f24d 20 #define GMLAN_29BIT_H
foxdie 2:1a2cb289f24d 21
foxdie 2:1a2cb289f24d 22 /* Known 29-Bit Arbitration IDs - periodically updated from the GMLAN Bible located at
foxdie 2:1a2cb289f24d 23 this address: http://is.gd/gmlanbible - credit to the authors on their changelog */
foxdie 2:1a2cb289f24d 24 #define GMLAN_ARBID_SYSTEM_POWER_MODE 0x1
foxdie 2:1a2cb289f24d 25 #define GMLAN_ARBID_SYSTEM_POWER_MODE_BACKUP 0x2
foxdie 2:1a2cb289f24d 26 #define GMLAN_ARBID_EASY_KEY_DISPLAY_COMMANDS 0x3
foxdie 2:1a2cb289f24d 27 #define GMLAN_ARBID_RFA_FUNCTION 0x4
foxdie 2:1a2cb289f24d 28 #define GMLAN_ARBID_TIRE_PRESSURE_STATUS_LS 0x5
foxdie 2:1a2cb289f24d 29 #define GMLAN_ARBID_MODULE_SUBSTITUTION_STATUS 0x6
foxdie 2:1a2cb289f24d 30 #define GMLAN_ARBID_ROLLOVER_STATUS 0x8
foxdie 2:1a2cb289f24d 31 #define GMLAN_ARBID_INFOTAINMENT_OPERATION_ALLOWED 0x9
foxdie 2:1a2cb289f24d 32 #define GMLAN_ARBID_TPM_DISPLAY_COMMANDS 0xA
foxdie 2:1a2cb289f24d 33 #define GMLAN_ARBID_PLATFORM_IMMOBILIZER_DATA 0xB
foxdie 2:1a2cb289f24d 34 #define GMLAN_ARBID_PLATFORM_IMMOBILIZER_PASSWORD 0xC
foxdie 2:1a2cb289f24d 35 #define GMLAN_ARBID_VEH_SECURITY_DISPLAY_COMMANDS 0xD
foxdie 2:1a2cb289f24d 36 #define GMLAN_ARBID_POWERTRAIN_IMMOBILIZER_DATA 0xE
foxdie 2:1a2cb289f24d 37 #define GMLAN_ARBID_CHIME_COMMAND 0xF
foxdie 2:1a2cb289f24d 38 #define GMLAN_ARBID_CHIME_STATUS 0x10
foxdie 2:1a2cb289f24d 39 #define GMLAN_ARBID_DIMMING_INFORMATION 0x11
foxdie 2:1a2cb289f24d 40 #define GMLAN_ARBID_VIN_DIGITS_2_TO_9 0x12
foxdie 2:1a2cb289f24d 41 #define GMLAN_ARBID_VIN_DIGITS_10_TO_17 0x13
foxdie 2:1a2cb289f24d 42 #define GMLAN_ARBID_HS_DEVICE_INFORMATION 0x14
foxdie 2:1a2cb289f24d 43 #define GMLAN_ARBID_AUTO_OCCUPANT_SENSING_ENABLED 0x16
foxdie 2:1a2cb289f24d 44 #define GMLAN_ARBID_DISPLAY_MEASUREMENT_SYSTEM 0x17
foxdie 2:1a2cb289f24d 45 #define GMLAN_ARBID_BATTERY_VOLTAGE 0x18
foxdie 2:1a2cb289f24d 46 #define GMLAN_ARBID_ROLLOVER_SENSING_ENABLED 0x19
foxdie 2:1a2cb289f24d 47 #define GMLAN_ARBID_DRIVER_DOOR_STATUS 0x1B
foxdie 2:1a2cb289f24d 48 #define GMLAN_ARBID_PASSENGER_DOOR_STATUS 0x1C
foxdie 2:1a2cb289f24d 49 #define GMLAN_ARBID_LEFT_REAR_DOOR_STATUS 0x1D
foxdie 2:1a2cb289f24d 50 #define GMLAN_ARBID_RIGHT_REAR_DOOR_STATUS 0x1E
foxdie 2:1a2cb289f24d 51 #define GMLAN_ARBID_PERS_LIGHT_LOCK_STATUS 0x1F
foxdie 2:1a2cb289f24d 52 #define GMLAN_ARBID_PERS_LIGHT_LOCK_REQUEST 0x20
foxdie 2:1a2cb289f24d 53 #define GMLAN_ARBID_LIGHTING_STATUS 0x21
foxdie 2:1a2cb289f24d 54 #define GMLAN_ARBID_ENHANCED_SERVICES_REQUEST 0x22
foxdie 2:1a2cb289f24d 55 #define GMLAN_ARBID_PROGRAMMING_EVENT_REQUESTS 0x23
foxdie 2:1a2cb289f24d 56 #define GMLAN_ARBID_EXPORT_MODULE_STATUS 0x24
foxdie 2:1a2cb289f24d 57 #define GMLAN_ARBID_TRANSMISSION_GEAR_INFORMATION 0x25
foxdie 2:1a2cb289f24d 58 #define GMLAN_ARBID_FUEL_INFORMATION 0x26
foxdie 2:1a2cb289f24d 59 #define GMLAN_ARBID_VEHICLE_ODO_BRK_WASH_LEVEL 0x27
foxdie 2:1a2cb289f24d 60 #define GMLAN_ARBID_VEHICLE_SPEED_INFORMATION 0x28
foxdie 2:1a2cb289f24d 61 #define GMLAN_ARBID_ENGINE_INFORMATION_1 0x29
foxdie 2:1a2cb289f24d 62 #define GMLAN_ARBID_AUTO_HIGH_BEAM_STATUS 0x2A
foxdie 2:1a2cb289f24d 63 #define GMLAN_ARBID_DOOR_LOCK_COMMAND 0x2B
foxdie 2:1a2cb289f24d 64 #define GMLAN_ARBID_DRIVER_DOOR_LOCK_SWITCH_STATUS 0x2C
foxdie 2:1a2cb289f24d 65 #define GMLAN_ARBID_PASS_DOOR_LOCK_SWITCH_STATUS 0x2D
foxdie 2:1a2cb289f24d 66 #define GMLAN_ARBID_BRAKE_AND_CRUISE_CONTROL_STATUS 0x2F
foxdie 2:1a2cb289f24d 67 #define GMLAN_ARBID_REAR_CLOSURE_STATUS 0x30
foxdie 2:1a2cb289f24d 68 #define GMLAN_ARBID_ENGINE_INFORMATION_3 0x32
foxdie 2:1a2cb289f24d 69 #define GMLAN_ARBID_ENGINE_INFORMATION_2 0x37
foxdie 2:1a2cb289f24d 70 #define GMLAN_ARBID_REMOTE_START_STATUS 0x38
foxdie 2:1a2cb289f24d 71 #define GMLAN_ARBID_REAR_CLOSURE_RELEASE_SWITCH 0x39
foxdie 2:1a2cb289f24d 72 #define GMLAN_ARBID_MEMORY_SWITCH_STATUS 0x3C
foxdie 2:1a2cb289f24d 73 #define GMLAN_ARBID_OCCUPANT_PROTECTION_SYCH 0x3D
foxdie 2:1a2cb289f24d 74 #define GMLAN_ARBID_WINDOW_MOTION_REQUEST 0x40
foxdie 2:1a2cb289f24d 75 #define GMLAN_ARBID_MIRROR_MOVEMENT_REQUEST 0x41
foxdie 2:1a2cb289f24d 76 #define GMLAN_ARBID_PERS_DRIVER_POSITION_STATUS 0x42
foxdie 2:1a2cb289f24d 77 #define GMLAN_ARBID_PERS_DRIVER_POSITION_REQUEST 0x43
foxdie 2:1a2cb289f24d 78 #define GMLAN_ARBID_PERS_CHIME_STATUS 0x44
foxdie 2:1a2cb289f24d 79 #define GMLAN_ARBID_PERS_CHIME_REQUEST 0x45
foxdie 2:1a2cb289f24d 80 #define GMLAN_ARBID_ROLLOVER_SENSOR_IDENTIFIER 0x48
foxdie 2:1a2cb289f24d 81 #define GMLAN_ARBID_AUTO_OCCUPANT_SENSOR_IDENTIFIER 0x4A
foxdie 2:1a2cb289f24d 82 #define GMLAN_ARBID_DRIVER_IDENTIFIER_LS 0x50
foxdie 2:1a2cb289f24d 83 #define GMLAN_ARBID_LEVELING_AND_SUSPENSION_STATUS 0x51
foxdie 2:1a2cb289f24d 84 #define GMLAN_ARBID_GPS_DATE_AND_TIME 0x53
foxdie 2:1a2cb289f24d 85 #define GMLAN_ARBID_TIME_OF_DAY 0x54
foxdie 2:1a2cb289f24d 86 #define GMLAN_ARBID_GPS_GEOGRAPHICAL_POSITION 0x55
foxdie 2:1a2cb289f24d 87 #define GMLAN_ARBID_GPS_ELEVATION_AND_HEADING 0x56
foxdie 2:1a2cb289f24d 88 #define GMLAN_ARBID_REAR_SEATBELT_STATUS 0x58
foxdie 2:1a2cb289f24d 89 #define GMLAN_ARBID_STEERING_WHEEL_ANGLE 0x5B
foxdie 2:1a2cb289f24d 90 #define GMLAN_ARBID_CLIMATE_CONTROL 0x60
foxdie 2:1a2cb289f24d 91 #define GMLAN_ARBID_OUTSIDE_AIR_TEMP_CORRECTED 0x61
foxdie 2:1a2cb289f24d 92 #define GMLAN_ARBID_ANTILOCK_BRAKE_AND_TC_STATUS 0x62
foxdie 2:1a2cb289f24d 93 #define GMLAN_ARBID_CLIMATE_CONTROL_GENERAL_STATUS_2 0x64
foxdie 2:1a2cb289f24d 94 #define GMLAN_ARBID_STEERING_WHEEL_CONTROL_SWITCHES 0x68
foxdie 2:1a2cb289f24d 95 #define GMLAN_ARBID_REAR_CLIMATE_CONTROL_STATUS 0x6A
foxdie 2:1a2cb289f24d 96 #define GMLAN_ARBID_RR_CLIMATE_CONTROL_RMT_COMMAND 0x6B
foxdie 2:1a2cb289f24d 97 #define GMLAN_ARBID_HEAD_UP_DISPLAY_STATUS 0x6D
foxdie 2:1a2cb289f24d 98 #define GMLAN_ARBID_ALARM_CLOCK_STATUS_LS 0x70
foxdie 2:1a2cb289f24d 99 #define GMLAN_ARBID_CLIMATE_CONTROL_BUTTONS 0x71
foxdie 2:1a2cb289f24d 100 #define GMLAN_ARBID_LEFT_CLIMATE_CONTROL_TEMP_DIAL 0x72
foxdie 2:1a2cb289f24d 101 #define GMLAN_ARBID_RIGHT_CLIMATE_CONTROL_TEMP_DIAL 0x73
foxdie 2:1a2cb289f24d 102 #define GMLAN_ARBID_CLIMATE_CONTROL_EXTENDED_STATUS 0x75
foxdie 2:1a2cb289f24d 103 #define GMLAN_ARBID_PERS_PARKING_ASSIST_REQ 0x8B
foxdie 2:1a2cb289f24d 104 #define GMLAN_ARBID_PERS_PARKING_ASSIST_STATUS 0x8C
foxdie 2:1a2cb289f24d 105 #define GMLAN_ARBID_PARKING_ASSISTANCE_STATUS 0x8D
foxdie 2:1a2cb289f24d 106 #define GMLAN_ARBID_PARK_ASSIST_REAR_DISTANCE 0x8E
foxdie 2:1a2cb289f24d 107 #define GMLAN_ARBID_PARK_ASSIST_FRONT_DISTANCE 0x8F
foxdie 2:1a2cb289f24d 108 #define GMLAN_ARBID_AIRBAG_IMPACT_DATA 0x90
foxdie 2:1a2cb289f24d 109 #define GMLAN_ARBID_AIRBAG_IMPACT_DATA_1 0x94
foxdie 2:1a2cb289f24d 110 #define GMLAN_ARBID_AIRBAG_IMPACT_DATA_2 0x95
foxdie 2:1a2cb289f24d 111 #define GMLAN_ARBID_AIRBAG_IMPACT_DATA_3 0x96
foxdie 2:1a2cb289f24d 112 #define GMLAN_ARBID_AIRBAG_IMPACT_DATA_4 0x97
foxdie 2:1a2cb289f24d 113 #define GMLAN_ARBID_AIRBAG_INDICATIONS 0x98
foxdie 2:1a2cb289f24d 114 #define GMLAN_ARBID_MEMORY_RECALL_IMPACT_DISABLE 0x99
foxdie 2:1a2cb289f24d 115 #define GMLAN_ARBID_ENG_TRANS_OIL_LIFE_RESET_REQ 0x9A
foxdie 2:1a2cb289f24d 116 #define GMLAN_ARBID_AOS_CONNECTION 0x9C
foxdie 2:1a2cb289f24d 117 #define GMLAN_ARBID_DIGITAL_AUDIO_RECEIVER_STATUS 0x9D
foxdie 2:1a2cb289f24d 118 #define GMLAN_ARBID_REAR_SEAT_ENTERTAINMENT_STATUS 0x9E
foxdie 2:1a2cb289f24d 119 #define GMLAN_ARBID_PERS_MIRROR_TILT_STATUS 0xA0
foxdie 2:1a2cb289f24d 120 #define GMLAN_ARBID_PERS_MIRROR_TILT_REQ 0xA1
foxdie 2:1a2cb289f24d 121 #define GMLAN_ARBID_PERS_WINDOW_LOCKOUT_STATUS 0xA2
foxdie 2:1a2cb289f24d 122 #define GMLAN_ARBID_PERS_WINDOW_LOCKOUT_REQ 0xA3
foxdie 2:1a2cb289f24d 123 #define GMLAN_ARBID_PERSONALIZATION_INFORMATION 0xA4
foxdie 2:1a2cb289f24d 124 #define GMLAN_ARBID_PHONE_STATUS 0x120
foxdie 2:1a2cb289f24d 125 #define GMLAN_ARBID_ADAPTIVE_CRUISE_DISPLAY 0x124
foxdie 2:1a2cb289f24d 126 #define GMLAN_ARBID_CONTENT_THEFT_SENSOR_DISABLE_REQ 0x12A
foxdie 2:1a2cb289f24d 127 #define GMLAN_ARBID_CONTENT_THEFT_SENSOR_STATUS 0x130
foxdie 2:1a2cb289f24d 128 #define GMLAN_ARBID_SOD_LEFT_STATUS 0x140
foxdie 2:1a2cb289f24d 129 #define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_COMMAND 0x141
foxdie 2:1a2cb289f24d 130 #define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_SETTING 0x142
foxdie 2:1a2cb289f24d 131 #define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_MUTE 0x143
foxdie 2:1a2cb289f24d 132 #define GMLAN_ARBID_SOD_RIGHT_STATUS 0x144
foxdie 2:1a2cb289f24d 133 #define GMLAN_ARBID_AUDIO_MASTER_ARBITRATION_COMMAND 0x145
foxdie 2:1a2cb289f24d 134 #define GMLAN_ARBID_PHONE_DIAL_COMMAND_1 0x146
foxdie 2:1a2cb289f24d 135 #define GMLAN_ARBID_PHONE_DIAL_COMMAND_2 0x147
foxdie 2:1a2cb289f24d 136 #define GMLAN_ARBID_AUXILIARY_NAV_DATA_DISPLAY 0x148
foxdie 2:1a2cb289f24d 137 #define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_CONTROL 0x149
foxdie 2:1a2cb289f24d 138 #define GMLAN_ARBID_REMOTE_CHANGER_COMMAND 0x14A
foxdie 2:1a2cb289f24d 139 #define GMLAN_ARBID_ADVANCED_REMOTE_RECEIVER_CONTROL 0x14B
foxdie 2:1a2cb289f24d 140 #define GMLAN_ARBID_VOICE_RECOGNITION_STATUS 0x14C
foxdie 2:1a2cb289f24d 141 #define GMLAN_ARBID_DRIVER_SEAT_TEMP_CONTROL 0x150
foxdie 2:1a2cb289f24d 142 #define GMLAN_ARBID_DRIVER_SEAT_TEMP_INDICATION 0x151
foxdie 2:1a2cb289f24d 143 #define GMLAN_ARBID_PASS_SEAT_TEMP_CONTROL 0x152
foxdie 2:1a2cb289f24d 144 #define GMLAN_ARBID_PASS_SEAT_TEMP_INDICATION 0x153
foxdie 2:1a2cb289f24d 145 #define GMLAN_ARBID_RR_LEFT_SEAT_TEMP_CONTROL 0x154
foxdie 2:1a2cb289f24d 146 #define GMLAN_ARBID_RR_LEFT_SEAT_TEMP_INDICATION 0x155
foxdie 2:1a2cb289f24d 147 #define GMLAN_ARBID_RR_RIGHT_SEAT_TEMP_CONTROL 0x156
foxdie 2:1a2cb289f24d 148 #define GMLAN_ARBID_RR_RIGHT_SEAT_TEMP_INDICATION 0x157
foxdie 2:1a2cb289f24d 149 #define GMLAN_ARBID_MEMORY_COMMAND 0x160
foxdie 2:1a2cb289f24d 150 #define GMLAN_ARBID_DRIVER_MIRROR_MOTION 0x168
foxdie 2:1a2cb289f24d 151 #define GMLAN_ARBID_PASENGER_MIRROR_MOTION 0x169
foxdie 2:1a2cb289f24d 152 #define GMLAN_ARBID_ARB_TEXT_DISPLAY_GEN_ATTRIBUTES 0x180
foxdie 2:1a2cb289f24d 153 #define GMLAN_ARBID_ARB_TEXT_DISPLAY_LINE_ATTRIBUTES 0x181
foxdie 2:1a2cb289f24d 154 #define GMLAN_ARBID_ARB_TEXT_REQ_SET_DISP_ICON 0x182
foxdie 2:1a2cb289f24d 155 #define GMLAN_ARBID_ARB_TEXT_DISPLAY_STATUS 0x183
foxdie 2:1a2cb289f24d 156 #define GMLAN_ARBID_ARB_TEXT_DISPLAY_MENU_ACTION 0x184
foxdie 2:1a2cb289f24d 157 #define GMLAN_ARBID_ARB_TEXT_REQ_SET_DISP_PARAMETERS 0x185
foxdie 2:1a2cb289f24d 158 #define GMLAN_ARBID_ARB_TEXT_REQ_SET_DISPLAY_TEXT 0x186
foxdie 2:1a2cb289f24d 159 #define GMLAN_ARBID_ARB_TEXT_REQ_DOWNLOAD_ICON_DATA 0x187
foxdie 2:1a2cb289f24d 160 #define GMLAN_ARBID_REAR_SEAT_AUDIO_STATUS 0x188
foxdie 2:1a2cb289f24d 161 #define GMLAN_ARBID_AUDIO_AMPLIFIER_STATUS 0x189
foxdie 2:1a2cb289f24d 162 #define GMLAN_ARBID_REAR_SEAT_AUDIO_COMMAND_1 0x18A
foxdie 2:1a2cb289f24d 163 #define GMLAN_ARBID_REMOTE_CHANGER_STATUS 0x18B
foxdie 2:1a2cb289f24d 164 #define GMLAN_ARBID_REMOTE_CHANGER_MEDIA_STATUS 0x18C
foxdie 2:1a2cb289f24d 165 #define GMLAN_ARBID_RSE_HEADPHONE_AUDIO_STATUS 0x18D
foxdie 2:1a2cb289f24d 166 #define GMLAN_ARBID_AUDIO_SOURCE_STATUS 0x18E
foxdie 2:1a2cb289f24d 167 #define GMLAN_ARBID_REMOTE_RECEIVER_STATUS 0x18F
foxdie 2:1a2cb289f24d 168 #define GMLAN_ARBID_ARB_TEXT_DISPLAY_ICON_ATTRIBUTES 0x190
foxdie 2:1a2cb289f24d 169 #define GMLAN_ARBID_VIDEO_SOURCE_DEVICE_STATUS 0x191
foxdie 2:1a2cb289f24d 170 #define GMLAN_ARBID_REMOTE_RECEIVER_CHANNEL_STATUS 0x192
foxdie 2:1a2cb289f24d 171 #define GMLAN_ARBID_REMOTE_RECEIVER_PRESET_INFO 0x193
foxdie 2:1a2cb289f24d 172 #define GMLAN_ARBID_REMOTE_RECEIVER_STATUS_2 0x194
foxdie 2:1a2cb289f24d 173 #define GMLAN_ARBID_TV_TUNER_STATUS 0x195
foxdie 2:1a2cb289f24d 174 #define GMLAN_ARBID_VIDEO_MASTER_ARB_COMMAND 0x196
foxdie 2:1a2cb289f24d 175 #define GMLAN_ARBID_REMOTE_RECEIVER_TV_STATION 0x197
foxdie 2:1a2cb289f24d 176 #define GMLAN_ARBID_REMOTE_RECEIVER_CONTROL 0x198
foxdie 2:1a2cb289f24d 177 #define GMLAN_ARBID_ONSTAR_VOICE_PROMPT_REQUEST 0x1B0
foxdie 2:1a2cb289f24d 178 #define GMLAN_ARBID_ONSTAR_MIN_DIGITS_1_15 0x1B1
foxdie 2:1a2cb289f24d 179 #define GMLAN_ARBID_ONSTAR_MIN_DIGITS_16_30 0x1B2
foxdie 2:1a2cb289f24d 180 #define GMLAN_ARBID_ONSTAR_VOICE_PROMPT_STATUS 0x1B3
foxdie 2:1a2cb289f24d 181 #define GMLAN_ARBID_COLUMN_LOCK_COMMAND 0x1F0
foxdie 2:1a2cb289f24d 182 #define GMLAN_ARBID_COLUMN_LOCK_STATUS 0x200
foxdie 2:1a2cb289f24d 183 #define GMLAN_ARBID_AIR_CONDITIONING_CONTROL 0x278
foxdie 2:1a2cb289f24d 184 #define GMLAN_ARBID_ALARM_CLOCK_REQUEST_2 0x802
foxdie 2:1a2cb289f24d 185
foxdie 2:1a2cb289f24d 186 #endif