Compatibilité librairie GSM arduino

Bonjour a tous, j'ai ressorti un vieux projet contenant une carte GSM or depuis la dernière fois j'ai mis a jour ma version d'arduino en 1.8.0
le problème que j'ai actuellement c'est que je n'arrive pas a faire fonctionner les exemples arduino sendSMS et receiveSMS.
le code fonctionne un peu aléatoirement j'ai l'impression...
mais surtout ce qui m'a interpellé c'est le message dans le debug :

In file included from C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src/GSM.h:46:0,

                 from C:\Users\utilisateur\Documents\Arduino\libraries\GSM\examples\ReceiveSMS\ReceiveSMS.ino:21:

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration

 typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};

                                                                                                                             ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\examples\ReceiveSMS\ReceiveSMS.ino: In function 'void setup()':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\examples\ReceiveSMS\ReceiveSMS.ino:47:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

     if (gsmAccess.begin(PINNUMBER) == GSM_READY) {

                                  ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In constructor 'GSM3MobileMockupProvider::GSM3MobileMockupProvider()':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:44:12: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  msgExample="Hello#World";

            ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In member function 'int GSM3MobileMockupProvider::connectTCPServer(int, char*, int*)':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:183:32: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   strcpy("192.168.1.1", localIP);

                                ^

In file included from C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:34:0:

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration

 typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};

                                                                                                                             ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp: In constructor 'GSM3ShieldV1BandManagement::GSM3ShieldV1BandManagement(bool)':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:38:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[UNDEFINED]="";

                           ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:39:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[EGSM_MODE]="\"EGSM_MODE\"";

                           ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:40:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[DCS_MODE]="\"DCS_MODE\"";

                          ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:41:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[PCS_MODE]="\"PCS_MODE\"";

                          ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:42:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[EGSM_DCS_MODE]="\"EGSM_DCS_MODE\"";

                               ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:43:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[GSM850_PCS_MODE]="\"GSM850_PCS_MODE\"";

                                 ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:44:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  quectelStrings[GSM850_EGSM_DCS_PCS_MODE]="\"GSM850_EGSM_DCS_PCS_MODE\""; 

                                          ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ModemCore.cpp:39:14: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

 char* __ok__="OK";

              ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp: In member function 'String GSM3ShieldV1ModemVerification::getIMEI()':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp:64:20: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]

  String number(NULL);

                    ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp: In member function 'void GSM3ShieldV1SMSProvider::beginSMSContinue()':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp:68:57: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp, ">"))

                                                         ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getCurrentCarrier()':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:66:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]

   return String(NULL);

                     ^

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getSignalStrength()':

C:\Users\utilisateur\Documents\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:85:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]

   return String(NULL);

                     ^

dont je n'ai aucune idée de ce que ça signifie :confused:

quelqu'un aurait des informations la-dessus ou une solution?

Le compilo et le pré processeur ont évolué et sont plus stricts

Avant on pouvait dire char * msg = "bonjour"; mais c'était un peu un abus de langage car on aurait dû écrire const char* msg = "bonjour"; puisque le pointeur est vers une chaîne constante. Ça cause des warnings quand le prototype des fonctions attend un char* car on n'a pas le droit de transformer un pointeur vers quelque chose de constant en un pointeur vers un truc variable. Idem si vous appelez genericParse_rsp(resp, [color=red]">"[/color]) la chaîne en rouge est constante et dans le prototype de la fonction sans doute déclarée comme char* et pas const char*

Pour le typedef, vous n'avez plus à Le mettre pour définir un type avec votre enum. Vous pouvez le virer dans le fichier source.

ouhla :o
j'ai quelques bases en programmation mais je suis loin de maîtriser tout ce qui est pointeurs et autres pour le moment
donc si j'ai bien compris, les librairies ne sont plus a jour donc cela se compile mal ou peut potentiellement créer des erreurs?

existe-t-il une version à jour ou modifié par des personnes plus doué que moi de cette librairie?
ou même une autre librairie non officiel compatible avec le shield officiel (V2 rev3 il me semble)?