jjacques68 Posté(e) le 5 octobre 2016 Signaler Partager Posté(e) le 5 octobre 2016 Hello tous, petite question sans encore avoir trouvé de réponses... ou mal cherché Dans un VD, le code saisi dans la MainLoop est exécuté toutes les 3-4 secondes. Mais si celui-ci plante (pour diverse raison, dans mon cas une VG qui n'a pas été mise à jour). Comment se comporte la MainLoop ? Est ce qu'elle se relance toute seule après les 3-4 secondes ? ou comme dans les scènes avec une loop, celle-ci s'arrête ? J'ai du mal à le vérifier car la fenêtre de debug de la MainLoop semble ne pas être en temps réel (vu qu'il faut cliquer sur "démarrer"...) Et peut-on demander de relancer le MainLoop d'un VD ??? en lua dans une scène ? (ça me paraît étrange comme question ...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 5 octobre 2016 Signaler Partager Posté(e) le 5 octobre 2016 s'il y a une erreur dans un main loop, il plante et s'arrête. Autrement, vois le watchdog de Lazer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 5 octobre 2016 Auteur Signaler Partager Posté(e) le 5 octobre 2016 ok je vais voir ça... déjà entendu parler de ça... sans m'y arrêter... merci ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 6 octobre 2016 Auteur Signaler Partager Posté(e) le 6 octobre 2016 ouach, pas évident à comprendre ce script. Pour les scènes j'ai compris, mais pour le VD je pige pas comment il sait qu'il fonctionne ! C'est en analysant le contenu du debug ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 6 octobre 2016 Signaler Partager Posté(e) le 6 octobre 2016 La Main Loop d'un VD démarre immédiatement après la sauvegarde du VD, ou après le boot de la box. C'est une boucle infinie avec un sleep() forcé de 3 secondes Donc elle fonctionne indéfiniment, sauf en cas de plantage. Le plantage peut être vu par un message d'information dans la débug, ou parfois pas.... auquel cas c'est bien difficile de déterminer si cela toujours toujours. C'est la raison pour laquelle j'affiche toujours un message signalant le bon fonctionnement à intervalle régulier. Ainsi mon watchdog pour déterminer si la Main Loop est toujours vivante ou morte (auquel cas on la redémarre). Enfin, pour voir le debug, il faut cliquer sur le bouton "Démarrer".... celui-ci porte très mal son nom, car il ne démarre pas la main loop, mais simplement l'affichage du debug. C'est idiot mais c'est ainsi. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 8 octobre 2016 Auteur Signaler Partager Posté(e) le 8 octobre 2016 ok pour les explications, je vais essayer de comprendre techniquement ton script watchdog... merci !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 9 octobre 2016 Auteur Signaler Partager Posté(e) le 9 octobre 2016 @Lazer : Je me suis mis à étudier ton watchdog... beau boulo !! Petite question, Dans la fonction restart, visiblement, tu fais un GET vers l'id du VD ou de la scène suivi immédiatement d'un PUT avec exactement le même chemin !!! J'ai essayer de ne faire que la requête GET sans la PUT et vis versa, mais mon VD ne redémarre pas. Il faut qu'il y a ait les 2 !!! J'ai presque tout compris sauf ça !!! tu peux m'expliquer ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 9 octobre 2016 Signaler Partager Posté(e) le 9 octobre 2016 Le GET puis le PUT fait exactement la même chose que l'interface Web : - GET = chargement du module virtuel - PUT = enregistrement du module virtuel L'enregistrement a pour effet de (re)-démarrer le module virtuel. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 11 octobre 2016 Auteur Signaler Partager Posté(e) le 11 octobre 2016 Ok compris. Et bien ça fonctionne bien. Merci !! D'après le debug du watchdog, c'est juste la mainloop d'un vd qui est relancé environ 2 fois par jour. Et ça je pense que ça vient d'une VG qu'il interroge toutes les 3 secondes et celle-ci doit être mise àjour àun même moment. Donc plantage certain car retour nul pour la VG. il faut que je rajoute un "if VG ~= nil then " dans le code du VD... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés