Plusieurs librairies WiFi ??? pourquoi ?

Bonjour,

J'utilise l'IDE Arduino pour compiler des projets ESP8266.

Je viens d'acheter une montre LilyGo et j'ai donc ajouter l'ESP32 dans "les gestionnaires de cartes supplémentaires".

Sauf que lorsque je compile mon premier exemple, j'obtiens l'erreur :

Arduino : 1.8.13 (Linux), Carte : "TTGO T-Watch, Enabled, Default (2 x 6.5 MB app, 3.6 MB SPIFFS), 2000000, None"

...
Plusieurs bibliothèque trouvées pour "WiFi.h"
Utilisé : /home/laurent/.arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/WiFi
Non utilisé : /usr/local/arduino-1.8.13/libraries/WiFi
exit status 1
Erreur de compilation pour la carte TTGO T-Watch

Quelqu'un saurait-il ce que je devrais faire pour l'éviter ?

Merci

Bonjour

La présence de plusieurs librairies WiFi n'est pas anormale vue la diversité des cartes prises en charge et la diversité de leurs éventuelles puces WiFi

Le compilateur a fait semble-t-il le bon choix de librairie WiFi

l'erreur de compilation a une autre cause ... donner l'intégralité du message d'erreur

Merci de te pencher sur mon probleme.

Arg, ok, je n’avais pas vu en effet qu’il en avait choisi une.
Je me focalisais sur une autre erreur qui est :

Arduino : 1.8.13 (Linux), Carte : "TTGO T-Watch, Enabled, Default (2 x 6.5 MB app, 3.6 MB SPIFFS), 2000000, None"

<command-line>:0:10: warning: ISO C99 requires whitespace after the macro name
In file included from /home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/../lv_conf_internal.h:22:0,
                 from /home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/lv_mem.h:16,
                 from /home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/lv_mem.c:10:
/home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/lv_mem.c: In function 'lv_mem_alloc':
/home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/../../../lv_conf.h:97:33: error: implicit declaration of function 'ps_malloc' [-Werror=implicit-function-declaration]
 #  define LV_MEM_CUSTOM_ALLOC   ps_malloc       /*Wrapper to malloc*/
                                 ^
/home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/lv_mem.c:193:13: note: in expansion of macro 'LV_MEM_CUSTOM_ALLOC'
     alloc = LV_MEM_CUSTOM_ALLOC(size + sizeof(lv_mem_header_t));
             ^
/home/laurent/Arduino/libraries/TTGO_TWatch_Library-master/src/lvgl/src/lv_misc/lv_mem.c:193:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     alloc = LV_MEM_CUSTOM_ALLOC(size + sizeof(lv_mem_header_t));
           ^
<command-line>:0:10: warning: ISO C99 requires whitespace after the macro name
cc1: some warnings being treated as errors
Plusieurs bibliothèque trouvées pour "WiFi.h"
Utilisé : /home/laurent/.arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/WiFi
Non utilisé : /usr/local/arduino-1.8.13/libraries/WiFi
exit status 1
Erreur de compilation pour la carte TTGO T-Watch

Vu qu’il s’agit de mon premier projet avec la librairie de cette montre, et qu’il s’agit en plus d’un exemple qui est fourni avec … j’essaie de comprendre pourquoi il ne trouve pas la lib de la PSRAM :relaxed:

Well, j'ai trouvé quelques discussions a ce sujet sur RegEdit :il semblerait que ca devrait se faire tout seul ... mais ca ne marche pas.

Je vais voir dans le forum international si qq'un aurait une idée.

Bon, en fait c'est pire : c'est parce que "j'ai mis le niveau de log trop haut" :frowning:

En remettant le niveau a "défaut" ca compile.
Grrrr, moi qui n'aime pas laisser de warning dans mon code.

Il est possible de placer une bibliothèque particulière dans le répertoire du fichir ino.
Une discussion vient d'avoir lieu est toujours en cours à de sujet.

Les includes se font avec guillemet au lieu de chevron, ce qui indique au compilateur de chercher le fichier dans le répertoire courant.

en fait il me semble que destroyedlolo n'avait acun pb de présence de librairies , ni WiFi ni PSRAM , il y avait juste un petit pb de syntaxe qui déclenchait des warnings

En remettant le niveau a "défaut" ca compile.
Grrrr, moi qui n'aime pas laisser de warning dans mon code.

Oui, c'est ca : ps_malloc() est simplement défini ... nul part :confused:
En fait, il l'est dans ./hardware/esp32/1.0.4/cores/esp32/esp32-hal-psram.h mais il n'est pas appelé.
Je pense qu'il devrait l'être dans la définition de la carte (donc pb chez espressif).

Avec un niveau de log léger, ca passe, mais si on met le niveau maximum, le warning est promu comme une erreur.

Malheureusement qq chose de commun avec les librairies arduino que j'ai utilisé avec mes ESP (comme ca fait un bail que je n'avais plus toucher a mes ESP, j'avais oublié ce "fait").

Mais mes investigations continuent ...

Je pense qu’il devrait l’être dans la définition de la carte

Si le pb relève de la définition de la carte c’est de la responsabilité de son créateur : TTGO, Heltec…pour leurs cartes originales, Espressif pour ses propres cartes. Chacun est responsable de son travail.

L’équipe qui maintient l’extension Arduino pour IDE intégre progressivement telles quelles les définitions de cartes reçues de TTGO , Heltec … ou autre créateur de carte originale

Oui, je vais créer des tickets

Bref, ca fonctionne, mais :

  • il a fallu que modifie .../TTGO_TWatch_Library-master/src/lv_conf.h car ils utilisent ps_malloc() sans inclure d'header ou il est défini ... (TTGO)
  • il a fallu que je modifie le dit header, .../esp32/core/esp32-hal-psram.h car ils utilisent size_t et bool sans inclure stddef et stdbool (Espressif)

Autant niveau hard, ils maitrisent le trucs, autant niveau soft, il y a quand meme quelques bases a réviser >:(

Les torts etaient donc partagés !

J'ai fait un pull request sur les 2 : on verra lequel des 2 sera le plus réactif :wink:

En tout cas, belle bestiole que cette montre, qui en plus, est de jolie facture par rapport au model précédent.
De quoi s'amuser.

Tu as déjà une réponse (question) sur le dépot d'Esp32 pour Arduino !

destroyedlolo:
En tout cas, belle bestiole que cette montre, qui en plus, est de jolie facture par rapport au model précédent.
De quoi s'amuser.

Ça m'intéresse, je pensais en acheter une mais je la trouve un peu épaisse. Qu'en penses-tu ?
Peux-tu poster des photos, peut-être dans une discussion dédiée dans le bar ? Merci

Ca c'était le modèle de 2019 (le gros boitier, toujours dispo et intéressante aussi car il y a la place d'y mettre des options). La nouvelle version, celle de 2020 a la taille d'une montre connectée normale et est même assez "jolie".
J'ai mis une photo de la mienne sur mon site :smiley:

Ma seule inquiétude était au niveau de l'autonomie, mais avec le firmware (gadget) fournit par défaut, elle tient plusieurs jours.

Merci pour ce retour !