summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-15 23:20:27 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:21:57 +0100
commit5d7fbc236e5778a54c39afd51ed353c0e8761dec (patch)
tree8ad91b27dd53a4bac7d35d8f88635afb0a100015
parentf886559f8a8ac1dadf4942ab2c993a6db4f53d2b (diff)
Retrieve easily Diagnostic Request PID from an Active Diagnostic Request
Change-Id: I787cd94b338c458fda0259bd2bcf47a1fa85cc3f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--src/diagnostic/active-diagnostic-request.cpp9
-rw-r--r--src/diagnostic/active-diagnostic-request.hpp1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/diagnostic/active-diagnostic-request.cpp b/src/diagnostic/active-diagnostic-request.cpp
index fcdbc97..4f28866 100644
--- a/src/diagnostic/active-diagnostic-request.cpp
+++ b/src/diagnostic/active-diagnostic-request.cpp
@@ -22,6 +22,8 @@
#include "../configuration.hpp"
+#define ERROR_PID 0xFF
+
std::string active_diagnostic_request_t::prefix_ = "diagnostic_messages";
bool active_diagnostic_request_t::operator==(const active_diagnostic_request_t& b)
@@ -73,6 +75,13 @@ const std::shared_ptr<can_bus_dev_t> active_diagnostic_request_t::get_can_bus_de
return can_bus_t::get_can_device(bus_);
}
+uint16_t active_diagnostic_request_t::get_pid() const
+{
+ if (handle_->request.has_pid)
+ return handle_->request.pid;
+ return ERROR_PID;
+}
+
DiagnosticRequestHandle* active_diagnostic_request_t::get_handle()
{
return handle_;
diff --git a/src/diagnostic/active-diagnostic-request.hpp b/src/diagnostic/active-diagnostic-request.hpp
index b40ae08..cb9b1d0 100644
--- a/src/diagnostic/active-diagnostic-request.hpp
+++ b/src/diagnostic/active-diagnostic-request.hpp
@@ -93,6 +93,7 @@ public:
uint32_t get_id() const;
const std::shared_ptr<can_bus_dev_t> get_can_bus_dev() const;
DiagnosticRequestHandle* get_handle();
+ uint16_t get_pid() const;
const std::string get_name() const;
static std::string& get_prefix();
DiagnosticResponseDecoder& get_decoder();