From e1a204a97dd6a610c8ab9f933e676e9800eeef92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoni=20Gab=C3=A1s=20Nova?= <abagas@iri.upc.edu> Date: Wed, 17 Feb 2016 19:19:46 +0000 Subject: [PATCH] Solved a bug in the calculation of the speed rate. The values must be coded in fixed point float format 3|5. --- src/robotis_bin_file/robotis_bin_parser.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/robotis_bin_file/robotis_bin_parser.cpp b/src/robotis_bin_file/robotis_bin_parser.cpp index 725880c..3e190b7 100644 --- a/src/robotis_bin_file/robotis_bin_parser.cpp +++ b/src/robotis_bin_file/robotis_bin_parser.cpp @@ -4,6 +4,7 @@ #include <string.h> #include <iostream> #include <stdlib.h> +#include <math.h> CBinFileParser::CBinFileParser() { @@ -137,7 +138,7 @@ void CBinFileParser::serialize(const char *filename) this->pages[i+1].header.next=page.get_next_page(); this->pages[i+1].header.exit=page.get_exit_page(); this->pages[i+1].header.repeat=page.get_repetitions(); - this->pages[i+1].header.speed=page.get_speed_rate()*32; + this->pages[i+1].header.speed=round((1.0/page.get_speed_rate())*32.0); this->pages[i+1].header.accel=page.get_inertial(); this->pages[i+1].header.stepnum=page.get_num_steps(); for(j=0;j<page.get_num_steps();j++) -- GitLab