Split up functions in send/receive files for clarity.
[apps/agl-service-can-low-level.git] / src / isotp / send.h
index 937e532..90930d8 100644 (file)
@@ -9,8 +9,22 @@
 extern "C" {
 #endif
 
-IsoTpHandle isotp_send(IsoTpShims* shims, const uint16_t arbitration_id,
-        const uint8_t* payload, uint16_t size,
+typedef struct {
+    bool success;
+    bool completed;
+    uint16_t sending_arbitration_id;
+    uint16_t receiving_arbitration_id;
+    IsoTpMessageSentHandler message_sent_callback;
+    IsoTpCanFrameSentHandler can_frame_sent_callback;
+    // TODO going to need some state here for multi frame messages
+} IsoTpSendHandle;
+
+bool isotp_continue_send(IsoTpShims* shims, IsoTpSendHandle* handle,
+        const uint16_t arbitration_id, const uint8_t data[],
+        const uint8_t size);
+
+IsoTpSendHandle isotp_send(IsoTpShims* shims, const uint16_t arbitration_id,
+        const uint8_t payload[], uint16_t size,
         IsoTpMessageSentHandler callback);
 
 #ifdef __cplusplus