Restore /etc/dev-mapping.conf support
[apps/agl-service-can-low-level.git] / low-can-binding / can / can-bus.hpp
index 2a798ca..88b1dd4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015, 2016, 2017 "IoT.bzh"
+ * Copyright (C) 2015, 2016, 2017, 2018, 2019 "IoT\.bzh"
  * Author "Romain Forlot" <romain.forlot@iot.bzh>
  * Author "Loïc Collignon" <loic.collignon@iot.bzh>
  *
@@ -26,7 +26,6 @@
 #include <condition_variable>
 #include "openxc.pb.h"
 #include "message/can-message.hpp"
-#include "../utils/config-parser.hpp"
 #include "../binding/low-can-subscription.hpp"
 
 #define CAN_ACTIVE_TIMEOUT_S 30
@@ -43,11 +42,9 @@ class diagnostic_manager_t;
 class can_bus_t
 {
 private:
-       utils::config_parser_t conf_file_; ///< configuration file handle used to initialize can_bus_dev_t objects.
-
        bool apply_filter(const openxc_VehicleMessage& vehicle_message, std::shared_ptr<low_can_subscription_t> can_subscription);
-       void process_signals(const message_t& message, std::map<int, std::shared_ptr<low_can_subscription_t> >& s);
-       void process_diagnostic_signals(diagnostic_manager_t& manager, std::shared_ptr<message_t> message, std::map<int, std::shared_ptr<low_can_subscription_t> >& s);
+       void process_signals(std::shared_ptr<message_t> message, map_subscription& s);
+       void process_diagnostic_signals(diagnostic_manager_t& manager, std::shared_ptr<message_t> can_message, map_subscription& s);
 
        void can_decode_message();
        std::thread th_decoding_; ///< thread that will handle decoding a can frame
@@ -68,11 +65,13 @@ private:
 
        std::vector<std::pair<std::string, std::string> > can_devices_mapping_; ///< can_devices_mapping_ - holds a mapping between logical CAN devices names and linux CAN devices names.
 public:
-       explicit can_bus_t(utils::config_parser_t conf_file);
+       explicit can_bus_t();
        can_bus_t(can_bus_t&&);
        ~can_bus_t();
 
-       void set_can_devices();
+       void set_can_devices(json_object *mapping);
+       void set_can_devices(const std::vector<std::pair<std::string, std::string> >& mapping);
+
        int get_can_device_index(const std::string& bus_name) const;
        const std::string get_can_device_name(const std::string& id_name) const;