#pragma once #include #include #include #include "signal.hpp" namespace openxc { class can_message { private: std::string id_; std::string bus_; bool bit_numbering_inverted_; std::vector signals_; std::string name_; std::vector handlers_; bool enabled_; float max_frequency_; float max_signal_frequency_; bool force_send_changed_; bool force_send_changed_signals_; bool is_fd_; public: std::string id() const; void id(const std::string& id); void is_fd(const bool is_fd); bool is_fd() const; std::string bus() const; bool bit_numbering_inverted() const; const std::vector& signals() const; std::string name() const; std::vector handlers() const; bool enabled() const; float max_frequency() const; float max_signal_frequency() const; bool force_send_changed() const; bool force_send_changed_signals() const; void from_json(const nlohmann::json& j); nlohmann::json to_json() const; std::uint32_t get_signals_count() const; }; void to_json(nlohmann::json& j, const can_message& p); void from_json(const nlohmann::json& j, can_message& p); void from_json(const nlohmann::json& j, can_message& p, const std::string& id); }