From 14dc82b42c45ac58a1030f6c2c27952bb90c1648 Mon Sep 17 00:00:00 2001 From: Christopher Peplin Date: Fri, 14 Feb 2014 22:41:21 -0500 Subject: [PATCH] Show negative response codes in log output. --- src/uds/uds.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/uds/uds.c b/src/uds/uds.c index 400eedf..5a45c0c 100644 --- a/src/uds/uds.c +++ b/src/uds/uds.c @@ -305,13 +305,26 @@ float diagnostic_decode_obd2_pid(const DiagnosticResponse* response, void diagnostic_response_to_string(const DiagnosticResponse* response, char* destination, size_t destination_length) { int bytes_used = snprintf(destination, destination_length, - "arb_id: 0x%02x, mode: 0x%x, pid: 0x%x, ", + "arb_id: 0x%02x, mode: 0x%x, ", response->arbitration_id, - response->mode, - response->pid); - int remaining_space = destination_length - bytes_used; + response->mode); + + if(response->has_pid) { + bytes_used += snprintf(destination + bytes_used, + destination_length - bytes_used, + "pid: 0x%x, ", + response->pid); + } + + if(!response->success) { + bytes_used += snprintf(destination + bytes_used, + destination_length - bytes_used, + "negative response code: 0x%x, ", + response->negative_response_code); + } + if(response->payload_length > 0) { - snprintf(destination + bytes_used, remaining_space, + snprintf(destination + bytes_used, destination_length - bytes_used, "payload: 0x%02x%02x%02x%02x%02x%02x%02x", response->payload[0], response->payload[1], @@ -321,7 +334,8 @@ void diagnostic_response_to_string(const DiagnosticResponse* response, response->payload[5], response->payload[6]); } else { - snprintf(destination + bytes_used, remaining_space, "no payload"); + snprintf(destination + bytes_used, destination_length - bytes_used, + "no payload"); } } -- 2.16.6