J1939 Error description¶
Error level¶
| Error | Code | Description |
|---|---|---|
| WARNING | 0 | An error warning has occurred |
| ERROR | 1 | An error has occurred |
| FATAL | 2 | A fatal error has occurred |
| OK | 3 | No error has occurred yet |
Error identifier¶
| Error | Code | Description |
|---|---|---|
| ERR_ERR_ID | 0 | Error unit identifier |
| DLL_ERR_ID | 1 | Data link layer identifier |
| MEM_ERR_ID | 2 | Memory unit identifier |
| TPL_ERR_ID | 3 | Transport protocol identifier |
| NWM_ERR_ID | 4 | Network management identifier |
| APL_ERR_ID | 5 | Application layer identifier |
| CYC_ERR_ID | 6 | Cycle unit identifier |
| REQ_ERR_ID | 7 | Request unit identifier |
| L2C_ERR_ID | 8 | Layer 2 unit identifier |
| ADR_ERR_ID | 9 | Addressing unit identifier |
| NMEA_ERR_ID | 10 | NMEA 2000 module |
| CDP_ERR_ID | 11 | CAN Diagnostic Protocol |
| DIAG_ERR_ID | 12 | J1939 Diagnostic Module |
| USR_ERR_ID | 13 | User specific code (generated) |
| OK_ID | 14 | No error |
Error codes¶
Data Link layer¶
| Error | Code | Description |
|---|---|---|
| DLL_ERR_TX_OVRN | 51 | Overrun in the TxQueue |
| DLL_ERR_START_CAN | 52 | Starting CAN failed |
| DLL_ERR_RESET_CAN | 53 | Reset CAN failed |
| DLL_ERR_INIT_CAN | 54 | Init CAN failed |
| DLL_ERR_BOFF | 61 | Bus error interrupt occurs on CAN |
| DLL_ERR_EPAS | 62 | Error warning interrupt occurs on CAN |
| DLL_ERR_EACT | 63 | CAN controller is in status error active |
| DLL_ERR_DOI | 64 | Data overrun interrupt occurs on CAN |
| DLL_ERR_RX_OVRN | 65 | Overrun in the RxQueue |
Memory¶
| Error | Code | Description |
|---|---|---|
| MEM_ERR_ALLOC_MEMORY | 111 | Allocate memory failed |
| MEM_ERR_FREE_MEMORY | 112 | Free memory failed |
Transport layer¶
| Error | Code | Description |
|---|---|---|
| TPL_ERR_TX_OVRN | 151 | No free Entry in the TxQueue of the TPL available |
| TPL_ERR_CONF_FILTER | 152 | Too many PGNs tried to register in the config filter |
| TPL_ERR_UNEXP_BAM_FRM | 161 | Unexpected BAM frame received |
| TPL_ERR_UNEXP_RTS_FRM | 162 | Unexpected RTS frame received |
| TPL_ERR_UNEXP_CTS_FRM | 163 | Unexpected CTS frame received |
| TPL_ERR_UNEXP_EOM_FRM | 164 | Unexpected EOM frame received |
| TPL_ERR_UNEXP_CA_FRM | 165 | Unexpected CA frame received |
| TPL_ERR_UNEXP_DT_FRM | 166 | Unexpected DT frame received |
| TPL_ERR_RX_OVRN | 167 | No free Rx Msg Buffer in the TPL for a global message available |
| TPL_ERR_TX_TIMEOUT0 | 168 | Timer overrun for Tx Timeout T0 |
| TPL_ERR_TX_TIMEOUT2 | 169 | Timer overrun for Tx Timeout T2 |
| TPL_ERR_RX_TIMEOUT0 | 170 | Timer overrun for Rx Timeout T0 |
| TPL_ERR_RX_TIMEOUT1 | 171 | Timer overrun for Rx Timeout T1 |
| TPL_ERR_RX_TIMEOUT2 | 172 | Timer overrun for Rx Timeout T2 |
| TPL_ERR_RX_LONG | 173 | The length of the received message is too long for a seg msg |
| TPL_ERR_SEND_MSG | 174 | Error by Sending: Can't send a segmented message |
| TPL_ERR_SEND_CA | 175 | Sending a CA message failed |
| TPL_ERR_SEND_NACK | 176 | Sending a NACK message failed |
Network management¶
| Error | Code | Description |
|---|---|---|
| NWM_ERR_DEVICE_REG | 201 | The device is already registered in the device list |
| NWM_ERR_INVALID_HDL | 202 | The device handle is invalid |
| NWM_ERR_INVALID_ADDR | 203 | The device address is invalid |
| NWM_ERR_NO_COMM | 211 | The device is not able to start the CAN communication (starting CAN failed) |
| NWM_ERR_NO_ADDR | 212 | The device is not able to claim an address and is therefore not allowed to take part at network communication any longer |
| NWM_ERR_LIST_FULL | 213 | The maximum number of nodes in the network is exceeded |
Application layer¶
| Error | Code | Description |
|---|---|---|
| APL_ERR_TIME_EXCEEDED | 251 | APL_Main() was not called in the required sequence |
| APL_ERR_TX_LONG | 252 | The data field of the transmit message is too long |
| APL_ERR_NO_MEMORY | 253 | No memory for the data field of the transmit message allocated |
| APL_ERR_REG_REQUEST | 254 | An error occurred during registration of a request PGN |
| APL_ERR_TX_NO_ADDR | 255 | Device has no address claimed |
| APL_ERR_INVALID_PARAM | 257 | Invalid parameter passed to an API function |
| APL_ERR_REQ_RESPONSE | 261 | A request message couldn't be answered from the request handler due to a queue overrun |
Cyclic unit¶
| Error | Code | Description |
|---|---|---|
| CYC_ERR_NOT_INITIALIZED | 301 | The unit is not yet initialized |
| CYC_ERR_RX_REGISTRATION | 302 | The maximal number of receive messages is exceeded |
| CYC_ERR_TX_REGISTRATION | 303 | The maximal number of transmit messages is exceeded |
| CYC_ERR_TIME_EXCEEDED | 304 | CYC_Main() was not called in the required sequence |
| CYC_ERR_RX_TIMEOUT | 311 | A registered message wasn't received in the given time |
| CYC_ERR_TX_INVALID_HDL | 312 | A message couldn't be sent due to an invalid address handle |
| CYC_ERR_TX_QUEUE_OVRN | 313 | A message couldn't be sent due to an overrun of the transmit queue |
| CYC_ERR_RX_INVALID_LENGTH | 314 | The length of the received message is too long for the receive buffer |
Request unit¶
| Error | Code | Description |
|---|---|---|
| REQ_ERR_INVALID_PARAM | 351 | Invalid parameter passed to an API function |
CAN diagnostic¶
| Error | Code | Description |
|---|---|---|
| CDP_ERR_TIME_EXCEEDED | 551 | CDP_Main() was not called in the required sequence |
| CDP_ERR_ADDR_FORMAT | 552 | The addressing format of the CAN diagnostic protocol is invalid |
| CDP_ERR_CONF_PGN | 553 | There is no PGN entry free to register a CDP message |
| CDP_ERR_UNKNOWN_PGN | 554 | PGN is not registered |
| CDP_ERR_STATE_READY_TX | 555 | PGN is not ready for transmitting a CAN diagnostic message |
| CDP_ERR_STATE_READY_RX | 556 | PGN is not ready for receiving a CAN diagnostic message |
| CDP_ERR_NO_MEMORY | 557 | No memory for the data field allocated |
| CDP_ERR_ALLOC_MEMORY | 561 | Allocate memory failed |
| CDP_ERR_FREE_MEMORY | 562 | Free memory failed |
| CDP_ERR_RX_LENGTH | 563 | The length of the received CAN diagnostic protocol message is too large for the available receive buffer |
| CDP_ERR_RX_TIMEOUT_FC | 564 | The CAN diagnostic protocol flow control message wasn't received in the given time |
| CDP_ERR_RX_TIMEOUT_CF | 565 | The CAN diagnostic protocol consecutive frame message wasn't received in the given time |
| CDP_ERR_TX_TIMEOUT | 566 | The CAN diagnostic protocol message wasn't sent in the given time |
| CDP_ERR_PCI_INVALID | 567 | The CAN diagnostic protocol control information was invalid |
J1939 diagnostic¶
| Error | Code | Description |
|---|---|---|
| DIAG_ERR_MEM_ABORTED_TX | 611 | A memory access session was aborted due to a transmit problem (sending a memory access message failed) |
| DIAG_ERR_MEM_ABORTED_RX | 612 | A memory access session was aborted due to a receive problem (a memory access message wasn't received in the expected time) |
| DIAG_ERR_MEM_ABORTED_KEY | 613 | A memory access session was aborted due to security reasons (an invalid key was received) |
| DIAG_ERR_MEM_ABORTED_DATA | 614 | A memory access session was aborted due to addressing problems (invalid data length was received) |
| DIAG_ERR_MEM_BUSY | 615 | A memory access session was declined because the device is busy (another session is in process) |
| DIAG_ERR_MEM_BUSY_FAILED | 616 | Transmit a memory access response 'busy' failed |
| DIAG_ERR_MEM_INVALID_MSG | 617 | Invalid message received (the received PGN was not registered for the diagnostic unit) |
User specific error¶
| Error | Code | Description |
|---|---|---|
| USR_ERR_REQ_RESPONSE | 661 | A request message couldn't be answered from the request handler due to a queue overrun |