summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/uds/uds.c4
-rw-r--r--src/uds/uds.h7
2 files changed, 11 insertions, 0 deletions
diff --git a/src/uds/uds.c b/src/uds/uds.c
index 31205f4b..1157949c 100644
--- a/src/uds/uds.c
+++ b/src/uds/uds.c
@@ -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;
diff --git a/src/uds/uds.h b/src/uds/uds.h
index 1546320e..43058342 100644
--- a/src/uds/uds.h
+++ b/src/uds/uds.h
@@ -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