diff --git a/src/drivers/vesc/VescDriver/VescDriver.cpp b/src/drivers/vesc/VescDriver/VescDriver.cpp index 87c36058f2..a53f941100 100644 --- a/src/drivers/vesc/VescDriver/VescDriver.cpp +++ b/src/drivers/vesc/VescDriver/VescDriver.cpp @@ -39,6 +39,14 @@ #include "VescDriver.hpp" #include +void VescDriver::commandDutyCycle(float duty_cycle) +{ + uint8_t command[5] {VescCommand::SET_DUTY}; + uint16_t index{1}; + insertInt32(command, index, static_cast(duty_cycle * 100000.f)); + sendPacket(command, 5); +} + void VescDriver::commandCurrent(float current) { uint8_t command[5] {VescCommand::SET_CURRENT}; diff --git a/src/drivers/vesc/VescDriver/VescDriver.hpp b/src/drivers/vesc/VescDriver/VescDriver.hpp index 6025f475b9..c41009d503 100644 --- a/src/drivers/vesc/VescDriver/VescDriver.hpp +++ b/src/drivers/vesc/VescDriver/VescDriver.hpp @@ -51,6 +51,7 @@ public: VescDriver(VescWritable *vesc_writable) : _vesc_writable(vesc_writable) {}; ~VescDriver() = default; + void commandDutyCycle(float duty_cycle); void commandCurrent(float current); void commandBrakeCurrent(float current); diff --git a/src/drivers/vesc/VescSerialDevice.cpp b/src/drivers/vesc/VescSerialDevice.cpp index ea7c1cb2cf..6961adfe58 100644 --- a/src/drivers/vesc/VescSerialDevice.cpp +++ b/src/drivers/vesc/VescSerialDevice.cpp @@ -79,7 +79,7 @@ void VescDevice::Run() } _vesc_driver.requestFirmwareVersion(); - _vesc_driver.commandCurrent(.5f); + _vesc_driver.commandDutyCycle(.05f); // Check the number of bytes available in the buffer int bytes_available{0};