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 ;)
GMLAN_11bit.h@9:4af02032daeb, 2013-04-08 (annotated)
- Committer:
- foxdie
- Date:
- Mon Apr 08 11:31:12 2013 +0000
- Revision:
- 9:4af02032daeb
- Parent:
- 6:32592425aa57
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?
User | Revision | Line number | New contents of line |
---|---|---|---|
foxdie | 4:486fec88517e | 1 | /* |
foxdie | 4:486fec88517e | 2 | GMLAN_11bit.h - 11-Bit specific header file for GMLAN Library |
foxdie | 4:486fec88517e | 3 | |
foxdie | 4:486fec88517e | 4 | GMLAN is a Controller Area Network Bus used in General Motors vehicles from |
foxdie | 4:486fec88517e | 5 | roughly 2007-onwards. Its purpose is to allow various Electronic Control Units |
foxdie | 4:486fec88517e | 6 | (aka ECUs) within a modern vehicle to share information and enact procedures. |
foxdie | 4:486fec88517e | 7 | |
foxdie | 4:486fec88517e | 8 | An example of this would be communication between the HU (Head unit) and the |
foxdie | 4:486fec88517e | 9 | DIC (Dashboard Information Cluster), when you adjust the volume up / down, this |
foxdie | 4:486fec88517e | 10 | is reported to the cluster to be displayed. |
foxdie | 4:486fec88517e | 11 | |
foxdie | 4:486fec88517e | 12 | It is the function of this library to "crack open" this world to allow anyone |
foxdie | 4:486fec88517e | 13 | with only as little as a few hours of C++ programming under their belt to get |
foxdie | 4:486fec88517e | 14 | started in what can sometimes seem a daunting world. |
foxdie | 4:486fec88517e | 15 | |
foxdie | 4:486fec88517e | 16 | Jason Gaunt, 18th Feb 2013 |
foxdie | 4:486fec88517e | 17 | */ |
foxdie | 4:486fec88517e | 18 | |
foxdie | 4:486fec88517e | 19 | #ifndef GMLAN_11BIT_H |
foxdie | 4:486fec88517e | 20 | #define GMLAN_11BIT_H |
foxdie | 4:486fec88517e | 21 | |
foxdie | 6:32592425aa57 | 22 | // CAN IDs |
foxdie | 4:486fec88517e | 23 | #define GMLAN_INITIAL_WAKE_UP_REQUEST 0x100 |
foxdie | 4:486fec88517e | 24 | #define GMLAN_REQUEST_TO_ALL_NODES 0x101 |
foxdie | 4:486fec88517e | 25 | #define GMLAN_DIAGNOSTIC_REQUEST 0x102 |
foxdie | 4:486fec88517e | 26 | #define GMLAN_TO_RESERVED_REQUEST 0x240 |
foxdie | 4:486fec88517e | 27 | #define GMLAN_TO_BCM 0x241 |
foxdie | 4:486fec88517e | 28 | #define GMLAN_TO_TDM 0x242 |
foxdie | 4:486fec88517e | 29 | #define GMLAN_TO_EBCM 0x243 |
foxdie | 4:486fec88517e | 30 | #define GMLAN_TO_EHU 0x244 |
foxdie | 4:486fec88517e | 31 | #define GMLAN_TO_SIC 0x246 |
foxdie | 4:486fec88517e | 32 | #define GMLAN_TO_SDC 0x247 |
foxdie | 4:486fec88517e | 33 | #define GMLAN_TO_IPC 0x24C |
foxdie | 4:486fec88517e | 34 | #define GMLAN_TO_HVAC 0x251 |
foxdie | 4:486fec88517e | 35 | #define GMLAN_TO_RFA 0x258 |
foxdie | 4:486fec88517e | 36 | #define GMLAN_SF_FROM_RESERVED_RESPONSE 0x540 |
foxdie | 4:486fec88517e | 37 | #define GMLAN_MF_FROM_RESERVED_RESPONSE 0x640 |
foxdie | 4:486fec88517e | 38 | #define GMLAN_MF_FROM_BCM 0x641 |
foxdie | 4:486fec88517e | 39 | #define GMLAN_MF_FROM_TDM 0x642 |
foxdie | 4:486fec88517e | 40 | #define GMLAN_MF_FROM_EBCM 0x643 |
foxdie | 4:486fec88517e | 41 | #define GMLAN_MF_FROM_EHU 0x644 |
foxdie | 4:486fec88517e | 42 | #define GMLAN_MF_FROM_SIC 0x646 |
foxdie | 4:486fec88517e | 43 | #define GMLAN_MF_FROM_SDC 0x647 |
foxdie | 4:486fec88517e | 44 | #define GMLAN_MF_FROM_IPC 0x64C |
foxdie | 4:486fec88517e | 45 | #define GMLAN_MF_FROM_HVAC 0x651 |
foxdie | 4:486fec88517e | 46 | #define GMLAN_MF_FROM_RFA 0x658 |
foxdie | 4:486fec88517e | 47 | #define GMLAN_EXTERNAL_OBD_TEST_EQUIPMENT_TO_NON_SPECIFIC_OBD_COMPLIANT_ECUS 0x7DF |
foxdie | 4:486fec88517e | 48 | #define GMLAN_EXTERNAL_OBD_TEST_EQUIPMENT_TO_ECM 0x7E0 |
foxdie | 4:486fec88517e | 49 | #define GMLAN_EXTERNAL_OBD_TEST_EQUIPMENT_TO_SPECIFIC_OBD_COMPLIANT_ECU 0x7E1 |
foxdie | 4:486fec88517e | 50 | #define GMLAN_ECM_TO_EXTERNAL_OBD_TEST_EQUIPMENT 0x7E8 |
foxdie | 4:486fec88517e | 51 | #define GMLAN_SPECIFIC_OBD_COMPLIANT_ECU_TO_EXTERNAL_OBD_TEST_EQUIPMENT 0x7E9 |
foxdie | 4:486fec88517e | 52 | |
foxdie | 6:32592425aa57 | 53 | // PCI byte |
foxdie | 6:32592425aa57 | 54 | #define GMLAN_PCI_UNSEGMENTED 0x0 |
foxdie | 6:32592425aa57 | 55 | #define GMLAN_PCI_SEGMENTED 0x1 |
foxdie | 6:32592425aa57 | 56 | #define GMLAN_PCI_ADDITIONAL 0x2 |
foxdie | 6:32592425aa57 | 57 | #define GMLAN_PCI_FLOW_CONTROL 0x3 |
foxdie | 6:32592425aa57 | 58 | |
foxdie | 6:32592425aa57 | 59 | // Service ID byte |
foxdie | 6:32592425aa57 | 60 | #define GMLAN_SID_CLEAR_DTC 0x4 |
foxdie | 6:32592425aa57 | 61 | #define GMLAN_SID_START_DIAG 0x10 |
foxdie | 6:32592425aa57 | 62 | #define GMLAN_SID_REQ_FAIL_RECS 0x12 |
foxdie | 6:32592425aa57 | 63 | #define GMLAN_SID_REQ_DID 0x1A |
foxdie | 6:32592425aa57 | 64 | #define GMLAN_SID_RES_NORM_OP 0x20 |
foxdie | 6:32592425aa57 | 65 | #define GMLAN_SID_REQ_PID 0x22 |
foxdie | 6:32592425aa57 | 66 | #define GMLAN_SID_READ_ADDR 0x23 |
foxdie | 6:32592425aa57 | 67 | #define GMLAN_SID_REQ_SEC_ACCESS 0x27 |
foxdie | 6:32592425aa57 | 68 | #define GMLAN_SID_DSBL_NORM_OP 0x28 |
foxdie | 6:32592425aa57 | 69 | #define GMLAN_SID_DEF_DPID_MSG 0x2C |
foxdie | 6:32592425aa57 | 70 | #define GMLAN_SID_DEF_PID_BY_ADDR 0x2D |
foxdie | 6:32592425aa57 | 71 | #define GMLAN_SID_DL_REQ 0x34 |
foxdie | 6:32592425aa57 | 72 | #define GMLAN_SID_DATA_TRANS 0x36 |
foxdie | 6:32592425aa57 | 73 | #define GMLAN_SID_WRITE_DID 0x3B |
foxdie | 6:32592425aa57 | 74 | #define GMLAN_SID_TESTER_PRESENT 0x3E |
foxdie | 6:32592425aa57 | 75 | #define GMLAN_SID_ERROR 0x7F |
foxdie | 6:32592425aa57 | 76 | #define GMLAN_SID_REQ_PROG_STATE 0xA2 |
foxdie | 6:32592425aa57 | 77 | #define GMLAN_SID_PROG_MODE 0xA5 |
foxdie | 6:32592425aa57 | 78 | #define GMLAN_SID_READ_DTC 0xA9 |
foxdie | 6:32592425aa57 | 79 | #define GMLAN_SID_REQ_DPID 0xAA |
foxdie | 6:32592425aa57 | 80 | #define GMLAN_SID_REQ_CONTROL 0xAE |
foxdie | 6:32592425aa57 | 81 | |
foxdie | 6:32592425aa57 | 82 | // States of request |
foxdie | 6:32592425aa57 | 83 | #define GMLAN_STATE_READY_TO_SEND 0x0 |
foxdie | 6:32592425aa57 | 84 | #define GMLAN_STATE_SEND_DATA 0x1 |
foxdie | 6:32592425aa57 | 85 | #define GMLAN_STATE_AWAITING_FC 0x2 |
foxdie | 6:32592425aa57 | 86 | #define GMLAN_STATE_AWAITING_REPLY 0x3 |
foxdie | 6:32592425aa57 | 87 | #define GMLAN_STATE_SEND_FC 0x4 |
foxdie | 6:32592425aa57 | 88 | #define GMLAN_STATE_COMPLETED 0x5 |
foxdie | 6:32592425aa57 | 89 | #define GMLAN_STATE_ERROR 0x6 |
foxdie | 6:32592425aa57 | 90 | |
foxdie | 4:486fec88517e | 91 | #endif |