Auteur Sujet: Probleme avec la bibliothèque MENWIZ  (Lu 15836 fois)

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Probleme avec la bibliothèque MENWIZ
« le: février 13, 2016, 11:43:07 pm »
Bonsoir à tous,
Pour mon projet (un Arduino par module....ou pas) , j'ai besoin d'un Menu pour sélectionner les différents programmes d'animations de mon décor. En cherchant sur le site officiel d'Arduino pour voir comment je pourrai m'y prendre, je tombe sur une bibliothèque MENWIZ qui fait, pile-poil, ce que je souhaite avec
un LCD I2C 4*20 comme le mien! Après avoir chargé et mis la bibliothèque au bon endroit, j'essaie le programme d'exemple et là :
catastrophe, l'IDE me renvoie un message d'erreur :

Arduino : 1.6.6 (Mac OS X), Carte : "Arduino/Genuino Uno"

/Users/Gerard/Downloads/MENWIZ-master/examples/quick_tour/quick_tour.ino: In function 'void setup()':
quick_tour:40: error: 'class menwiz' has no member named 'navButtons'
        tree.navButtons(UP_BOTTON_PIN,DOWN_BOTTON_PIN,LEFT_BOTTON_PIN,RIGHT_BOTTON_PIN,ESCAPE_BOTTON_PIN,CONFIRM_BOTTON_PIN);
             ^
exit status 1
'class menwiz' has no member named 'navButtons'

Manifestement, il ne trouve pas la méthode navButtons dans la classe menwiz;
J'ai été vérifier dans le fichier MENWIZ.h :

#ifdef BUTTON_SUPPORT
  _nav*    btx;
  void     navButtons(int,int,int,int,int,int);
  void     navButtons(int,int,int,int);
  int      scanNavButtons();
#endif

elle est bien déclarée ainsi que dans le fichier .cpp
Voilà mon problème, je suis bien incapable d'aller plus avant, si quelqu'un avait une idée, il serait le bienvenu....

La bibliothèque est téléchargeable à :https://github.com/brunialti/MENWIZ_1_3_2

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Probleme avec la bibliothèque MENWIZ
« Réponse #1 le: février 14, 2016, 10:08:25 am »
Bonjour ptitrain

Je viens de télécharger la chose. Je ne comprends pas trop pourquoi la version 1.3.2 est sur github dans un zip ??? c'est très étrange. La version 1.3.2 ne contient pas d'exemple. J'ai donc installé la version 1.2.

J'ai plein d'erreurs de compilation probablement dues au fait que gcc, le compilateur embarqué dans l'IDE Arduino, est devenu plus strict au fur et à mesure des versions. Ça ne donne pas confiance dans le code de MENWIZ, l'auteur semble avoir des habitudes de programmation borderline.

Thierry ? LcdUI ne fait pas la même chose ?
Cordialement

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 748
    • Voir le profil
Re : Probleme avec la bibliothèque MENWIZ
« Réponse #2 le: février 14, 2016, 03:22:37 pm »
C'est exactement le cas. Le but de LcdUi est de fournir un moyen de construire une interface utilisateur sur un écran Lcd Arduino. La seule interface fournie fonctionne avec un écran 2 lignes de 20 caractères, mais elle est extensible et pourrait supporter un écran plus grand. Elle manque pour l'instant de testeurs, n'ayant servi que pour mon propre projet... Elle est disponible et utilisable sur notre dépôt (https://git.framasoft.org/locoduino.org/LcdUI/tree/master. Il y a de la doc en français dans le Wiki, et des exemples. Il faut absolument que je me penche sur la création d'un zip pour une bibliothèque !

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Probleme avec la bibliothèque MENWIZ
« Réponse #3 le: février 14, 2016, 06:39:52 pm »
Merci pour vos réponses rapides,
Je vais de ce pas charger la bibliothèque et plancher dessus... J'avais bien vu passer les discussions autour de cette bibliothèque
mais, à l'époque, je n'y avais pas prêter attention... On cherche des fois bien loin ce qu'on a à sa porte!!!
Je vous tiens au courent si ça peut convenir à mon projet.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 748
    • Voir le profil
Re : Probleme avec la bibliothèque MENWIZ
« Réponse #4 le: février 14, 2016, 06:42:47 pm »
J'ai poussé une bibliothèque prête à l'emploi (https://git.framasoft.org/locoduino.org/LcdUI/blob/master/LcdUi.zip). Mais je n'ai pas fait de version pour écran à quatre lignes... A creuser.

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Probleme avec la bibliothèque MENWIZ
« Réponse #5 le: février 19, 2016, 01:47:48 pm »
J'ai installé la bibliothèque de Thierry.
J'ai bien lu le Wiki, mais j'avoue que ça reste assez flou pour mes maigres connaissances en programmation. L'exemple fourni (Démo) est assez touffu et je m'y perd facilement. Moi, je cherchai juste une bibliothèque qui me permette de faire un menu pour choisir mes différentes animations; Je suis en train d'essayer de programmer ça... J'aurai surement encore besoin de votre aide...Et le LCD que je possède est un 20*4 I2c. Je garde cette bibliothèque sous le coude, elle permet de régler tout un tas de variables depuis le LCD, très intéressant pour des versions autonomes ....

jpjcb66

  • Jr. Member
  • **
  • Messages: 62
    • Voir le profil
Re : Probleme avec la bibliothèque MENWIZ
« Réponse #6 le: février 19, 2016, 08:13:59 pm »
Salut petitrain

J'ai pour ma part dans une application de régulation eau chaude solaire été amené à me faire un menu perso sous forme de pages sur un 2x16 caractères I2c. avec arduino uno + Shield mémoire (horloge temps réel) + shield Deuligne
Ce n'est pas un gros problème et je ne suis ni jeune ni rapide ni une pointure du C & C++.  ;)
Je commande mon histoire à partir d'un encodeur rotatif : Je tourne sens horaire pour incrémenter les pages et anti-horaire pour décrémenter ; J'appuie pour valider.
Je ne pense pas que ma régulation solaire intéresse qq'un ici, on peut donc en parler éventuellement par mail.
Ça bouffe un peu de place mem progr mais si c'est en librairie c'est comme Félicie, AUSSI !
Sinon en gros le départ dans void loop()  ça fait ça :
  //         -------------- Gestion encodeur ------------------
  newPosition = myEnc.read()/4; // Nlle position = myENc/4   Gestion encodeur
  if (newPosition != oldPosition) {
     oldPosition = newPosition;
       //    Serial.println(newPosition); // Pour les tests
    switch (newPosition) { 
    case 0:
      page0(); //  date, Heure, Tempés Capteur, ballon
      break;
    case 1:
      page1(); // Tempé S3  S4  S6
      break;
    case 2:
      page2(); // SET DELTA-T
      break;
    case 3:
      page3(); // SET HYSTERESIS
      break;
    case 4:
      page4(); // SET HORL
      break;
    case 5:
      page5(); // MINI / MAXI
      break;
    case 6:
      page6(); // POMPES en MANUEL
      break;
    case 7:
      page7(); // ALERTES
      break;
    default:
    page7();
     
    }
  }