IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème basique de boucle [Débutant(e)]


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut problème basique de boucle
    Hello, j'ai fais une boucle mitrailleuse bien que j'ai mis un time sleep, Quelqu'un pourrais m'aider je suis bloqué...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    while 1:
     
         if V < 12.00:
    	print "res_electrique.py"
     
         if V > 13.50:
    	print "la tension est plus grande que 13.50 et l'intensite est de " + str(A)
     
         if A > 1500.00:
    	print "l'intensite est plus grande que 1500"
     
         else:
    	print "la tension est superieur a 12 et l'intensite est de " + str(A)
     
    time.sleep(10)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    Hello, j'ai fais une boucle mitrailleuse bien que j'ai mis un time sleep, Quelqu'un pourrais m'aider je suis bloqué...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    while 1:
     
         if V < 12.00:
    	print "res_electrique.py"
     
         if V > 13.50:
    	print "la tension est plus grande que 13.50 et l'intensite est de " + str(A)
     
         if A > 1500.00:
    	print "l'intensite est plus grande que 1500"
     
         else:
    	print "la tension est superieur a 12 et l'intensite est de " + str(A)
     
    time.sleep(10)
    Bonjour,
    Être un peu plus précis serait sans doutes bienvenu.
    Le forum est, généralement, dédié aux questions ou aux informations. Ici rien de tel.

    Clodion

    PS: Question: pour que le time.sleep ait une action dans la boucle, à quel endroit faut-il le mettre?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    en fait j'ai juste besoin que la boucle soit relancé 1 X par minute par exemple...car actuellement j'ai le résultat:

    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    la tension est superieur a 12 et l'intensite est de 259.0
    etc...

    et j'aimerai voir 1 ligne par minute (par exemple), et encore mieux, si elle donne la même réponse elle ne fait rien (sauf recommencer le test)

  4. #4
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 313
    Points : 176
    Points
    176
    Par défaut
    Salut
    Mais ton timesleep n'est pas dans ta boucle pour le moment

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 276
    Points : 36 761
    Points
    36 761
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    en fait j'ai juste besoin que la boucle soit relancé 1 X par minute par exemple...car actuellement j'ai le résultat:
    ...
    et j'aimerai voir 1 ligne par minute (par exemple), et encore mieux, si elle donne la même réponse elle ne fait rien (sauf recommencer le test)
    Si rien ne modifie la valeur de variables testées, pas la peine de boucler...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    22-07-15 19:00 12.50V 14mA
    22-07-15 18:59 12.51V 14mA
    22-07-15 18:58 12.51V 16mA
    22-07-15 18:57 12.51V 18mA
    22-07-15 18:56 12.51V 21mA
    22-07-15 18:55 12.52V 25mA
    22-07-15 18:54 12.52V 29mA
    22-07-15 18:53 12.52V 34mA
    22-07-15 18:52 12.53V 38mA

    un instantané

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    juste un tab et c'est bon, le temps est pris en compte

    cependant il me reste un élément dont j'aimerai trouvé la solution. effectuer la fonction qu'un fois i elle se repete

  8. #8
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    22-07-15 19:00 12.50V 14mA
    22-07-15 18:59 12.51V 14mA
    22-07-15 18:58 12.51V 16mA
    22-07-15 18:57 12.51V 18mA
    22-07-15 18:56 12.51V 21mA
    22-07-15 18:55 12.52V 25mA
    22-07-15 18:54 12.52V 29mA
    22-07-15 18:53 12.52V 34mA
    22-07-15 18:52 12.53V 38mA

    un instantané
    Bonsoir,
    Relire les réponses serait un plus.
    Avec l'objectif annoncé, il faut:
    1) que les variables soient mises à jour avant de faire les tests.
    2) l'ensemble soit dans une boucle
    Quelque chose comme:
    import time
    while 1:
    V = ??? # une fonction qui renvoie la valeur de V
    A = ??? # idem pour A
    if…:
    print(…)
    time.sleep(1)

    Mais time.sleep est bloquant, non? Donc ce n'est pas astucieux de l'utiliser (sauf si cela ne pose pas de problème).

    Clodion

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    V=Vsensor.get_currentValue()
    A=Csensor.get_currentValue()
     
    while True:
     
         if V < 12.00:
    	print "res_electrique.py"
     
         if V > 13.50:
    	print "la tension est plus grande que 13.50 et l'intensite est de " + str(A)
     
         if A > 1500.00:
    	print "l'intensite est plus grande que 1500"
     
         else:
    	print "la tension est superieur a 12 et l'intensite est de " + str(A)
     
    	time.sleep(10)

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    Comment faire pour qu'après que le script répond a une condition, que le script recommence au début?

  11. #11
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    Comment faire pour qu'après que le script répond a une condition, que le script recommence au début?
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import time
     
    Vdiff = 0.1
    Adiff = 0.1
    Vex, Aex = Vsensor.get_currentValue(), Csensor.get_currentValue()
     
    while True:
        V=Vsensor.get_currentValue()
        A=Csensor.get_currentValue()
     
        if (abs(V-Vex) > Vdiff) or (abs(A-Aex) > Adiff):
            if V < 12.00:
                print("res_electrique.py")
            if V > 13.50:
                print("la tension est plus grande que 13.50 et l'intensite est de " + str(A))
            if A > 1500.00:
                print ("l'intensite est plus grande que 1500")
    ##    else:
    ##        print("la tension est superieur a 12 et l'intensite est de " + str(A))
        Vex, Aex = V, A
     
        time.sleep(1)
    Quelque chose comme cela devrait faire l'affaire.
    Mais la structure if ne semble pas comprise (le "else" ne semble pas du tout à sa place).
    L'indentation des blocs semble aussi à revoir.

    Clodion

    PS: je suis sous Python3, il est donc possible qu'il faille ôter les parenthèses de "print".

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    je lance le script, pas d'erreur mais rien, pas le moindre print, j'ai même descendu la valeur V a 11.99 mais rien

  13. #13
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    je lance le script, pas d'erreur mais rien, pas le moindre print, j'ai même descendu la valeur V a 11.99 mais rien
    Bonsoir,
    Est-ce que le script est compris?
    Si oui, il faut sans doutes adapter! En particulier en ce qui concerne Vdiff et Adiff!!
    Pour visualiser les valeurs, il suffit d'insérer un "print(A, V)" à la ligne 10.

    Par défaut, j'ai opté pour Vdiff=0.1! Il faut sans doutes le descendre!

    Il ne faut pas non plus exagérer quand même! Je n'ai pas le matériel et je ne le connais pas (de toutes façon, il n'est pas cité).
    Je ne connais donc ni les valeurs moyennes ni les écart-types.

    Si le code n'est pas compris, il est toujours possible d'expliquer. Mais il faut quand même un minimum d'efforts!

    Clodion

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Ton code est erroné.

    Un else est une instruction de branchement qui s'exécutera si la condition qui précède est fausse.

    Si cette condition qui précède est un elif elle-même sera conditionnée à celle qui la précède, mais dans ton code ce n'est pas le cas.

    Voyons ce que cela donne avec une tension de 10.0 V.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        V = 10.0
        A = 1000.0
        if V < 12.00:               # Vrai
    	    print "res_electrique.py"   # --> res_electrique.py
     
        if V > 13.50:               # Faux
    	    print "la tension est plus grande que 13.50 et l'intensite est de " + str(A)
     
        if A > 1500.00:             # Faux
    	    print "l'intensite est plus grande que 1500"
     
        else:                       # Vrai parce que A < 1500.0
            # Donc le print qui suit est inexact.
    	    print "la tension est superieur a 12 et l'intensite est de " + str(A)

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    Entièrement d'accord avec toi, sauf que la valeur de V ne peut pas être en dessous de 12 car dès que V=12.00, a la place du print qui va être remplacé par un le script python res_electrique.py qui ordonne au système de recharger V et arrivé a V=13.5, la place du print encore une fois va être remplacer par le script python res_batterie.py qui est la commande qui va être a l'origine de la décharge de V jusqu’à 12, voila la boucle.

    Mais je me rends compte que c'est plus compliqué qu'en apparence disons pour moi.

    J'ai aussi pris conscience de quel est ma place, celle de l'utilisateur et pas celle du développeur, c'est pour cette raison que je fais appel a votre aide. Je suis entrain de réfléchir a la possibilité de rémunérer pour le service rendu, pour ce faire merci de me parler en mp si intéressé, si bien sur c'est autorisé sur ce site, sinon j’invite les modérateurs de supprimer cette phrase

  16. #16
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    Entièrement d'accord avec toi, sauf que la valeur de V ne peut pas être en dessous de 12 car dès que V=12.00, a la place du print qui va être remplacé par un le script python res_electrique.py qui ordonne au système de recharger V et arrivé a V=13.5, la place du print encore une fois va être remplacer par le script python res_batterie.py qui est la commande qui va être a l'origine de la décharge de V jusqu’à 12, voila la boucle.
    Bonjour,
    Donc, dans le schéma, après le test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if V < 12.00:
        print "res_electrique.py"   # --> res_electrique.py
    la tension est obligatoirement remontée au-dessus de 13,5 ? C'est bien cela?
    Alors, je comprends le premier "if".

    Ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if V > 13.50:
        print "la tension est plus grande que 13.50 et l'intensite est de " + str(A)
    if A > 1500.00:
        print "l'intensite est plus grande que 1500"
    else:
        print "la tension est superieur a 12 et l'intensite est de " + str(A)
    En python il n'y a pas d'erreur, mais ainsi que VinS l'indiquait la structure semble incohérente.
    Dans ce qui est écrit, ce que l'on comprend c'est qu'il y a deux choses qui sont testées de manière totalement indépendantes: la tension (premier if) et l'ampérage (deuxième if).

    Enfin, lors du test de l'ampérage (deuxième if uniquement), si l'intensité est inférieure (ou égale) à 1500.0 alors c'est la phrase suivante qui est affiche:
    "la tension est superieur a 12 et l'intensite est de " + str(A)
    C'est bien cela???

    Si c'est bien cela alors les tests sont corrects et doivent donner le résultat attendu.

    Il faudrait se pencher, au minimum, sur le code du post 11 (et peut-être remettre le "else") pour vraiment comprendre comment cela fonctionne.
    En étant un minimum concentré, et en n'hésitant pas à poser des questions, en moins d'une heure cela deviendra très clair!!!
    Sinon, en quelques heures, un tutoriel tel que celui de G.Swinenn (sur la page cours) permet de comprendre tout cela sans problème.

    PS: la structure "if":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if cond1:
        print("cond1")
    elif cond2:
        print("cond2")
    elif cond3:
        print("cond3")
    else:
        print("tout les autres cas")
    Avec: cond des conditions (expressions) évaluables à oui/non.
    cond1/cond2/… sont exclusives: si cond1 est vérifiée print("cond1") est affiché puis tout le reste de la structure est "oublié". Idem pour les autres "elif".
    Si aucune des conditions (cond1…cond3) n'est évaluée à vrai (True) c'est le "else" qui est choisi et print("tout les autres cas") qui est exécuté.
    Il peut y avoir 0 à autant de "elif" que désiré (et le "else" est facultatif).

    Il ne faut pas hésiter à poser des questions!!!!

    Clodion

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    Merci je suis très touché par votre aide.

    Pour finir je me demande si while est la bonne solution, du coté bash cron est la meilleure solution et je pense que je vais partir dans ce sens.

    Donc le script sera simplement

    juste la partie if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if V < 12
          démarrer script :res_electrique.py    #active réseau electrique attends 5 sec desactive réseau batterie
    elif V>13.5
          démarrer script :res_batterie.py       #active réseau batterie attends 5 sec desactive réseau electrique
    elif A>1500
          démarrer script :res_batterie.py       #active réseau batterie attends 5 sec desactive réseau electrique
    else
          fait rien
    <<<< je ne sais pas comment demander au système de ne rien faire
    et comment demande t'on dans un script le chargement d'un autre script py

    merci d'avance

  18. #18
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par maximeh2 Voir le message
    Pour finir je me demande si while est la bonne solution, du coté bash cron est la meilleure solution et je pense que je vais partir dans ce sens.

    juste la partie if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if V < 12
          démarrer script :res_electrique.py    #active réseau electrique attends 5 sec desactive réseau batterie
    elif V>13.5
          démarrer script :res_batterie.py       #active réseau batterie attends 5 sec desactive réseau electrique
    elif A>1500
          démarrer script :res_batterie.py       #active réseau batterie attends 5 sec desactive réseau electrique
    else
          fait rien
    <<<< je ne sais pas comment demander au système de ne rien faire
    Bonsoir,
    La structure "While" avec un "time.sleep" peu être une solution, mais cela signifie que le script n'exécutera rien d'autre pendant ce temps! Le script sera "figé".
    Il ne faut pas oublier de mettre les variables A et V à jour dans la boucle "while" sans fin!

    Citation Envoyé par maximeh2 Voir le message
    et comment demande t'on dans un script le chargement d'un autre script py
    Généralement, un script tel que "res_electrique.py" est importé puis les fonctions/classes/constantes sont utilisées à l'intérieur même du script de départ.
    Mais je pense que le suivi d'un petit tuto est très rapide et permettrait d'être à l'aise avec ces notions.
    Celui de G.Swinenn est ici.


    Clodion

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    autre problème...

    Je dois savoir si l'action res_batterie ou res_electrique a été lancé, en lancant la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    root@octopi:/var/www# gpio readall
     +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+
     | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
     |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
     |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
     |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
     |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
     |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
     |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
     |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 1 | OUT  | GPIO. 4 | 4   | 23  |
     |     |     |    3.3v |      |   | 17 || 18 | 0 | OUT  | GPIO. 5 | 5   | 24  |
     |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
     |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 1 | OUT  | GPIO. 6 | 6   | 25  |
     |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
     |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     |  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |
     |  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
     +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+


    je dois isoler le 1 ou 0 (rouge) et l'inscrire dans une variable, comme dois je procéder

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    j'ai trouvé une autre solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/python
     
     
    import commands
    gpio25=commands.getoutput('gpio read 22')
     
    gpio24=commands.getoutput('gpio read 18')

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Problème avec une boucle
    Par yayacameleon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 09/03/2006, 09h53
  2. Problème basique XSL
    Par tarrant17 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2006, 13h32
  3. Problème sur une boucle
    Par Mateache dans le forum ASP
    Réponses: 6
    Dernier message: 31/01/2006, 09h48
  4. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo