Ok, pas besoin d’image, j’imagine très bien ce que tu as à l’écran. Je ne sais pas ce qu’il ne va pas, mais on devrait trouver. Ça va nous donner l’occasion d’analyser ces petits bouts de programme et de voir comment on peut réfléchir et raisonner pour déboguer. Bon je n’ai pas de PI et je ne peux pas expérimenter en même temps que toi, mais de toute façon vu que cela fonctionne chez moi ça ne m’avancerai pas à grand-chose.
Déjà il faut regarder le fonctionnement du serveur.
1 – Il charge les références qu’il a besoin, initialise les différents paramètres et instancie un serveur web.
2 - il charge le fichier d’objets JSon dans une variable objet nommée ‘config’
3 – Il configure les GPIO suivant les paramètres contenu dans le tableau ‘config.perif’
4 – il démarre le serveur web
Toutes les autres fonctions ne sont appelées que par des évènements et nous verrons ca plus tard.
Donc Si le serveur démarre sans message d’erreur c’est qu’il a bien trouvé toutes ces références et vu qu’il te renvois bien une page web, on peut aussi dire que la partie serveur web fonctionne.
Quand ta page web se connecte par le socketIO, elle est censée recevoir automatiquement la configuration en réponse. C’est la réception de cette config qui doit finir de construire la page suivant son contenu. Visiblement, chez toi, tout se déroule normalement sauf que le client ne reçoit pas ou ne traite pas cette configuration, ce qui explique que tu n’aies ni le tableau de GPIO ni les infos avec le n° de leçon et le crédit.
Qu’elles sont donc les questions à se poser dans ton cas ?
1 – La variable config contient-elle bien les données coté serveur ?
2 – la connexion du socket entre le client et le serveur se fait elle bien ?
3 – La variable config est-elle bien renvoyée par le serveur à la connexion du client ?
4 – la variable config est-elle bien reçu par le client ?
5 – La variable config est-elle bien traité par le client ?
On va donc procéder par ordre. La première chose à faire c’est de s’assurer que le contenu de ‘config’ est correcte coté serveur. Ça tombe bien, j’avais inclut dans le code une route pour récupérer une partie de ce contenu. C’est la route "app.get('/perif' …". Il te suffit donc de démarrer ton serveur (pense bien à le faire avec une commande sudo) et depuis ton navigateur tu appelles la page
http://adressedupi:8080/perif . Tu devrais normalement recevoir dans ton navigateur une grande chaine de caractères JSON contenant tous les paramètres des périphériques. A tu bien ça ?
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).