diff --git a/src/ODriveCAN.cpp b/src/ODriveCAN.cpp index a51e32a..995d761 100644 --- a/src/ODriveCAN.cpp +++ b/src/ODriveCAN.cpp @@ -134,6 +134,14 @@ bool ODriveCAN::getPower(Get_Powers_msg_t& msg, uint16_t timeout_ms) { return request(msg, timeout_ms); } +bool ODriveCAN::reset(ResetAction action) +{ + Reboot_msg_t msg; + msg.Action = action; + + return send(msg); +} + void ODriveCAN::onReceive(uint32_t id, uint8_t length, const uint8_t* data) { #ifdef DEBUG int byte_index = length - 1; diff --git a/src/ODriveCAN.h b/src/ODriveCAN.h index e6e415f..e95c1e5 100644 --- a/src/ODriveCAN.h +++ b/src/ODriveCAN.h @@ -182,10 +182,10 @@ class ODriveCAN { */ bool getPower(Get_Powers_msg_t& msg, uint16_t timeout_ms = 10); - enum ResetAction { - Reboot, - SaveConfiguration, - EraseConfiguration + enum ResetAction : uint8_t { + Reboot = 0, + SaveConfiguration = 1, + EraseConfiguration = 2, }; /**