Salut
J'ai développé cette librairie qui utilise des fonctions variadiques.
Ca compile pour un uno ou un nano.
Mais ça ne passe pas pour un esp8266 :
Arduino : 1.6.7 (Linux), Carte : "Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck"
Les options de compilation ont été modifiées, tout sera recompilé
/home/david/Arduino/libraries/SerialComm/serialcomm.cpp: In member function 'bool SerialComm::sendAck()':
/home/david/Arduino/libraries/SerialComm/serialcomm.cpp:347:73: error: no matching function for call to 'SerialComm::_sendMessage(int, int, const char [1], NULL)'
return this->_sendMessage( 0 , this->_inputMessageGetId( ) , "" , NULL );
^
/home/david/Arduino/libraries/SerialComm/serialcomm.cpp:347:73: note: candidates are:
In file included from /home/david/Arduino/libraries/SerialComm/serialcomm.cpp:4:0:
/home/david/Arduino/libraries/SerialComm/serialcomm.h:66:10: note: bool SerialComm::_sendMessage(byte, byte)
bool _sendMessage( byte , byte ); // Envoi le message avec id
^
/home/david/Arduino/libraries/SerialComm/serialcomm.h:66:10: note: candidate expects 2 arguments, 4 provided
/home/david/Arduino/libraries/SerialComm/serialcomm.cpp:275:6: note: bool SerialComm::_sendMessage(byte, byte, const char*, va_list)
bool SerialComm::_sendMessage( byte action , byte id , const char *fmt , va_list args ) {
^
/home/david/Arduino/libraries/SerialComm/serialcomm.cpp:275:6: note: no known conversion for argument 4 from 'int' to 'va_list {aka __va_list_tag}'
exit status 1
Erreur lors de la compilation.
Ce rapport contiendrait plus d'informations si l'option
"Montrer les informations de sortie pendant la compilation"
était activée dans Fichier > Préférences.
Je mets la trace avec les infos complètes en attachement.
J'utilisais l'IDE 1.6.5.
Je suis passé en 1.6.7, en supprimant les répertoires .arduino15 et arduino dans mon home.
J'ai donc re-téléchargé le paquet 2.0.0 depuis le gestionnaire de cartes.
De ce qu'on m'a dit, stdarg.h utilise des macros pour les fonctions variadiques.
Donc ce serait un problème de préprocesseur.
Je commence à parler de chose que je ne connais pas....
Une idée ?
Merci.
David.
esp.txt (8.81 KB)