File syn_kwp2000.c¶
FileList > proto > syn_kwp2000.c
Go to the source code of this file
ISO 14230-3 Key Word Protocol 2000 (KWP2000) Server Engine Implementation.
#include "syn_kwp2000.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_kwp2000_init (SYN_KWP2000_Server * server) Initialize a KWP2000 diagnostic server instance. |
| SYN_Status | syn_kwp2000_process_request (SYN_KWP2000_Server * server, const uint8_t * req_buf, uint16_t req_len, uint8_t * resp_buf, uint16_t max_resp_len, uint16_t * resp_len) Process an incoming KWP2000 request message PDU and generate response. |
| SYN_Status | syn_kwp2000_register_cid (SYN_KWP2000_Server * server, uint16_t cid, const void * data, uint16_t len, bool writable) Register a Common Identifier (CID, 2-byte) for Service 0x22 reading. |
| SYN_Status | syn_kwp2000_register_lid (SYN_KWP2000_Server * server, uint8_t lid, const void * data, uint16_t len, bool writable) Register a Local Identifier (LID, 1-byte) for Service 0x21 reading. |
| SYN_Status | syn_kwp2000_set_memory_handler (SYN_KWP2000_Server * server, SYN_KWP2000_MemoryHandler cb, void * user_ctx) Register memory access handler for 0x34 RequestDownload & 0x36 TransferData. |
| SYN_Status | syn_kwp2000_set_reset_handler (SYN_KWP2000_Server * server, SYN_KWP2000_ResetHandler cb, void * user_ctx) Set ECU reset callback handler and deferred wait delay. |
| SYN_Status | syn_kwp2000_set_routine_handler (SYN_KWP2000_Server * server, SYN_KWP2000_RoutineHandler cb, void * user_ctx) Register RoutineControl handler. |
| SYN_Status | syn_kwp2000_set_security_handler (SYN_KWP2000_Server * server, SYN_KWP2000_SeedHandler seed_cb, SYN_KWP2000_KeyHandler key_cb, void * user_ctx) Set security access seed and key callbacks. |
| SYN_Status | syn_kwp2000_set_session_handler (SYN_KWP2000_Server * server, SYN_KWP2000_SessionHandler cb, void * user_ctx) Set session transition callback handler. |
| void | syn_kwp2000_tick (SYN_KWP2000_Server * server, uint32_t dt_ms) Tick KWP2000 server S3 timer and deferred reset state. |
Public Static Functions¶
| Type | Name |
|---|---|
| void | make_nrc (uint8_t sid, uint8_t nrc, uint8_t * resp_buf, uint16_t * resp_len) Helper to format a KWP2000 Negative Response Code (NRC). |
Public Functions Documentation¶
function syn_kwp2000_init¶
Initialize a KWP2000 diagnostic server instance.
Parameters:
serverPointer to server instance.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if server is NULL.
function syn_kwp2000_process_request¶
Process an incoming KWP2000 request message PDU and generate response.
SYN_Status syn_kwp2000_process_request (
SYN_KWP2000_Server * server,
const uint8_t * req_buf,
uint16_t req_len,
uint8_t * resp_buf,
uint16_t max_resp_len,
uint16_t * resp_len
)
Parameters:
serverPointer to server instance.req_bufPointer to request payload buffer.req_lenLength of request payload in bytes.resp_bufPointer to output response buffer.max_resp_lenCapacity of output response buffer.resp_lenPointer to store output response length.
Returns:
SYN_OK on success, SYN_INVALID_PARAM or SYN_ERROR on failure.
function syn_kwp2000_register_cid¶
Register a Common Identifier (CID, 2-byte) for Service 0x22 reading.
SYN_Status syn_kwp2000_register_cid (
SYN_KWP2000_Server * server,
uint16_t cid,
const void * data,
uint16_t len,
bool writable
)
Parameters:
serverPointer to server instance.cid2-byte Common Identifier.dataPointer to data buffer.lenData length in bytes.writableIs CID writable?
Returns:
SYN_OK on success, SYN_INVALID_PARAM or SYN_ERROR on error.
function syn_kwp2000_register_lid¶
Register a Local Identifier (LID, 1-byte) for Service 0x21 reading.
SYN_Status syn_kwp2000_register_lid (
SYN_KWP2000_Server * server,
uint8_t lid,
const void * data,
uint16_t len,
bool writable
)
Parameters:
serverPointer to server instance.lid1-byte Local Identifier.dataPointer to data buffer.lenData length in bytes.writableIs LID writable?
Returns:
SYN_OK on success, SYN_INVALID_PARAM or SYN_ERROR on error.
function syn_kwp2000_set_memory_handler¶
Register memory access handler for 0x34 RequestDownload & 0x36 TransferData.
SYN_Status syn_kwp2000_set_memory_handler (
SYN_KWP2000_Server * server,
SYN_KWP2000_MemoryHandler cb,
void * user_ctx
)
Parameters:
serverPointer to server instance.cbMemory handler callback.user_ctxUser context pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if server is NULL.
function syn_kwp2000_set_reset_handler¶
Set ECU reset callback handler and deferred wait delay.
SYN_Status syn_kwp2000_set_reset_handler (
SYN_KWP2000_Server * server,
SYN_KWP2000_ResetHandler cb,
void * user_ctx
)
Parameters:
serverPointer to server instance.cbReset handler callback.user_ctxUser context pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if server is NULL.
function syn_kwp2000_set_routine_handler¶
Register RoutineControl handler.
SYN_Status syn_kwp2000_set_routine_handler (
SYN_KWP2000_Server * server,
SYN_KWP2000_RoutineHandler cb,
void * user_ctx
)
Parameters:
serverPointer to server instance.cbRoutine handler callback.user_ctxUser context pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if server is NULL.
function syn_kwp2000_set_security_handler¶
Set security access seed and key callbacks.
SYN_Status syn_kwp2000_set_security_handler (
SYN_KWP2000_Server * server,
SYN_KWP2000_SeedHandler seed_cb,
SYN_KWP2000_KeyHandler key_cb,
void * user_ctx
)
Parameters:
serverPointer to server instance.seed_cbSeed request callback.key_cbKey verification callback.user_ctxUser context pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if server is NULL.
function syn_kwp2000_set_session_handler¶
Set session transition callback handler.
SYN_Status syn_kwp2000_set_session_handler (
SYN_KWP2000_Server * server,
SYN_KWP2000_SessionHandler cb,
void * user_ctx
)
Parameters:
serverPointer to server instance.cbSession handler callback.user_ctxUser context pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if server is NULL.
function syn_kwp2000_tick¶
Tick KWP2000 server S3 timer and deferred reset state.
Parameters:
serverPointer to server instance.dt_msElapsed time step in milliseconds.
Public Static Functions Documentation¶
function make_nrc¶
Helper to format a KWP2000 Negative Response Code (NRC).
Parameters:
sidService Identifier.nrcNegative Response Code.resp_bufResponse buffer.resp_lenPointer to store response length.
The documentation for this class was generated from the following file src/syntropic/proto/syn_kwp2000.c