From 49fe0eec8f17698fc5f86d0abe01777af1fb2b23 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Fri, 14 Apr 2017 13:24:07 +0200 Subject: Change directory architecture to use 2 separated projects. Each projects, binder and generator, has to be compiled separatly. CAN-binder will host high and low level binding CAN-config-generator only the generator used for low level binding. build.sh script just launch both build in their respective dir. Change-Id: Ic77932660fcca507b23a631d4e4e790f608880ae Signed-off-by: Romain Forlot --- CAN-config-generator/src/openxc/can_bus.cpp | 89 +++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 CAN-config-generator/src/openxc/can_bus.cpp (limited to 'CAN-config-generator/src/openxc/can_bus.cpp') diff --git a/CAN-config-generator/src/openxc/can_bus.cpp b/CAN-config-generator/src/openxc/can_bus.cpp new file mode 100755 index 00000000..0a968a9e --- /dev/null +++ b/CAN-config-generator/src/openxc/can_bus.cpp @@ -0,0 +1,89 @@ +#include "can_bus.hpp" + +namespace openxc +{ + std::uint32_t can_bus::controller() const + { + return controller_; + } + + std::uint32_t can_bus::speed() const + { + return speed_; + } + + can_bus_mode can_bus::raw_can_mode() const + { + return raw_can_mode_; + } + + bool can_bus::raw_writable() const + { + return raw_writable_; + } + + float can_bus::max_message_frequency() const + { + return max_message_frequency_; + } + + bool can_bus::force_send_changed() const + { + return force_send_changed_; + } + + void can_bus::from_json(const nlohmann::json& j) + { + controller_ = j.count("controller") ? j["controller"].get() : 1; + speed_ = j.count("speed") ? j["speed"].get() : 0; + raw_can_mode_ = j.count("raw_can_mode") ? j["raw_can_mode"].get() : can_bus_mode::off; + raw_writable_ = j.count("raw_writable") ? j["raw_writable"].get() : false; + max_message_frequency_ = j.count("max_message_frequency") ? j["max_message_frequency"].get() : 0; + force_send_changed_ = j.count("force_send_changed") ? j["force_send_changed"].get() : false; + } + + nlohmann::json can_bus::to_json() const + { + nlohmann::json j; + j["controller"] = controller_; + j["speed"] = speed_; + j["raw_can_mode"] = raw_can_mode_; + j["raw_writable"] = raw_writable_; + j["max_message_frequency"] = max_message_frequency_; + j["force_send_changed"] = force_send_changed_; + return j; + } + + void to_json(nlohmann::json& j, const can_bus& p) + { + j = p.to_json(); + } + + void from_json(const nlohmann::json& j, can_bus& p) + { + p.from_json(j); + } + + void to_json(nlohmann::json& j, const can_bus_mode& p) + { + switch (p) + { + case can_bus_mode::off: + j = std::string("off"); + break; + case can_bus_mode::filtered: + j = std::string("filtered"); + break; + case can_bus_mode::unfiltered: + j = std::string("unfiltered"); + break; + } + } + + void from_json(const nlohmann::json& j, can_bus_mode& p) + { + if (j.get() == "off") p = can_bus_mode::off; + else if (j.get() == "filtered") p = can_bus_mode::filtered; + else p = can_bus_mode::unfiltered; + } +} -- cgit 1.2.3-korg