Add a function to check if a request is completely sent.
authorChristopher Peplin <chris.peplin@rhubarbtech.com>
Thu, 6 Mar 2014 05:23:55 +0000 (00:23 -0500)
committerChristopher Peplin <chris.peplin@rhubarbtech.com>
Thu, 6 Mar 2014 05:23:55 +0000 (00:23 -0500)
src/uds/uds.c
src/uds/uds.h

index 31205f4..1157949 100644 (file)
@@ -92,6 +92,10 @@ static void send_diagnostic_request(DiagnosticShims* shims,
     }
 }
 
+bool diagnostic_request_sent(DiagnosticRequestHandle* handle) {
+    return handle->isotp_send_handle.completed;
+}
+
 void start_diagnostic_request(DiagnosticShims* shims,
         DiagnosticRequestHandle* handle) {
     handle->success = false;
index 1546320..4305834 100644 (file)
@@ -151,6 +151,13 @@ float diagnostic_decode_obd2_pid(const DiagnosticResponse* response);
 bool diagnostic_request_equals(const DiagnosticRequest* ours,
         const DiagnosticRequest* theirs);
 
+/* Public: Returns true if the request has been completely sent - if false, make
+ * sure you called start_diagnostic_request once to start it, and then pass
+ * incoming CAN messages to it with diagnostic_receive_can_frame(...) so it can
+ * continue the ISO-TP transfer.
+ */
+bool diagnostic_request_sent(DiagnosticRequestHandle* handle);
+
 #ifdef __cplusplus
 }
 #endif