summaryrefslogtreecommitdiffstats
path: root/src/can
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-12 19:38:49 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:10:41 +0100
commit24057b7fad6d4d1f1f264995d0f5865acf466004 (patch)
treeced9c92076a3f6c1e87f9aeb0312bfa2440fd3a1 /src/can
parent62eb024d989037ae7f2ba86de8b68c826cb61ec9 (diff)
Make diagnostic manager initialization processus.
It is initiliazed with by default the first CAN bus device in the CAN bus device list from CAN bus manager. The object is instancied at configuration_t object first invokation and after all CAN buses has been initialized then the diag manager is initialized too. Change-Id: I4894f2c62f575676c34efec3608b97de8c5326e1 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'src/can')
-rw-r--r--src/can/can-bus.cpp10
-rw-r--r--src/can/can-bus.hpp6
2 files changed, 8 insertions, 8 deletions
diff --git a/src/can/can-bus.cpp b/src/can/can-bus.cpp
index 7a18ce8..8edf5ba 100644
--- a/src/can/can-bus.cpp
+++ b/src/can/can-bus.cpp
@@ -186,13 +186,13 @@ int can_bus_t::init_can_dev()
for(const auto& device : devices_name)
{
- can_devices_m_[device] = std::make_shared<can_bus_dev_t>(device, i);
- if (can_devices_m_[device]->open() == 0)
+ can_devices_.push_back(std::make_shared<can_bus_dev_t>(device, i));
+ if (can_devices_[i]->open() == 0)
{
i++;
DEBUG(binder_interface, "Start reading thread");
NOTICE(binder_interface, "%s device opened and reading", device.c_str());
- can_devices_m_[device]->start_reading(*this);
+ can_devices_[i]->start_reading(*this);
}
else
ERROR(binder_interface, "Can't open device %s", device.c_str());
@@ -349,8 +349,8 @@ void can_bus_t::push_new_vehicle_message(const openxc_VehicleMessage& v_msg)
*
* @return map can_bus_dev_m_ map
*/
-std::map<std::string, std::shared_ptr<can_bus_dev_t>> can_bus_t::get_can_devices()
+const std::vector<std::shared_ptr<can_bus_dev_t>>& can_bus_t::get_can_devices() const
{
- return can_devices_m_;
+ return can_devices_;
}
diff --git a/src/can/can-bus.hpp b/src/can/can-bus.hpp
index 17e60d2..d4d6d74 100644
--- a/src/can/can-bus.hpp
+++ b/src/can/can-bus.hpp
@@ -65,9 +65,9 @@ private:
std::condition_variable new_decoded_can_message_; /// < condition_variable use to wait until there is a new vehicle message to read from the queue vehicle_message_q_
std::mutex decoded_can_message_mutex_; /// < mutex protecting the vehicle_message_q_ queue.
- std::queue <openxc_VehicleMessage> vehicle_message_q_; /// < queue that'll store openxc_VehicleMessage to pushed
+ std::queue <openxc_VehicleMessage> vehicle_message_q_; /// < queue that'll store openxc_VehicleMessage to pushed
- std::map<std::string, std::shared_ptr<can_bus_dev_t>> can_devices_m_; /// < Can device map containing all can_bus_dev_t objects initialized during init_can_dev function
+ std::vector<std::shared_ptr<can_bus_dev_t>> can_devices_; /// < Can device map containing all can_bus_dev_t objects initialized during init_can_dev function
public:
can_bus_t(int conf_file);
@@ -87,6 +87,6 @@ public:
openxc_VehicleMessage next_vehicle_message();
void push_new_vehicle_message(const openxc_VehicleMessage& v_msg);
- std::map<std::string, std::shared_ptr<can_bus_dev_t>> get_can_devices();
+ const std::vector<std::shared_ptr<can_bus_dev_t>>& get_can_devices() const;
};