Improve objects construction.
[apps/agl-service-can-low-level.git] / CAN-binder / low-can-binding / can / can-message-definition.hpp
index c3ce2ee..a9acd4a 100644 (file)
 #include <vector>
 #include <memory>
 
+#include "can-signals.hpp"
 #include "can-message.hpp"
+#include "can-message-set.hpp"
 #include "../utils/timer.hpp"
 
+class can_message_set_t;
+
 class can_message_definition_t
 {
 private:
-       std::uint8_t message_set_id_;
+       can_message_set_t* parent_; /*!< parent_ - Pointer to the CAN message set holding this CAN message definition */
        std::string bus_; /*!< bus_ - Address of CAN bus device. */
        uint32_t id_; /*!< id_ - The ID of the message.*/
        can_message_format_t format_; /*!< format_ - the format of the message's ID.*/
@@ -46,12 +50,19 @@ private:
        std::vector<uint8_t> last_value_; /*!< last_value_ - The last received value of the message. Defaults to undefined.
                                                                                *       This is required for the forceSendChanged functionality, as the stack
                                                                                *       needs to compare an incoming CAN message with the previous frame.*/
+       std::vector<std::shared_ptr<can_signal_t> > can_signals_; /*!< can_signals_ - Vector holding can_signal_t object which share the same arbitration ID */
 
 public:
-       can_message_definition_t(std::uint8_t message_set_id, const std::string bus);
-       can_message_definition_t(std::uint8_t message_set_id, const std::string bus, uint32_t id, frequency_clock_t frequency_clock, bool force_send_changed);
-       can_message_definition_t(std::uint8_t message_set_id, const std::string bus, uint32_t id, can_message_format_t format, frequency_clock_t frequency_clock, bool force_send_changed);
+       //can_message_definition_t(const can_message_definition_t& b);
+       can_message_definition_t(const std::string& bus);
+       can_message_definition_t(const std::string& bus, uint32_t id, frequency_clock_t frequency_clock, bool force_send_changed);
+       can_message_definition_t(const std::string& bus, uint32_t id, can_message_format_t format, frequency_clock_t frequency_clock, bool force_send_changed);
+       can_message_definition_t(const std::string& bus, uint32_t id, can_message_format_t format, frequency_clock_t frequency_clock, bool force_send_changed, std::vector<std::shared_ptr<can_signal_t> > can_signals);
 
-       const std::string& get_bus_name() const;
+       const std::string get_bus_name() const;
        uint32_t get_id() const;
+       std::vector<std::shared_ptr<can_signal_t> >& get_can_signals();
+
+       void set_parent(can_message_set_t* parent);
+       void set_last_value(const can_message_t& cm);
 };