Il semble que le BridgeData soit appelé directement par le framework (association via bridge.setOnBridgeDataHandler(BridgeData)).
Ce n'est pas une façon de faire qu'on apprend aux débutants: a priori la bibliothèque Phidgets lance une tâche de fond (thread) qui se charge de communiquer régulièrement avec les appareils, et appelle les fonctions que tu lui as indiqué via les bridge.setOnXXX lorsque besoin.
Le chr = sys.stdin.read(1) est juste là pour mettre en attente la tache principale du programme pendant que la tache de fond fait son job.
Le plus simple, même si pas obligatoirement le plus propre, serait de modifier BridgeData pour stocker les données dans une (ou des) globale.
Tu as dans la fonction existante la façon de récupérer l'index et la valeur, tu peux utiliser 4 listes à remplir au fur et à mesure (si tu veux conserver l'historique), ou encore partir d'une liste de 4 valeurs None et remplacer à la position index-1 pour stocker la dernière valeur de chaque capteur.
Et tu peux ensuite ajouter un traitement dans BridgeData, soit à chaque fois, soit lorsque tu as récupéré 4 valeurs, qui recalcule ton barycentre et le stocke, l'affiche, trace une courbe (cf matplotlib)...
# Commentaires
Posté par lolop (site web personnel) . En réponse au message Extraction de données à partir du matériel Phidget. Évalué à 6.
Il semble que le
BridgeDatasoit appelé directement par le framework (association viabridge.setOnBridgeDataHandler(BridgeData)).Ce n'est pas une façon de faire qu'on apprend aux débutants: a priori la bibliothèque Phidgets lance une tâche de fond (thread) qui se charge de communiquer régulièrement avec les appareils, et appelle les fonctions que tu lui as indiqué via les
bridge.setOnXXXlorsque besoin.Le
chr = sys.stdin.read(1)est juste là pour mettre en attente la tache principale du programme pendant que la tache de fond fait son job.Le plus simple, même si pas obligatoirement le plus propre, serait de modifier
BridgeDatapour stocker les données dans une (ou des) globale.Tu as dans la fonction existante la façon de récupérer l'index et la valeur, tu peux utiliser 4 listes à remplir au fur et à mesure (si tu veux conserver l'historique), ou encore partir d'une liste de 4 valeurs
Noneet remplacer à la positionindex-1pour stocker la dernière valeur de chaque capteur.Et tu peux ensuite ajouter un traitement dans
BridgeData, soit à chaque fois, soit lorsque tu as récupéré 4 valeurs, qui recalcule ton barycentre et le stocke, l'affiche, trace une courbe (cf matplotlib)...Pour try/except... c'est un mécanisme de récupération et traitement des erreurs.
Sur https://perso.limsi.fr/pointal/python:cours_prog
cf la présentation cours 6, diapo 16.
ou encore sur https://perso.limsi.fr/pointal/python:courspython3
chapitre 3-4-4.
Bon codage et bon apprentissage.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN