[TUTO] Application web dynamique

Proposer ou rechercher un tutoriel concernant le Raspberry Pi

Modérateur : Francois

Bud Spencer
Raspinaute
Messages : 278
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Messagepar Bud Spencer » mar. 29 nov. 2016 15:01

Bonjour Patrice

je viens de recharger le fichier zip et effectivement il y a ce "l'afficga" qui traine la au milieu. Ca doit être un vestiges de commentaires d'avant la réorganisation du code et effectivement ca ne peu que générer une erreur.
Je ne suis pas chez moi et je n'ai pas de PI sous la main pour tester. A cause de l'usage des gpio je ne peux pas tester sur un linux 'PC'. Essais juste d'effacer ce mot étrange (juste l'afficga, mais pas la ligne complète), enregistre le fichier et vois si cela fonctionne. Quoi qu'il en soit, je corrigerais ce soir en rentrant et mettrais le zip a jour.

Si il y a des choses que tu ne comprends pas dans le code, n'hésite pas à demander. Je sais que même si je fais un max d'effort pour écrire du code que je pense simple, cela n'est pas forcement aussi évident pour tout le monde (d'autant que je n'ais pas la prétention d'être un expert en JS).

Je note au passage que le post a dépassé les 2000 vues et je remercie ceux qui s'y sont intéressé. Même si il ni a rien a gagner, ca fait toujours plaisir de savoir que le temps passé à écrire ce genre de chose n'est pas du temps perdu. Pour fêter les 2000 vues, je vais tacher d'ajouter un nouvel exemple. Je regarde pour vous trouver un npm qui peut être utile et je m'y mets ;)

pajRLE
Messages : 9
Enregistré le : mar. 29 nov. 2016 14:01

Re: [TUTO] Application web dynamique

Messagepar pajRLE » mar. 29 nov. 2016 15:36

Il n'y a plus d'erreur mais à l'exécution il affiche seulement l'ensemble du titre mais pas le tableau avec les GPIO.
Ni les boutons.
Par ailleurs merci pour ta rapidité à m'avoir répondu.
Bon après-midi et à ce soir pour vérifier qu'il ne manque pas un bout de code.
Patrice

Bud Spencer
Raspinaute
Messages : 278
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Messagepar Bud Spencer » mar. 29 nov. 2016 21:39

J'ai téléchargé la lecon6 et effectivement j'avais bien logiquement l'erreur l'afficga (qui est bien un ex bout de commentaire perso oublié précédemment....). Une fois enlevé, ca compile et fonctionne normalement. J'ai donc remis le zip à jour

Tu as essayé d'autres leçons qui utilisent les socket ?
Quel navigateur utilises tu coté client ?

pajRLE
Messages : 9
Enregistré le : mar. 29 nov. 2016 14:01

Re: [TUTO] Application web dynamique

Messagepar pajRLE » mar. 29 nov. 2016 22:48

Toujours pareil.
J'ai testé les leçons 1,3 et 4 sans problème. (super l'oscillo et la gauge).
Mais là je n'ai que : (je ne sais pas insérer une photo dans ce message)

Framboise 314 TUTO
Type Périphérique GPIO In GPIO Out Etat

et c'est tout. Il n'y a pas le tableau ni " Powerded by Bud .... Leçon n°6 "
Je précise que le fichier index.html est bien dans templates.

Les navigateurs testés : Safari sur Mac mini et iPad et IE11 sur Windows 7.

Bud Spencer
Raspinaute
Messages : 278
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Messagepar Bud Spencer » mer. 30 nov. 2016 11:24

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 ?

pajRLE
Messages : 9
Enregistré le : mar. 29 nov. 2016 14:01

Re: [TUTO] Application web dynamique

Messagepar pajRLE » mer. 30 nov. 2016 11:30

J'ai ça:

[{"iden":0,"name":"Eclairage Cockpit","inp":13,"out":18,"icon":"lampe","etat":0},{"iden":1,"name":"Moteur Droit","inp":19,"out":23,"icon":"elice","etat":0},{"iden":2,"name":"Moteur Gauche","inp":26,"out":24,"icon":"elice","etat":0}]

Bud Spencer
Raspinaute
Messages : 278
Enregistré le : lun. 15 août 2016 21:38

Re: [TUTO] Application web dynamique

Messagepar Bud Spencer » mer. 30 nov. 2016 21:57

OK Patrice.
Voila qui nous confirme que le fichier JSon de config est à la bonne place et qu'il est bien chargé par le serveur.

Perso je pense a un problème coté socket, mais vu que tu me dis que les autres leçons fonctionnent bien, j'ai un doute.
Pour en être sur ajoutons une trace dans le serveur qui indiquera la connexion d'un client dans la console. voila la ligne en question :
console.log("debug " + client.id);
A rajouter dans le socketio.sockets.on :
deblc6_2.png
deblc6_2.png (17.58 Kio) Vu 929 fois


Ensuite , tu enregistres le ficher et tu redémarres le serveur puis tu essais d'y accéder via ton navigateur. Normalement, à chaque fois que tu vas accéder à la page, tu devrais voir s'afficher sur la console serveur une phrase du genre "debug un_id_bizard". Si ce n'est pas le cas, c'est donc forcement un problème de socket ou une erreur coté client et on avisera en fonction.

On pourrais aussi s'affranchir de tout problème réseau. Pour ca, tu pourrais essayer directement depuis le navigateur web du pi. D'ailleurs quel modèle de pi utilise tu et quel version d'os ? Autre question, Sais tu te servir du débogueur de tes navigateurs ?

pajRLE
Messages : 9
Enregistré le : mar. 29 nov. 2016 14:01

Re: [TUTO] Application web dynamique

Messagepar pajRLE » mer. 30 nov. 2016 22:21

Rien ne se passe coté serveur.
J'ai essayé avec le navigateur d'un autre pi 3 (le serveur est aussi un pi 3), c'est pareil.
Tous les 2 sont sous RASPBIAN JESSIE WITH PIXEL.
Les 2 navigateurs sont iceweasel-Firefox.

pajRLE
Messages : 9
Enregistré le : mar. 29 nov. 2016 14:01

Re: [TUTO] Application web dynamique

Messagepar pajRLE » mer. 30 nov. 2016 22:42

Je viens d'essayer sur le navigateur du pi server : pareil. Pas de message de debug.

pajRLE
Messages : 9
Enregistré le : mar. 29 nov. 2016 14:01

Re: [TUTO] Application web dynamique

Messagepar pajRLE » jeu. 1 déc. 2016 17:31

Dans la fenêtre Console du navigateur (Chromium) j'ai ceci:

GET http://192.168.1.25:8080/socketio/socket.io.js
Uncaught TypeError: Cannot read property 'connect' of undefined
Modifié en dernier par pajRLE le jeu. 1 déc. 2016 17:54, modifié 1 fois.


Retourner vers « Tutoriels »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité