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 ;)

Revision:
2:1a2cb289f24d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GMLAN_29bit.h	Tue Feb 19 22:28:25 2013 +0000
@@ -0,0 +1,186 @@
+/*
+GMLAN_29bit.h - 29-Bit specific header file for GMLAN Library
+
+GMLAN is a Controller Area Network Bus used in General Motors vehicles from
+roughly 2007-onwards. Its purpose is to allow various Electronic Control Units
+(aka ECUs) within a modern vehicle to share information and enact procedures.
+
+An example of this would be communication between the HU (Head unit) and the
+DIC (Dashboard Information Cluster), when you adjust the volume up / down, this
+is reported to the cluster to be displayed.
+
+It is the function of this library to "crack open" this world to allow anyone
+with only as little as a few hours of C++ programming under their belt to get
+started in what can sometimes seem a daunting world.
+
+Jason Gaunt, 18th Feb 2013
+*/
+
+#ifndef GMLAN_29BIT_H
+#define GMLAN_29BIT_H
+
+/* Known 29-Bit Arbitration IDs - periodically updated from the GMLAN Bible located at
+this address: http://is.gd/gmlanbible - credit to the authors on their changelog */
+#define GMLAN_ARBID_SYSTEM_POWER_MODE 0x1
+#define GMLAN_ARBID_SYSTEM_POWER_MODE_BACKUP 0x2
+#define GMLAN_ARBID_EASY_KEY_DISPLAY_COMMANDS 0x3
+#define GMLAN_ARBID_RFA_FUNCTION 0x4
+#define GMLAN_ARBID_TIRE_PRESSURE_STATUS_LS 0x5
+#define GMLAN_ARBID_MODULE_SUBSTITUTION_STATUS 0x6
+#define GMLAN_ARBID_ROLLOVER_STATUS 0x8
+#define GMLAN_ARBID_INFOTAINMENT_OPERATION_ALLOWED 0x9
+#define GMLAN_ARBID_TPM_DISPLAY_COMMANDS 0xA
+#define GMLAN_ARBID_PLATFORM_IMMOBILIZER_DATA 0xB
+#define GMLAN_ARBID_PLATFORM_IMMOBILIZER_PASSWORD 0xC
+#define GMLAN_ARBID_VEH_SECURITY_DISPLAY_COMMANDS 0xD
+#define GMLAN_ARBID_POWERTRAIN_IMMOBILIZER_DATA 0xE
+#define GMLAN_ARBID_CHIME_COMMAND 0xF
+#define GMLAN_ARBID_CHIME_STATUS 0x10
+#define GMLAN_ARBID_DIMMING_INFORMATION 0x11
+#define GMLAN_ARBID_VIN_DIGITS_2_TO_9 0x12
+#define GMLAN_ARBID_VIN_DIGITS_10_TO_17 0x13
+#define GMLAN_ARBID_HS_DEVICE_INFORMATION 0x14
+#define GMLAN_ARBID_AUTO_OCCUPANT_SENSING_ENABLED 0x16
+#define GMLAN_ARBID_DISPLAY_MEASUREMENT_SYSTEM 0x17
+#define GMLAN_ARBID_BATTERY_VOLTAGE 0x18
+#define GMLAN_ARBID_ROLLOVER_SENSING_ENABLED 0x19
+#define GMLAN_ARBID_DRIVER_DOOR_STATUS 0x1B
+#define GMLAN_ARBID_PASSENGER_DOOR_STATUS 0x1C
+#define GMLAN_ARBID_LEFT_REAR_DOOR_STATUS 0x1D
+#define GMLAN_ARBID_RIGHT_REAR_DOOR_STATUS 0x1E
+#define GMLAN_ARBID_PERS_LIGHT_LOCK_STATUS 0x1F
+#define GMLAN_ARBID_PERS_LIGHT_LOCK_REQUEST 0x20
+#define GMLAN_ARBID_LIGHTING_STATUS 0x21
+#define GMLAN_ARBID_ENHANCED_SERVICES_REQUEST 0x22
+#define GMLAN_ARBID_PROGRAMMING_EVENT_REQUESTS 0x23
+#define GMLAN_ARBID_EXPORT_MODULE_STATUS 0x24
+#define GMLAN_ARBID_TRANSMISSION_GEAR_INFORMATION 0x25
+#define GMLAN_ARBID_FUEL_INFORMATION 0x26
+#define GMLAN_ARBID_VEHICLE_ODO_BRK_WASH_LEVEL 0x27
+#define GMLAN_ARBID_VEHICLE_SPEED_INFORMATION 0x28
+#define GMLAN_ARBID_ENGINE_INFORMATION_1 0x29
+#define GMLAN_ARBID_AUTO_HIGH_BEAM_STATUS 0x2A
+#define GMLAN_ARBID_DOOR_LOCK_COMMAND 0x2B
+#define GMLAN_ARBID_DRIVER_DOOR_LOCK_SWITCH_STATUS 0x2C
+#define GMLAN_ARBID_PASS_DOOR_LOCK_SWITCH_STATUS 0x2D
+#define GMLAN_ARBID_BRAKE_AND_CRUISE_CONTROL_STATUS 0x2F
+#define GMLAN_ARBID_REAR_CLOSURE_STATUS 0x30
+#define GMLAN_ARBID_ENGINE_INFORMATION_3 0x32
+#define GMLAN_ARBID_ENGINE_INFORMATION_2 0x37
+#define GMLAN_ARBID_REMOTE_START_STATUS 0x38
+#define GMLAN_ARBID_REAR_CLOSURE_RELEASE_SWITCH 0x39
+#define GMLAN_ARBID_MEMORY_SWITCH_STATUS 0x3C
+#define GMLAN_ARBID_OCCUPANT_PROTECTION_SYCH 0x3D
+#define GMLAN_ARBID_WINDOW_MOTION_REQUEST 0x40
+#define GMLAN_ARBID_MIRROR_MOVEMENT_REQUEST 0x41
+#define GMLAN_ARBID_PERS_DRIVER_POSITION_STATUS 0x42
+#define GMLAN_ARBID_PERS_DRIVER_POSITION_REQUEST 0x43
+#define GMLAN_ARBID_PERS_CHIME_STATUS 0x44
+#define GMLAN_ARBID_PERS_CHIME_REQUEST 0x45
+#define GMLAN_ARBID_ROLLOVER_SENSOR_IDENTIFIER 0x48
+#define GMLAN_ARBID_AUTO_OCCUPANT_SENSOR_IDENTIFIER 0x4A
+#define GMLAN_ARBID_DRIVER_IDENTIFIER_LS 0x50
+#define GMLAN_ARBID_LEVELING_AND_SUSPENSION_STATUS 0x51
+#define GMLAN_ARBID_GPS_DATE_AND_TIME 0x53
+#define GMLAN_ARBID_TIME_OF_DAY 0x54
+#define GMLAN_ARBID_GPS_GEOGRAPHICAL_POSITION 0x55
+#define GMLAN_ARBID_GPS_ELEVATION_AND_HEADING 0x56
+#define GMLAN_ARBID_REAR_SEATBELT_STATUS 0x58
+#define GMLAN_ARBID_STEERING_WHEEL_ANGLE 0x5B
+#define GMLAN_ARBID_CLIMATE_CONTROL 0x60
+#define GMLAN_ARBID_OUTSIDE_AIR_TEMP_CORRECTED 0x61
+#define GMLAN_ARBID_ANTILOCK_BRAKE_AND_TC_STATUS 0x62
+#define GMLAN_ARBID_CLIMATE_CONTROL_GENERAL_STATUS_2 0x64
+#define GMLAN_ARBID_STEERING_WHEEL_CONTROL_SWITCHES 0x68
+#define GMLAN_ARBID_REAR_CLIMATE_CONTROL_STATUS 0x6A
+#define GMLAN_ARBID_RR_CLIMATE_CONTROL_RMT_COMMAND 0x6B
+#define GMLAN_ARBID_HEAD_UP_DISPLAY_STATUS 0x6D
+#define GMLAN_ARBID_ALARM_CLOCK_STATUS_LS 0x70
+#define GMLAN_ARBID_CLIMATE_CONTROL_BUTTONS 0x71
+#define GMLAN_ARBID_LEFT_CLIMATE_CONTROL_TEMP_DIAL 0x72
+#define GMLAN_ARBID_RIGHT_CLIMATE_CONTROL_TEMP_DIAL 0x73
+#define GMLAN_ARBID_CLIMATE_CONTROL_EXTENDED_STATUS 0x75
+#define GMLAN_ARBID_PERS_PARKING_ASSIST_REQ 0x8B
+#define GMLAN_ARBID_PERS_PARKING_ASSIST_STATUS 0x8C
+#define GMLAN_ARBID_PARKING_ASSISTANCE_STATUS 0x8D
+#define GMLAN_ARBID_PARK_ASSIST_REAR_DISTANCE 0x8E
+#define GMLAN_ARBID_PARK_ASSIST_FRONT_DISTANCE 0x8F
+#define GMLAN_ARBID_AIRBAG_IMPACT_DATA 0x90
+#define GMLAN_ARBID_AIRBAG_IMPACT_DATA_1 0x94
+#define GMLAN_ARBID_AIRBAG_IMPACT_DATA_2 0x95
+#define GMLAN_ARBID_AIRBAG_IMPACT_DATA_3 0x96
+#define GMLAN_ARBID_AIRBAG_IMPACT_DATA_4 0x97
+#define GMLAN_ARBID_AIRBAG_INDICATIONS 0x98
+#define GMLAN_ARBID_MEMORY_RECALL_IMPACT_DISABLE 0x99
+#define GMLAN_ARBID_ENG_TRANS_OIL_LIFE_RESET_REQ 0x9A
+#define GMLAN_ARBID_AOS_CONNECTION 0x9C
+#define GMLAN_ARBID_DIGITAL_AUDIO_RECEIVER_STATUS 0x9D
+#define GMLAN_ARBID_REAR_SEAT_ENTERTAINMENT_STATUS 0x9E
+#define GMLAN_ARBID_PERS_MIRROR_TILT_STATUS 0xA0
+#define GMLAN_ARBID_PERS_MIRROR_TILT_REQ 0xA1
+#define GMLAN_ARBID_PERS_WINDOW_LOCKOUT_STATUS 0xA2
+#define GMLAN_ARBID_PERS_WINDOW_LOCKOUT_REQ 0xA3
+#define GMLAN_ARBID_PERSONALIZATION_INFORMATION 0xA4
+#define GMLAN_ARBID_PHONE_STATUS 0x120
+#define GMLAN_ARBID_ADAPTIVE_CRUISE_DISPLAY 0x124
+#define GMLAN_ARBID_CONTENT_THEFT_SENSOR_DISABLE_REQ 0x12A
+#define GMLAN_ARBID_CONTENT_THEFT_SENSOR_STATUS 0x130
+#define GMLAN_ARBID_SOD_LEFT_STATUS 0x140
+#define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_COMMAND 0x141
+#define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_SETTING 0x142
+#define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_MUTE 0x143
+#define GMLAN_ARBID_SOD_RIGHT_STATUS 0x144
+#define GMLAN_ARBID_AUDIO_MASTER_ARBITRATION_COMMAND 0x145
+#define GMLAN_ARBID_PHONE_DIAL_COMMAND_1 0x146
+#define GMLAN_ARBID_PHONE_DIAL_COMMAND_2 0x147
+#define GMLAN_ARBID_AUXILIARY_NAV_DATA_DISPLAY 0x148
+#define GMLAN_ARBID_AUDIO_MASTER_AMPLIFIER_CONTROL 0x149
+#define GMLAN_ARBID_REMOTE_CHANGER_COMMAND 0x14A
+#define GMLAN_ARBID_ADVANCED_REMOTE_RECEIVER_CONTROL 0x14B
+#define GMLAN_ARBID_VOICE_RECOGNITION_STATUS 0x14C
+#define GMLAN_ARBID_DRIVER_SEAT_TEMP_CONTROL 0x150
+#define GMLAN_ARBID_DRIVER_SEAT_TEMP_INDICATION 0x151
+#define GMLAN_ARBID_PASS_SEAT_TEMP_CONTROL 0x152
+#define GMLAN_ARBID_PASS_SEAT_TEMP_INDICATION 0x153
+#define GMLAN_ARBID_RR_LEFT_SEAT_TEMP_CONTROL 0x154
+#define GMLAN_ARBID_RR_LEFT_SEAT_TEMP_INDICATION 0x155
+#define GMLAN_ARBID_RR_RIGHT_SEAT_TEMP_CONTROL 0x156
+#define GMLAN_ARBID_RR_RIGHT_SEAT_TEMP_INDICATION 0x157
+#define GMLAN_ARBID_MEMORY_COMMAND 0x160
+#define GMLAN_ARBID_DRIVER_MIRROR_MOTION 0x168
+#define GMLAN_ARBID_PASENGER_MIRROR_MOTION 0x169
+#define GMLAN_ARBID_ARB_TEXT_DISPLAY_GEN_ATTRIBUTES 0x180
+#define GMLAN_ARBID_ARB_TEXT_DISPLAY_LINE_ATTRIBUTES 0x181
+#define GMLAN_ARBID_ARB_TEXT_REQ_SET_DISP_ICON 0x182
+#define GMLAN_ARBID_ARB_TEXT_DISPLAY_STATUS 0x183
+#define GMLAN_ARBID_ARB_TEXT_DISPLAY_MENU_ACTION 0x184
+#define GMLAN_ARBID_ARB_TEXT_REQ_SET_DISP_PARAMETERS 0x185
+#define GMLAN_ARBID_ARB_TEXT_REQ_SET_DISPLAY_TEXT 0x186
+#define GMLAN_ARBID_ARB_TEXT_REQ_DOWNLOAD_ICON_DATA 0x187
+#define GMLAN_ARBID_REAR_SEAT_AUDIO_STATUS 0x188
+#define GMLAN_ARBID_AUDIO_AMPLIFIER_STATUS 0x189
+#define GMLAN_ARBID_REAR_SEAT_AUDIO_COMMAND_1 0x18A
+#define GMLAN_ARBID_REMOTE_CHANGER_STATUS 0x18B
+#define GMLAN_ARBID_REMOTE_CHANGER_MEDIA_STATUS 0x18C
+#define GMLAN_ARBID_RSE_HEADPHONE_AUDIO_STATUS 0x18D
+#define GMLAN_ARBID_AUDIO_SOURCE_STATUS 0x18E
+#define GMLAN_ARBID_REMOTE_RECEIVER_STATUS 0x18F
+#define GMLAN_ARBID_ARB_TEXT_DISPLAY_ICON_ATTRIBUTES 0x190
+#define GMLAN_ARBID_VIDEO_SOURCE_DEVICE_STATUS 0x191
+#define GMLAN_ARBID_REMOTE_RECEIVER_CHANNEL_STATUS 0x192
+#define GMLAN_ARBID_REMOTE_RECEIVER_PRESET_INFO 0x193
+#define GMLAN_ARBID_REMOTE_RECEIVER_STATUS_2 0x194
+#define GMLAN_ARBID_TV_TUNER_STATUS 0x195
+#define GMLAN_ARBID_VIDEO_MASTER_ARB_COMMAND 0x196
+#define GMLAN_ARBID_REMOTE_RECEIVER_TV_STATION 0x197
+#define GMLAN_ARBID_REMOTE_RECEIVER_CONTROL 0x198
+#define GMLAN_ARBID_ONSTAR_VOICE_PROMPT_REQUEST 0x1B0
+#define GMLAN_ARBID_ONSTAR_MIN_DIGITS_1_15 0x1B1
+#define GMLAN_ARBID_ONSTAR_MIN_DIGITS_16_30 0x1B2
+#define GMLAN_ARBID_ONSTAR_VOICE_PROMPT_STATUS 0x1B3
+#define GMLAN_ARBID_COLUMN_LOCK_COMMAND 0x1F0
+#define GMLAN_ARBID_COLUMN_LOCK_STATUS 0x200
+#define GMLAN_ARBID_AIR_CONDITIONING_CONTROL 0x278
+#define GMLAN_ARBID_ALARM_CLOCK_REQUEST_2 0x802
+
+#endif
\ No newline at end of file