ce87f1bd67b602dab612d07d4f4bd25b39e4f6a0
[apps/agl-service-can-low-level.git] / src / isotp / isotp.c
1 #include <isotp/isotp.h>
2 #include <bitfield/bitfield.h>
3 #include <inttypes.h>
4
5 /* void isotp_set_timeout(IsoTpHandler* handler, uint16_t timeout_ms) { */
6     /* handler->timeout_ms = timeout_ms; */
7 /* } */
8
9 IsoTpShims isotp_init_shims(LogShim log, SendCanMessageShim send_can_message,
10         SetTimerShim set_timer) {
11     IsoTpShims shims = {
12         log: log,
13         send_can_message: send_can_message,
14         set_timer: set_timer,
15         frame_padding: ISO_TP_DEFAULT_FRAME_PADDING_STATUS
16     };
17     return shims;
18 }
19
20 void isotp_message_to_string(const IsoTpMessage* message, char* destination,
21         size_t destination_length) {
22     snprintf(destination, destination_length, "ID: 0x%" SCNd32 ", Payload: 0x%02x%02x%02x%02x%02x%02x%02x%02x",
23             message->arbitration_id,
24             message->payload[0],
25             message->payload[1],
26             message->payload[2],
27             message->payload[3],
28             message->payload[4],
29             message->payload[5],
30             message->payload[6],
31             message->payload[7]);
32 }