diff options
author | Scott Murray <scott.murray@konsulko.com> | 2021-01-06 18:30:03 -0500 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2021-01-11 17:57:06 -0500 |
commit | 9e23caa4c56259044604c38f107f7c637001b846 (patch) | |
tree | 12c843eb45e2783f2009f81c4d61707efd56fdd5 /low-can-binding/can | |
parent | 64092acda9a8581034c61732754eddee39f747ca (diff) |
Restore /etc/dev-mapping.conf supportneedlefish_13.93.0needlefish/13.93.0marlin_12.93.0marlin_12.92.0marlin_12.91.0marlin_12.90.1marlin_12.90.0marlin/12.93.0marlin/12.92.0marlin/12.91.0marlin/12.90.1marlin/12.90.0lamprey_11.92.0lamprey_11.91.0lamprey/11.92.0lamprey/11.91.0koi_10.93.0koi_10.92.0koi/10.93.0koi/10.92.013.93.012.93.012.92.012.91.012.90.112.90.011.92.011.91.010.93.010.92.0
Add back the ini-config and config-parser code that existed
previously, and use it in binding init to over-ride the device
mapping from the controller JSON if /etc/dev-mapping.conf exists.
This restores the documented behavior, and is needed for the
existing AGL demo platform support and soon CI.
Additionally:
- Add code to validate the active_message_set, diagnostic_bus, and
bus device mapping configuration values.
- The above required moving plugin loading before the configuration
callback in the controller configuration, but this change seems
rational in that everything required by the generated plugin code
is already initialized before then, and it makes validating the
configuration possible without adding an extra callback.
- Add logging of the used CAN bus to device mappings at info level
to ease debugging any future issues.
- Tweak the log level of the missing configuration file message to
info from error, since it is a legitimate mode of operation if
relying on the default bus values in the controller JSON.
Bug-AGL: SPEC-3755
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I440f5e0fc85be41f7c4c1f47d824a403525a18f9
Diffstat (limited to 'low-can-binding/can')
-rw-r--r-- | low-can-binding/can/can-bus.cpp | 8 | ||||
-rw-r--r-- | low-can-binding/can/can-bus.hpp | 1 | ||||
-rw-r--r-- | low-can-binding/can/message-definition.cpp | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/low-can-binding/can/can-bus.cpp b/low-can-binding/can/can-bus.cpp index 40e080f8..11b7770c 100644 --- a/low-can-binding/can/can-bus.cpp +++ b/low-can-binding/can/can-bus.cpp @@ -69,6 +69,14 @@ void can_bus_t::set_can_devices(json_object *mapping) } } +/// @brief Fills the CAN device map member with given values +/// +/// @param[in] mapping configuration section. +void can_bus_t::set_can_devices(const std::vector<std::pair<std::string, std::string> >& mapping) +{ + can_devices_mapping_ = mapping; +} + /// @brief Take a decoded message to determine if its value complies with the desired /// filters. /// diff --git a/low-can-binding/can/can-bus.hpp b/low-can-binding/can/can-bus.hpp index 5aa7a1d5..88b1dd4e 100644 --- a/low-can-binding/can/can-bus.hpp +++ b/low-can-binding/can/can-bus.hpp @@ -70,6 +70,7 @@ public: ~can_bus_t(); 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; diff --git a/low-can-binding/can/message-definition.cpp b/low-can-binding/can/message-definition.cpp index dab502af..051c2d3c 100644 --- a/low-can-binding/can/message-definition.cpp +++ b/low-can-binding/can/message-definition.cpp @@ -56,6 +56,10 @@ message_definition_t::message_definition_t(const std::string bus, signals_{signals} {} +const std::string message_definition_t::get_bus_name() const{ + return bus_; +} + const std::string message_definition_t::get_bus_device_name() const { return application_t::instance().get_can_bus_manager() |