Return completion status when receiving CAN frames.
[apps/agl-service-can-low-level.git] / src / isotp / receive.c
1 #include <isotp/receive.h>
2
3 bool isotp_handle_single_frame(IsoTpHandle* handle, IsoTpMessage* message) {
4     isotp_complete_receive(handle, message);
5     return true;
6 }
7
8 void isotp_complete_receive(IsoTpHandle* handle, IsoTpMessage* message) {
9     handle->receive_handle.message_received_callback(message);
10 }
11
12 IsoTpHandle isotp_receive(IsoTpShims* shims,
13         const uint16_t arbitration_id, IsoTpMessageReceivedHandler callback) {
14     IsoTpReceiveHandle receive_handle = {
15         arbitration_id: arbitration_id,
16         message_received_callback: callback
17     };
18
19     IsoTpHandle handle = {
20         success: false,
21         completed: true,
22         receive_handle: receive_handle,
23         type: ISOTP_HANDLE_RECEIVING
24     };
25     return handle;
26 }
27