Don't use debug function directly in library.
authorChristopher Peplin <chris.peplin@rhubarbtech.com>
Mon, 30 Dec 2013 23:30:13 +0000 (18:30 -0500)
committerChristopher Peplin <chris.peplin@rhubarbtech.com>
Mon, 30 Dec 2013 23:30:13 +0000 (18:30 -0500)
src/isotp/isotp.c
src/isotp/isotp.h
tests/common.c

index 7c12d43..f303e21 100644 (file)
@@ -39,15 +39,9 @@ IsoTpHandler isotp_init(IsoTpShims* shims, uint16_t arbitration_id,
     return handler;
 }
 
-// TODO this would be better as a "isotp_message_to_string"
-void log_isotp_message(const IsoTpMessage* message) {
-    debug("ID: 0x%02x", message->arbitration_id);
-    if(message->size > 0) {
-        debug("Payload:");
-        for(int i = 0; i < message->size; i++) {
-            debug("0x%x", message->payload[i]);
-        }
-    }  else {
-        debug("(no payload)");
-    }
+void isotp_message_to_string(const IsoTpMessage* message, char* destination,
+        size_t destination_length) {
+    snprintf(destination, destination_length,"ID: 0x%02x, Payload: 0x%llx",
+            // TODO the payload may be backwards here
+            message->arbitration_id, message->payload);
 }
index 619dcc6..74a4897 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <stdint.h>
 #include <stdbool.h>
+#include <stdio.h>
 
 #define CAN_MESSAGE_BYTE_SIZE 8
 
@@ -21,7 +22,7 @@ typedef struct {
     const uint16_t size;
 } IsoTpMessage;
 
-typedef void (*LogShim)(const char* message);
+typedef void (*LogShim)(const char* message, ...);
 typedef bool (*SendCanMessageShim)(const uint16_t arbitration_id,
         const uint8_t* data, const uint8_t size);
 typedef bool (*SetTimerShim)(uint16_t time_ms, void (*callback));
@@ -88,8 +89,8 @@ void isotp_set_timeout(IsoTpHandler* handler, uint16_t timeout_ms);
 
 void isotp_destroy(IsoTpHandler* handler);
 
-void log_isotp_message(const IsoTpMessage* message);
-
+void isotp_message_to_string(const IsoTpMessage* message, char* destination,
+        size_t destination_length);
 
 #ifdef __cplusplus
 }
index 4c6a40f..833a5ed 100644 (file)
@@ -46,7 +46,9 @@ void mock_set_timer(uint16_t time_ms, void (*callback)) {
 void message_received(const IsoTpMessage* message) {
     debug("Received ISO-TP message:");
     message_was_received = true;
-    log_isotp_message(message);
+    char str_message[24];
+    isotp_message_to_string(message, str_message, sizeof(str_message));
+    debug("%s", str_message);
     last_message_received_arb_id = message->arbitration_id;
     last_message_received_payload_size = message->size;
     if(message->size > 0) {
@@ -60,7 +62,9 @@ void message_sent(const IsoTpMessage* message, const bool success) {
     } else {
         debug("Unable to send ISO-TP message:");
     }
-    log_isotp_message(message);
+    char str_message[24] = {0};
+    isotp_message_to_string(message, str_message, sizeof(str_message));
+    debug("%s", str_message);
 
     last_message_sent_arb_id = message->arbitration_id;
     last_message_sent_payload_size = message->size;