#include "signal.hpp" namespace openxc { std::string signal::generic_name() const { return generic_name_; } std::uint32_t signal::bit_position() const { return bit_position_; } std::uint32_t signal::bit_size() const { return bit_size_; } float signal::factor() const { return factor_; } std::uint32_t signal::offset() const { return offset_; } std::string signal::decoder() const { return decoder_; } bool signal::ignore() const { return ignore_; } bool signal::enabled() const { return enabled_; } const std::map>& signal::states() const { return states_; } std::uint32_t signal::max_frequency() const { return max_frequency_; } bool signal::send_same() const { return send_same_; } bool signal::force_send_changed() const { return force_send_changed_; } bool signal::writable() const { return writable_; } std::string signal::encoder() const { return encoder_; } void signal::from_json(const nlohmann::json& j) { generic_name_ = j.count("generic_name") ? j["generic_name"].get() : ""; bit_position_ = j.count("bit_position") ? j["bit_position"].get() : 0; bit_size_ = j.count("bit_size") ? j["bit_size"].get() : 0; factor_ = j.count("factor") ? j["factor"].get() : 1.0f; offset_ = j.count("offset") ? j["offset"].get() : 0; decoder_ = j.count("decoder") ? j["decoder"].get() : ""; ignore_ = j.count("ignore") ? j["ignore"].get() : false; enabled_ = j.count("enabled") ? j["enabled"].get() : true; max_frequency_ = j.count("max_frequency") ? j["max_frequency"].get() : 0; send_same_ = j.count("send_same") ? j["send_same"].get() : true; force_send_changed_ = j.count("force_send_changed") ? j["force_send_changed"].get() : false; writable_ = j.count("writable") ? j["writable"].get() : false; encoder_ = j.count("encoder") ? j["encoder"].get() : ""; if (j.count("states")) { std::map items = j["states"]; for(const auto& i : items) { states_[i.first] = i.second.get>(); } } } nlohmann::json signal::to_json() const { nlohmann::json j; j["generic_name"] = generic_name_; j["bit_position"] = bit_position_; j["bit_size"] = bit_size_; j["factor"] = factor_; j["offset"] = offset_; j["decoder"] = decoder_; j["ignore"] = ignore_; j["enabled"] = enabled_; j["states"] = states_; j["max_frequency"] = max_frequency_; j["send_same"] = send_same_; j["force_send_changed"] = force_send_changed_; j["writable"] = writable_; j["encoder"] = encoder_; return j; } void to_json(nlohmann::json& j, const signal& p) { j = p.to_json(); } void from_json(const nlohmann::json& j, signal& p) { p.from_json(j); } }