Forums » F05 - Environment Watching »
plc
Added by Pallier Etienne over 3 years ago
Ok tiens moi au courant si ça marche pour toi aussi.
Pour le statut du PLC, j'ai l'impression qu'on a perdu cette fonctionnalité en changeant de script pour lancer les agents.
D'après ce que j'ai vu dans le code et sur la doc, avant vous utilisiez un script start_agent.py. J'ai vu que ce script faisait appel à monitoring/task.py quand on lançait l'agent monitoring.
Ce fichier tasks.py a une fonction qui met à jour la table "PLC_status", table qui n'est pas du tout mise à jour actuellement et qui est censée être utilisée pour mettre à jour le statut du plc.
Il faut que je comprenne comment ce tasks.py était utilisé et si oui ou non il faudrait réimplémenter une fonction similaire dans plc_simulator.py ou agentM.py.
Est-ce que le script tasks.py te rappelle quelque chose pour le monitoring ?
Replies (3)
RE: plc - Added by Pallier Etienne over 3 years ago
oui normalement on ne l'utilise plus
on l'utilisait avant du temps où on utilisait Celery (un outil pour lancer des tasks en parallèle) qu'on a abandonné depuis pour simplifier l'archi et parce qu'on a estimé qu'on n'en avait pas vraiment besoin vu qu'on a des agents qui communiquent entre eux via la BD
RE: plc - Added by Pallier Etienne over 3 years ago
Alexis :
Après des heures de recherche et de bataille, j'ai réussi à refaire fonctionner la page météo ! Du moins, les graphiques sont de nouveau actifs, le site indique qu'il n'arrive pas à communiquer avec le PLC. Cela sera ma prochaine tâche.
Parmi les valeurs récupérées dans le json du plc_guitalens, il n'y a pas la valeur "pressure" donc le graphique qui correspond à cette variable est vide sur la page météo (je ne sais pas si c'est normal).
Le plc_config.json m'a permis de faire tourner les programmes nécessaires, mais j'ai du apporter une modification dans le code car cela n'a pas marché tout de suite.
L'erreur / le problème venait du fait que dans agentM.py, la fonction de routine n'était pas nommée correctement, on remplaçait la mauvaise fonction héritée de Agent.py. Donc en soit il n'y avait presque rien à corriger mais il fallait trouver l'origine du problème, ce qui n'était pas forcément simple...
Je viens de push la dernière modification.
Pour faire en sorte que la page météo fonctionne il faut suivre la démarche indiquée au chapitre : 13.3 (https://docs.google.com/document/d/1osHT3d8GiofRd9k3nL7cz4Hcmo9WVEOcSaSSQpgJcFs/edit#heading=h.s48xtjuppy2l)
Si vous utilisez Docker, il faut donc lancer chacun des terminaux dans Docker (avec ./PYROS_DOCKER_SHELL).
RE: plc - Added by Pallier Etienne over 3 years ago
Alexis :
Pour l'instant il y a encore JQuery car il nous permet de récupérer le JSON mais j'ai aussi fait une version où on utilise "fetch" pour récupérer le JSON.
Par contre j'ai un problème avec Vue : il ne veut pas générer le html si je vais un "v-for" donc je suis obligé de définir une ligne par clé du JSON dans le code...
Par exemple au plus simple, j'aurais aimé faire :
(Note : L'ordre clé/valeur est inversé avec Vue.)
mais cela ne marche pas donc je suis obligé de faire :
global status: data.global_status
Et de répéter ça pour chaque valeur qu'on souhaite afficher, d'un côté c'est plus clair dans le code mais on perd en adaptabilité (si on enlève ou retire un champ il faudra modifier le code...).
C'est peut être un problème de format de l'objet en javascript, j'essaie de résoudre ce problème depuis quelques heures.