summaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding
diff options
context:
space:
mode:
Diffstat (limited to 'CAN-binder/low-can-binding')
-rw-r--r--CAN-binder/low-can-binding/can/can-bus.hpp6
-rw-r--r--CAN-binder/low-can-binding/utils/config-parser.cpp6
-rw-r--r--CAN-binder/low-can-binding/utils/config-parser.hpp3
-rw-r--r--CAN-binder/low-can-binding/utils/openxc-utils.cpp5
4 files changed, 11 insertions, 9 deletions
diff --git a/CAN-binder/low-can-binding/can/can-bus.hpp b/CAN-binder/low-can-binding/can/can-bus.hpp
index 759a70f..7fe6ebf 100644
--- a/CAN-binder/low-can-binding/can/can-bus.hpp
+++ b/CAN-binder/low-can-binding/can/can-bus.hpp
@@ -69,12 +69,14 @@ private:
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
- static std::map<std::string, 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
-
+ std::vector<std::pair<std::string, std::string> > can_devices_;
public:
can_bus_t(utils::config_parser_t conf_file);
can_bus_t(can_bus_t&&);
+ void set_can_devices();
+ int get_can_device_index(std::string bus_name) const;
+ const std::string get_can_device_name(std::string id_name) const;
void start_threads();
void stop_threads();
diff --git a/CAN-binder/low-can-binding/utils/config-parser.cpp b/CAN-binder/low-can-binding/utils/config-parser.cpp
index 9c81afb..6f69916 100644
--- a/CAN-binder/low-can-binding/utils/config-parser.cpp
+++ b/CAN-binder/low-can-binding/utils/config-parser.cpp
@@ -47,14 +47,14 @@ namespace utils
/// have to test the returned value.
///
/// @return A const vector with string of linux CAN devices.
- const std::vector<std::string> config_parser_t::get_devices_name()
+ const std::vector<std::pair<std::string, std::string> > config_parser_t::get_devices_name()
{
- std::vector<std::string> devices_name;
+ std::vector<std::pair<std::string, std::string> > devices_name;
std::map<std::string, std::string> bus_mapping = config_content_.get_keys("CANbus-mapping");
for(const auto& busIt : bus_mapping )
{
- devices_name.push_back(busIt.second);
+ devices_name.push_back(std::make_pair(busIt.first, busIt.second));
}
return devices_name;
diff --git a/CAN-binder/low-can-binding/utils/config-parser.hpp b/CAN-binder/low-can-binding/utils/config-parser.hpp
index 28a4341..ce032c9 100644
--- a/CAN-binder/low-can-binding/utils/config-parser.hpp
+++ b/CAN-binder/low-can-binding/utils/config-parser.hpp
@@ -19,6 +19,7 @@
#include <string>
#include <vector>
+#include <utility>
#include "ini-config.hpp"
namespace utils
@@ -36,6 +37,6 @@ namespace utils
config_parser_t(std::string conf_file);
bool check_conf();
- const std::vector<std::string> get_devices_name();
+ const std::vector<std::pair<std::string, std::string> > get_devices_name();
};
}
diff --git a/CAN-binder/low-can-binding/utils/openxc-utils.cpp b/CAN-binder/low-can-binding/utils/openxc-utils.cpp
index 2cf03e4..286b2f5 100644
--- a/CAN-binder/low-can-binding/utils/openxc-utils.cpp
+++ b/CAN-binder/low-can-binding/utils/openxc-utils.cpp
@@ -40,9 +40,8 @@ openxc_VehicleMessage build_VehicleMessage(active_diagnostic_request_t* request,
message.type = openxc_VehicleMessage_Type::openxc_VehicleMessage_Type_DIAGNOSTIC;
message.has_diagnostic_response = true;
message.diagnostic_response.has_bus = true;
- message.diagnostic_response.bus = conf.get_can_bus_manager().get_can_device(
- conf.get_diagnostic_manager().get_can_bus())
- ->get_index();
+ message.diagnostic_response.bus = conf.get_can_bus_manager().get_can_device_index(
+ conf.get_diagnostic_manager().get_can_bus());
message.diagnostic_response.has_message_id = true;
if(request->get_id() != OBD2_FUNCTIONAL_BROADCAST_ID)