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