can: Add big endian CAN frame layout handle
[apps/agl-service-can-low-level.git] / low-can-binding / can / message-definition.cpp
index 407ad75..8060982 100644 (file)
@@ -23,13 +23,15 @@ message_definition_t::message_definition_t(
        const std::string bus,
        uint32_t id,
        uint32_t flags,
+       bool frame_layout_is_little,
        frequency_clock_t frequency_clock,
        bool force_send_changed,
-       const std::vector<std::shared_ptr<signal_t> >& signals)
+       const vect_ptr_signal_t& signals)
        :  parent_{nullptr},
        bus_{bus},
        id_{id},
        flags_{flags},
+       frame_layout_is_little_{frame_layout_is_little},
        frequency_clock_{frequency_clock},
        force_send_changed_{force_send_changed},
        last_value_{CAN_MESSAGE_SIZE},
@@ -41,15 +43,17 @@ message_definition_t::message_definition_t(const std::string bus,
        const std::string name,
        uint32_t length,
        uint32_t flags,
+       bool frame_layout_is_little,
        frequency_clock_t frequency_clock,
        bool force_send_changed,
-       const std::vector<std::shared_ptr<signal_t> >& signals)
+       const vect_ptr_signal_t& signals)
        : parent_{nullptr},
        bus_{bus},
        id_{id},
        name_{name},
        length_{length},
        flags_{flags},
+       frame_layout_is_little_{frame_layout_is_little},
        frequency_clock_{frequency_clock},
        force_send_changed_{force_send_changed},
        last_value_{CAN_MESSAGE_SIZE},
@@ -62,9 +66,15 @@ const std::string message_definition_t::get_bus_device_name() const
                .get_can_device_name(bus_);
 }
 
+const std::string message_definition_t::get_name() const{
+       return name_;
+}
+
 uint32_t message_definition_t::get_id() const
 {
-       return id_;
+       return id_ & CAN_EFF_MASK ?
+               id_ | CAN_EFF_FLAG :
+               id_;
 }
 
 bool message_definition_t::is_fd() const
@@ -77,7 +87,12 @@ bool message_definition_t::is_j1939() const
        return (flags_&J1939_PROTOCOL);
 }
 
-std::vector<std::shared_ptr<signal_t>>& message_definition_t::get_signals()
+bool message_definition_t::is_isotp() const
+{
+       return (flags_&ISOTP_PROTOCOL);
+}
+
+vect_ptr_signal_t& message_definition_t::get_signals()
 {
        return signals_;
 }
@@ -100,4 +115,8 @@ uint32_t message_definition_t::get_length() const
 uint32_t message_definition_t::get_flags() const
 {
        return flags_;
-}
\ No newline at end of file
+}
+
+bool message_definition_t::frame_layout_is_little() const{
+       return frame_layout_is_little_;
+}