diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f1cecd8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/build/* +/install/* +/log/* +/include/* \ No newline at end of file diff --git a/include/diffdrive_arduino/diffdrive_arduino.h b/include/diffdrive_arduino/diffdrive_arduino.h index 296f708..e1650bc 100644 --- a/include/diffdrive_arduino/diffdrive_arduino.h +++ b/include/diffdrive_arduino/diffdrive_arduino.h @@ -4,36 +4,34 @@ #include #include "rclcpp/rclcpp.hpp" -#include "hardware_interface/base_interface.hpp" #include "hardware_interface/system_interface.hpp" #include "hardware_interface/handle.hpp" #include "hardware_interface/hardware_info.hpp" #include "hardware_interface/types/hardware_interface_return_values.hpp" -#include "hardware_interface/types/hardware_interface_status_values.hpp" +#include "rclcpp_lifecycle/state.hpp" #include "config.h" #include "wheel.h" #include "arduino_comms.h" - using hardware_interface::return_type; -class DiffDriveArduino : public hardware_interface::BaseInterface +class DiffDriveArduino : public hardware_interface::SystemInterface { public: DiffDriveArduino(); - return_type configure(const hardware_interface::HardwareInfo & info) override; + CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override; std::vector export_state_interfaces() override; std::vector export_command_interfaces() override; - return_type start() override; + CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override; - return_type stop() override; + CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override; return_type read() override; diff --git a/include/diffdrive_arduino/fake_robot.h b/include/diffdrive_arduino/fake_robot.h index 3f2e355..e4da062 100644 --- a/include/diffdrive_arduino/fake_robot.h +++ b/include/diffdrive_arduino/fake_robot.h @@ -4,34 +4,33 @@ #include "rclcpp/rclcpp.hpp" -#include "hardware_interface/base_interface.hpp" #include "hardware_interface/system_interface.hpp" #include "hardware_interface/handle.hpp" #include "hardware_interface/hardware_info.hpp" #include "hardware_interface/types/hardware_interface_return_values.hpp" -#include "hardware_interface/types/hardware_interface_status_values.hpp" +#include "rclcpp_lifecycle/state.hpp" #include "config.h" #include "wheel.h" using hardware_interface::return_type; -class FakeRobot : public hardware_interface::BaseInterface +class FakeRobot : public hardware_interface::SystemInterface { public: FakeRobot(); - return_type configure(const hardware_interface::HardwareInfo & info) override; + CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override; std::vector export_state_interfaces() override; std::vector export_command_interfaces() override; - return_type start() override; + CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override; - return_type stop() override; + CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override; return_type read() override; diff --git a/src/diffdrive_arduino.cpp b/src/diffdrive_arduino.cpp index 701c48a..0e0d7ae 100644 --- a/src/diffdrive_arduino.cpp +++ b/src/diffdrive_arduino.cpp @@ -5,19 +5,16 @@ - DiffDriveArduino::DiffDriveArduino() : logger_(rclcpp::get_logger("DiffDriveArduino")) {} - - - -return_type DiffDriveArduino::configure(const hardware_interface::HardwareInfo & info) +CallbackReturn DiffDriveArduino::on_init(const hardware_interface::HardwareInfo & info) { - if (configure_default(info) != return_type::OK) { - return return_type::ERROR; + if (hardware_interface::SystemInterface::on_init(info) != CallbackReturn::SUCCESS) + { + return CallbackReturn::ERROR; } RCLCPP_INFO(logger_, "Configuring..."); @@ -41,8 +38,7 @@ return_type DiffDriveArduino::configure(const hardware_interface::HardwareInfo & RCLCPP_INFO(logger_, "Finished Configuration"); - status_ = hardware_interface::status::CONFIGURED; - return return_type::OK; + return CallbackReturn::SUCCESS; } std::vector DiffDriveArduino::export_state_interfaces() @@ -72,7 +68,7 @@ std::vector DiffDriveArduino::export_comma } -return_type DiffDriveArduino::start() +CallbackReturn DiffDriveArduino::on_activate(const rclcpp_lifecycle::State & /*previous_state*/) { RCLCPP_INFO(logger_, "Starting Controller..."); @@ -81,17 +77,14 @@ return_type DiffDriveArduino::start() // arduino.setPidValues(14,7,0,100); arduino_.setPidValues(30, 20, 0, 100); - status_ = hardware_interface::status::STARTED; - - return return_type::OK; + return CallbackReturn::SUCCESS; } -return_type DiffDriveArduino::stop() +CallbackReturn DiffDriveArduino::on_deactivate(const rclcpp_lifecycle::State & /*previous_state*/) { RCLCPP_INFO(logger_, "Stopping Controller..."); - status_ = hardware_interface::status::STOPPED; - return return_type::OK; + return CallbackReturn::SUCCESS; } hardware_interface::return_type DiffDriveArduino::read() diff --git a/src/fake_robot.cpp b/src/fake_robot.cpp index 9208f9f..8b023f7 100644 --- a/src/fake_robot.cpp +++ b/src/fake_robot.cpp @@ -10,10 +10,11 @@ FakeRobot::FakeRobot() -return_type FakeRobot::configure(const hardware_interface::HardwareInfo & info) +CallbackReturn FakeRobot::on_init(const hardware_interface::HardwareInfo & info) { - if (configure_default(info) != return_type::OK) { - return return_type::ERROR; + if (hardware_interface::SystemInterface::on_init(info) != CallbackReturn::SUCCESS) + { + return CallbackReturn::ERROR; } RCLCPP_INFO(logger_, "Configuring..."); @@ -33,8 +34,7 @@ return_type FakeRobot::configure(const hardware_interface::HardwareInfo & info) RCLCPP_INFO(logger_, "Finished Configuration"); - status_ = hardware_interface::status::CONFIGURED; - return return_type::OK; + return CallbackReturn::SUCCESS; } std::vector FakeRobot::export_state_interfaces() @@ -64,20 +64,18 @@ std::vector FakeRobot::export_command_inte } -return_type FakeRobot::start() +CallbackReturn FakeRobot::on_activate(const rclcpp_lifecycle::State & /*previous_state*/) { RCLCPP_INFO(logger_, "Starting Controller..."); - status_ = hardware_interface::status::STARTED; - return return_type::OK; + return CallbackReturn::SUCCESS; } -return_type FakeRobot::stop() +CallbackReturn FakeRobot::on_deactivate(const rclcpp_lifecycle::State & /*previous_state*/) { RCLCPP_INFO(logger_, "Stopping Controller..."); - status_ = hardware_interface::status::STOPPED; - return return_type::OK; + return CallbackReturn::SUCCESS;; } hardware_interface::return_type FakeRobot::read()