utk-robotics-2017 / rip

RIP v1 is now deprecated, please move to RIP v2
https://gitlab.com/utk-robotics
6 stars 2 forks source link

Roboclaw Fixes #62

Open argvrutter opened 6 years ago

argvrutter commented 6 years ago
robobenklein commented 6 years ago
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp: In member function ‘std::__cxx11::string rip::motorcontrollers::roboclaw::Roboclaw::readVersion()’:
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:365:34: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                         if (data != -1)
                                  ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:374:42: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                                 if (data != -1)
                                          ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:379:46: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                                     if (data != -1)
                                              ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp: In member function ‘virtual std::vector<unsigned char> rip::motorcontrollers::roboclaw::Roboclaw::readN(uint8_t, rip::motorcontrollers::roboclaw::Roboclaw::Command)’:
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:716:34: warning: comparison is always false due to limited range of data type [-Wtype-limits]
                         if (data == -1)
                                  ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:722:30: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                     if (data != -1)
                              ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:726:34: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                         if (data != -1)
                                  ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:730:38: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                             if (data != -1)
                                      ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:692:25: warning: unused variable ‘crc’ [-Wunused-variable]
                 uint8_t crc;
                         ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:694:25: warning: unused variable ‘value’ [-Wunused-variable]
                 uint8_t value = 0;
                         ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:695:25: warning: unused variable ‘trys’ [-Wunused-variable]
                 uint8_t trys = kMaxRetries;
                         ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:696:25: warning: unused variable ‘data’ [-Wunused-variable]
                 int16_t data;
                         ^
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp: In member function ‘virtual bool rip::motorcontrollers::roboclaw::Roboclaw::diagnostic()’:
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:948:13: warning: no return statement in function returning non-void [-Wreturn-type]
             }
             ^
=====
In file included from /home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:21:0:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:337:42:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 2; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:109:34:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 2; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:276:34:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 2; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:929:57:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 3; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int, short int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int, short int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int, short int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short int, short int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:115:57:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 3; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int, short unsigned int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int, short unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int, short unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, short unsigned int, short unsigned int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:140:63:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 3; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:562:49:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 3; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:644:49:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 4; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, unsigned char}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, unsigned char}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:581:85:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 4; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:652:56:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 5; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:426:56:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 5; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned char}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:600:92:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 6; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned char}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned char}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:620:99:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 6; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, int, unsigned int, int, unsigned int, unsigned char}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:661:98:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 7; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, int, unsigned int, unsigned char}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:671:105:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 8; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:482:54:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp: In instantiation of ‘typename std::enable_if<(I == sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 10; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, unsigned int, unsigned char}; typename std::enable_if<(I == sizeof... (Args)), void>::type = void]’:
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   recursively required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 1; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:760:53:   required from ‘typename std::enable_if<(I < sizeof... (Args)), void>::type rip::motorcontrollers::roboclaw::Roboclaw::argsToVector(std::vector<unsigned char>&, std::tuple<_Elements ...>) [with int I = 0; Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, unsigned int, unsigned char}; typename std::enable_if<(I < sizeof... (Args)), void>::type = void]’
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:717:45:   required from ‘void rip::motorcontrollers::roboclaw::Roboclaw::writeN(Args ...) [with Args = {rip::motorcontrollers::roboclaw::Roboclaw::Command, unsigned int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, unsigned int, unsigned char}]’
/home/dogcow/code/rip/core/motor_controllers/src/roboclaw.cpp:681:126:   required from here
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:110: warning: unused parameter ‘command’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                              ^
/home/dogcow/code/rip/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp:773:139: warning: unused parameter ‘args’ [-Wunused-parameter]
                 typename std::enable_if<I == sizeof...(Args), void>::type argsToVector(std::vector<uint8_t>& command, std::tuple<Args...> args) {}
                                                                                                                                           ^
