From 66a8996df2898ab1eea1f708dc49509e972ecf9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergi=20Hern=C3=A1ndez?= <shernand@iri.upc.edu>
Date: Mon, 22 Feb 2016 21:03:36 +0000
Subject: [PATCH] Solved a problem with the speed rate value.

---
 src/stm32_src_mtn.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/stm32_src_mtn.cpp b/src/stm32_src_mtn.cpp
index 250ff63..ba7ac43 100644
--- a/src/stm32_src_mtn.cpp
+++ b/src/stm32_src_mtn.cpp
@@ -1,6 +1,7 @@
 #include "robotis_bin_parser.h"
 #include "stm32_src_mtn.h"
 #include <string.h>
+#include <math.h>
 #include <iomanip>
 
 CSTM32SrcMtn::CSTM32SrcMtn()
@@ -86,7 +87,7 @@ unsigned char CSTM32SrcMtn::compute_checksum(int page_id)
   checksum+=(unsigned char)page.get_repetitions();
   checksum+=0x0A;
   checksum+=(unsigned char)page.get_num_steps();
-  checksum+=(unsigned char)(page.get_speed_rate()*32);
+  checksum+=(unsigned char)((1.0/page.get_speed_rate())*32);
   checksum+=(unsigned char)page.get_inertial();
   checksum+=(unsigned char)page.get_next_page();
   checksum+=(unsigned char)page.get_exit_page();
@@ -152,7 +153,7 @@ void CSTM32SrcMtn::generate_src_file(const std::string &filename)
       this->write_byte_vector(file,std::vector<unsigned char>(3,0),3); 
       this->write_byte_vector(file,std::vector<unsigned char>(1,page.get_num_steps()),3); 
       this->write_byte_vector(file,std::vector<unsigned char>(1,0),3); 
-      this->write_byte_vector(file,std::vector<unsigned char>(1,(1.0/page.get_speed_rate())*32),3); 
+      this->write_byte_vector(file,std::vector<unsigned char>(1,((1.0/page.get_speed_rate())*32)),3); 
       this->write_byte_vector(file,std::vector<unsigned char>(1,0),3); 
       this->write_byte_vector(file,std::vector<unsigned char>(1,page.get_inertial()),3); 
       this->write_byte_vector(file,std::vector<unsigned char>(1,page.get_next_page()),3); 
-- 
GitLab