Program Listing for File gains.hpp

Return to documentation for file (/tmp/ws/src/myactuator_rmd/include/myactuator_rmd/actuator_state/gains.hpp)

#ifndef MYACTUATOR_RMD__GAINS
#define MYACTUATOR_RMD__GAINS
#pragma once

#include <cstdint>


namespace myactuator_rmd {

  class PiGains {
    public:
      constexpr PiGains(std::uint8_t const& kp_ = 0, std::uint8_t const& ki_ = 0) noexcept;
      PiGains(PiGains const&) = default;
      PiGains& operator = (PiGains const&) = default;
      PiGains(PiGains&&) = default;
      PiGains& operator = (PiGains&&) = default;

      std::uint8_t kp;
      std::uint8_t ki;
  };

  class Gains {
    public:
      constexpr Gains(PiGains const& current_, PiGains const& speed_, PiGains const& position_) noexcept;
      constexpr Gains(std::uint8_t const current_kp = 0, std::uint8_t const current_ki = 0,
                      std::uint8_t const speed_kp = 0, std::uint8_t const speed_ki = 0,
                      std::uint8_t const position_kp = 0, std::uint8_t const position_ki = 0) noexcept;
      Gains(Gains const&) = default;
      Gains& operator = (Gains const&) = default;
      Gains(Gains&&) = default;
      Gains& operator = (Gains&&) = default;

      PiGains current;
      PiGains speed;
      PiGains position;
  };

  constexpr PiGains::PiGains(std::uint8_t const& kp_, std::uint8_t const& ki_) noexcept
  : kp{kp_}, ki{ki_} {
    return;
  }

  constexpr Gains::Gains(PiGains const& current_, PiGains const& speed_, PiGains const& position_) noexcept
  : current{current_}, speed{speed_}, position{position_} {
    return;
  }

  constexpr Gains::Gains(std::uint8_t const current_kp, std::uint8_t const current_ki,
                         std::uint8_t const speed_kp, std::uint8_t const speed_ki,
                         std::uint8_t const position_kp, std::uint8_t const position_ki) noexcept
  : current{current_kp, current_ki}, speed{speed_kp, speed_ki}, position{position_kp, position_ki} {
    return;
  }

}

#endif // MYACTUATOR_RMD__GAINS