C’est toujours avec plaisir
Ps : Excuse-moi Dyox, je viens seulement de voir que tu étais intervenu au début du topic.
Maintenant que le programme a été simplifié, on va passer un cran au-dessus pour ceux qui veulent aller plus loin et aussi pour apporter une réponse à l’auteur ‘original’ qui m’a demandé un exemple avec des listes et des itérations.
Jusque-là, je n’ai fait que supprimer ce qui n’était pas forcement utile dans le programme original mais fondamentalement, je ne lui ai rien ajouté de plus. Maintenant, si on raisonne autrement, on peut dire que chaque led a 2 valeurs. Elle a un n° GPIO et une valeur de seuil. Python, comme tous les autres langages, permet de regrouper plusieurs valeur en une seule et c’est ce que nous allons faire. La façon la plus simple de le faire avec python, c’est d’utiliser des ‘tuples’. Voyons ça pour l’instant comme de simples variables composées que l’on va définir comme ça :
led = (n° gpio , seuil )
soit avec un noms explicite des vraies valeurs :
ledCpu1 = (11,20)
L’ordre et les valeurs sont fixes dans un tuple et on les compte à partir de 0 depuis la gauche (led ([0],[1],[2] ….)Si par exemple je veux récupérer le n° de gpio de ledCpu1, j’appellerais sa valeur 0. La syntaxe est la suivante
Print (ledCpu1[0]) affichera 11 à l’écran
et pour son seuil :
Print (ledCpu1[1]) affichera 20
Si pour une raison quelconque j’ai besoin d’autres propriétés pour la led, je peux les ajouter au tuple
ledCpu1 = (11,20, ‘’vert’’, ‘’ronde’’)
Print (ledCpu1[3]) affichera ronde
Mes led sont désormais des entités à part entière qui peuvent contenir une multitude de paramètre et chacun de ses paramètres a une place bien définie dans cette entité.
Plutôt que d’écrire
GPIO.output (11, cpuPercent >= 20)
Je peux maintenant ecrire
GPIO.output (ledCpu1[0], cpuPercent >= ledCpu1[1])
Voilà ce que ça pourrait donner pour le bargraph Cpu