Retrieve easily Diagnostic Request PID from an Active Diagnostic Request
authorRomain Forlot <romain.forlot@iot.bzh>
Wed, 15 Mar 2017 22:20:27 +0000 (23:20 +0100)
committerRomain Forlot <romain.forlot@iot.bzh>
Thu, 16 Mar 2017 16:21:57 +0000 (17:21 +0100)
Change-Id: I787cd94b338c458fda0259bd2bcf47a1fa85cc3f
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
src/diagnostic/active-diagnostic-request.cpp
src/diagnostic/active-diagnostic-request.hpp

index fcdbc97..4f28866 100644 (file)
@@ -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_;
index b40ae08..cb9b1d0 100644 (file)
@@ -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();