Program Listing for File frame.hpp

Return to documentation for file (/tmp/ws/src/myactuator_rmd/include/myactuator_rmd/can/frame.hpp)

#ifndef MYACTUATOR_RMD__CAN__FRAME
#define MYACTUATOR_RMD__CAN__FRAME
#pragma once

#include <array>
#include <cstdint>


namespace myactuator_rmd {
  namespace can {

    class Frame {
      public:
        constexpr Frame(std::uint32_t const can_id, std::array<std::uint8_t,8> const& data) noexcept;
        Frame() = delete;
        Frame(Frame const&) = default;
        Frame& operator = (Frame const&) = default;
        Frame(Frame&&) = default;
        Frame& operator = (Frame&&) = default;

        [[nodiscard]]
        constexpr std::uint32_t getId() const noexcept;

        [[nodiscard]]
        constexpr std::array<std::uint8_t,8> const& getData() const noexcept;

      protected:
        std::uint32_t can_id_;
        std::array<std::uint8_t,8> data_;
    };

    constexpr Frame::Frame(std::uint32_t const can_id, std::array<std::uint8_t,8> const& data) noexcept
    : can_id_{can_id}, data_{data} {
      return;
    }

    constexpr std::uint32_t Frame::getId() const noexcept {
      return can_id_;
    }

    constexpr std::array<std::uint8_t,8> const& Frame::getData() const noexcept {
      return data_;
    }

  }
}

#endif // MYACTUATOR_RMD__CAN__FRAME