Today, I did a fresh git clone. This seems to be the better way to keep the branch up to date.
I know, Arduino-IDE is the suggested tool to compile the code, but there are some wild hacks automagically errhm "solved" by the IDE.
E.G. besides all the warnings regarding "ignored attribute of __progmem__" running make from the commandline spits out some minor warnings but also serious failures in the memsRead method of OBD class:
--->8--SNIP---8<---
libraries/OBD/OBD.cpp: In member function 'virtual bool COBD::getVIN(char*, byte)':
libraries/OBD/OBD.cpp:301:46: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (*q = hex2uint8(p + 1)) q++;
^
libraries/OBD/OBD.cpp: In member function 'virtual byte COBD::receive(char*, byte, int)':
libraries/OBD/OBD.cpp:377:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (millis() - startTime > timeout) {
^
libraries/OBD/OBD.cpp: At global scope:
libraries/OBD/OBD.cpp:467:72: error: default argument given for parameter 2 of 'bool COBD::memsRead(int*, int*, int*, int*)' [-fpermissive]
bool COBD::memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0)
^
In file included from libraries/OBD/OBD.cpp:10:0:
libraries/OBD/OBD.h:133:15: note: previous specification in 'virtual bool COBD::memsRead(int*, int*, int*, int*)' here
virtual bool memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0);
^
libraries/OBD/OBD.cpp:467:72: error: default argument given for parameter 3 of 'bool COBD::memsRead(int*, int*, int*, int*)' [-fpermissive]
bool COBD::memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0)
^
In file included from libraries/OBD/OBD.cpp:10:0:
libraries/OBD/OBD.h:133:15: note: previous specification in 'virtual bool COBD::memsRead(int*, int*, int*, int*)' here
virtual bool memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0);
^
libraries/OBD/OBD.cpp:467:72: error: default argument given for parameter 4 of 'bool COBD::memsRead(int*, int*, int*, int*)' [-fpermissive]
bool COBD::memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0)
^
In file included from libraries/OBD/OBD.cpp:10:0:
libraries/OBD/OBD.h:133:15: note: previous specification in 'virtual bool COBD::memsRead(int*, int*, int*, int*)' here
virtual bool memsRead(int* acc, int* gyr = 0, int* mag = 0, int* temp = 0);
^
libraries/OBD/OBD.cpp: In member function 'virtual void COBDI2C::write(const char*)':
libraries/OBD/OBD.cpp:544:35: warning: narrowing conversion of 'millis()' from 'long unsigned int' to 'uint16_t {aka unsigned int}' inside { } is ill-formed in C++11 [-Wnarrowing]
COMMAND_BLOCK cmdblock = {millis(), CMD_SEND_AT_COMMAND};
^
libraries/OBD/OBD.cpp: In member function 'bool COBDI2C::sendCommandBlock(byte, uint8_t, byte*, byte)':
libraries/OBD/OBD.cpp:553:35: warning: narrowing conversion of 'millis()' from 'long unsigned int' to 'uint16_t {aka unsigned int}' inside { } is ill-formed in C++11 [-Wnarrowing]
COMMAND_BLOCK cmdblock = {millis(), cmd, data};
^
libraries/OBD/OBD.cpp: In member function 'virtual byte COBDI2C::receive(char*, byte, int)':
libraries/OBD/OBD.cpp:590:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
} while(millis() - start < timeout);
--->8--SNAP---8<---
That's the drawback of such a tool like the Arduino-IDE...too much "ugly" code stays undetected and could cause problems in the future...
For this reason, I'm writing code with e.g. kdevelop and a Makefile. Written code this way [b]ever[/b] runs in Arduino-IDE too. ...but the other way arround, all the time the compiler complains about such errors like mentioned above.
Now I'll try to solve the handover failures to memsRead()...
I don't know why it's not possible to send me a PM.