summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-09 11:57:35 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:10:40 +0100
commit62d76aeac93109b75539eb600d05d814f477fa19 (patch)
tree66a913557c18313fdd2383f2304c69872aa7b0db
parent72305e67ee45ba6b56bca48b17303bf0322a8209 (diff)
Changing to a raw pointer can_bus_dev member and add
a default constructor. It is needed to initialize configuration_t correctly as it allocate a diagnostic manager but do not initialize it unless it is needed later. There is no need to initialize it if we do not send and receive diagnostic requests. Change-Id: I3d52d1ea92454e7b065479a2f0dd54a291ddd991 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--src/diagnostic/diagnostic-manager.cpp5
-rw-r--r--src/diagnostic/diagnostic-manager.hpp4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/diagnostic/diagnostic-manager.cpp b/src/diagnostic/diagnostic-manager.cpp
index 4509407..b811eda 100644
--- a/src/diagnostic/diagnostic-manager.cpp
+++ b/src/diagnostic/diagnostic-manager.cpp
@@ -19,8 +19,11 @@
#include "low-can-binding.hpp"
+diagnostic_manager_t::diagnostic_manager_t()
+{}
+
diagnostic_manager_t::diagnostic_manager_t(can_bus_dev_t& bus)
- : bus_(bus)
+ : bus_(&bus)
{}
void diagnostic_manager_t::shims_logger(const char* m, ...)
diff --git a/src/diagnostic/diagnostic-manager.hpp b/src/diagnostic/diagnostic-manager.hpp
index 0352120..aab233b 100644
--- a/src/diagnostic/diagnostic-manager.hpp
+++ b/src/diagnostic/diagnostic-manager.hpp
@@ -45,7 +45,7 @@ protected:
private:
DiagnosticShims shims_; /*!< shims_ - An array of shim functions for each CAN bus that plug the diagnostics
* library (uds-c) into the VI's CAN peripheral.*/
- can_bus_dev_t& bus_; /*!< bus_ - A reference to the CAN bus that should be used for all standard OBD-II requests, if the bus is not
+ can_bus_dev_t* bus_; /*!< bus_ - A pointer to the CAN bus that should be used for all standard OBD-II requests, if the bus is not
* explicitly spcified in the request. If NULL, all requests require an explicit bus.*/
std::queue<active_diagnostic_request_t> recurringRequests_; /*!< recurringRequests - A queue of active, recurring diagnostic requests. When
* a response is received for a recurring request or it times out, it is
@@ -61,7 +61,9 @@ private:
bool initialized_; /*!< * initialized - True if the DiagnosticsManager has been initialized with shims. It will interface with the uds-c lib*/
public:
+ diagnostic_manager_t();
diagnostic_manager_t(can_bus_dev_t& bus);
+
void init_diagnostic_shims();
void checkSupportedPids(const active_diagnostic_request_t& request,