Restore /etc/dev-mapping.conf support 70/25870/2 10.92.0 10.93.0 11.91.0 11.92.0 12.90.0 12.90.1 12.91.0 12.92.0 12.93.0 13.93.0 koi/10.92.0 koi/10.93.0 koi_10.92.0 koi_10.93.0 lamprey/11.91.0 lamprey/11.92.0 lamprey_11.91.0 lamprey_11.92.0 marlin/12.90.0 marlin/12.90.1 marlin/12.91.0 marlin/12.92.0 marlin/12.93.0 marlin_12.90.0 marlin_12.90.1 marlin_12.91.0 marlin_12.92.0 marlin_12.93.0 needlefish/13.93.0 needlefish_13.93.0
authorScott Murray <scott.murray@konsulko.com>
Wed, 6 Jan 2021 23:30:03 +0000 (18:30 -0500)
committerScott Murray <scott.murray@konsulko.com>
Mon, 11 Jan 2021 22:57:06 +0000 (17:57 -0500)
commit9e23caa4c56259044604c38f107f7c637001b846
tree12c843eb45e2783f2009f81c4d61707efd56fdd5
parent64092acda9a8581034c61732754eddee39f747ca
Restore /etc/dev-mapping.conf support

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
libs/ini-config/CMakeLists.txt [new file with mode: 0644]
libs/ini-config/ini-config.cpp [new file with mode: 0644]
libs/ini-config/ini-config.hpp [new file with mode: 0644]
low-can-binding/CMakeLists.txt
low-can-binding/binding/low-can-cb.cpp
low-can-binding/can/can-bus.cpp
low-can-binding/can/can-bus.hpp
low-can-binding/can/message-definition.cpp
low-can-binding/utils/config-parser.cpp [new file with mode: 0644]
low-can-binding/utils/config-parser.hpp [new file with mode: 0644]