[ 93%] Building CXX object core/motor_controllers/CMakeFiles/motor_controllers.dir/src/config.cpp.o
/home/dogcow/code/rip/core/motor_controllers/src/config.cpp: In member function ‘rip::motorcontrollers::roboclaw::Config::BaudRate rip::motorcontrollers::roboclaw::Config::getBaudRate() const’:
/home/dogcow/code/rip/core/motor_controllers/src/config.cpp:73:24: warning: switch missing default case [-Wswitch-default]
                 switch (static_cast<uint32_t>(this->getCommMode()))
                        ^
/home/dogcow/code/rip/core/motor_controllers/src/config.cpp: In member function ‘rip::motorcontrollers::roboclaw::Config::PacketAddress rip::motorcontrollers::roboclaw::Config::getPacketAddress() const’:
/home/dogcow/code/rip/core/motor_controllers/src/config.cpp:99:24: warning: switch missing default case [-Wswitch-default]
                 switch (static_cast<uint32_t>(this->getCommMode()))
                        ^

Where did this come from? :

/home/dogcow/code/rip/core/motor_controllers/diag/diag_roboclaw.cpp:5:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
 #pragma GCC diagnostic ignored "-Wimplicit-fallthrough="
                                ^
/home/dogcow/code/rip/core/navigation/drivetrains/src/two_roboclaw_drivetrain.cpp: In member function ‘virtual bool rip::navigation::drivetrains::TwoRoboclawDrivetrain::diagnostic()’:
/home/dogcow/code/rip/core/navigation/drivetrains/src/two_roboclaw_drivetrain.cpp:89:13: warning: no return statement in function returning non-void [-Wreturn-type]
             }
             ^
=====
/home/dogcow/code/rip/core/motor_controllers/diag/diag_roboclaw_main.cpp:65:5: warning: "/*" within comment [-Wcomment]
     /*
     ^
/home/dogcow/code/rip/core/motor_controllers/diag/diag_roboclaw_main.cpp:6:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
 #pragma GCC diagnostic ignored "-Wimplicit-fallthrough="
                                ^
=====
In file included from /home/dogcow/code/rip/core/motor_controllers/test/test_roboclaw.cpp:6:0:
/home/dogcow/code/rip/external/googletest/googletest/include/gtest/gtest.h: In instantiation of ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = unsigned int; T2 = int]’:
/home/dogcow/code/rip/external/googletest/googletest/include/gtest/gtest.h:1421:23:   required from ‘static testing::AssertionResult testing::internal::EqHelper<lhs_is_null_literal>::Compare(const char*, const char*, const T1&, const T2&) [with T1 = unsigned int; T2 = int; bool lhs_is_null_literal = false]’
/home/dogcow/code/rip/core/motor_controllers/test/test_roboclaw.cpp:1030:21:   required from here
/home/dogcow/code/rip/external/googletest/googletest/include/gtest/gtest.h:1392:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (lhs == rhs) {
           ^
argvrutter commented 6 years ago

Yes, and this is not even with the primary culprit, diag. @cadkin, was thinking this would be a cool project for you, and after replacing periphery on there with peripherycpp, you'd also be hardware testing peripherycpp.

cadkin commented 6 years ago

@solsane Sounds good, I'll start working on it.

cadkin commented 6 years ago

So given that I am not quite sure how templates work, I leave the task of disabling the related warnings to somebody who is more familiar. I have fixed the warnings in roboclaw.cpp

xxAtrain223 commented 6 years ago

The majority of the warnings are coming from https://github.com/utk-robotics-2017/rip/blob/roboclaw/fixes/core/motor_controllers/include/motor_controllers/roboclaw/roboclaw.hpp#L754, saying command and args are unused, which they are because that function ends the argsToVector template recursion. So you can use (void)command; (void)args;, or you can wrap that function with

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
<code with unused parameters here>
#pragma GCC diagnostic pop
robobenklein commented 6 years ago

Pushing back to 1.0 in favor of arduinogen roboclaw.