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 :

Comment répondre en auto à un menu choix multiple


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    consultant de merde
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : consultant de merde
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Comment répondre en auto à un menu choix multiple
    Bonjour !

    Je suis nouveau sur ce forum, et j'espère que mon inexpérience ne vous fera pas peur.
    Voila mon problème : Je travaille pour un intégrateur, et nous avons à intégrer un contrôleur led wifi zengge dans une interface intuilab.
    Après avoir cherché dans github comme un fou, j'ai trouvé des scripts compilable sous lango, mais incomplets.
    ET... J'ai trouvé un script python qui fonctionne parfaitement, mais lors de son exécution sous windows 10 ( avec python ), la fenêtre python/interprétée par win 10 m'offre un sympathique menu qui m'offre un choix multiple.
    Or, j'ai besoin pour mon intégration de lancer l'un de ces choix automatiquement.
    C'est là que j'ai besoin de vous, comment print un choix automatiquement, sachant que je peux créer autant de fichiers avec le même script, mais avec des choix différents.
    Ensuite et ce sera tout, je voudrais, une fois le script terminé, fermer cette fenêtre.
    Je vous copie le code, si vous avez des idées, je vous remercie d'avance !

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    !/usr/bin/env python
    import socket
     
     
     
     
    ip = "192.168.0.16"
    port = 5577
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((ip, port))
     
     
    commands = {
            "on":  bytearray([0x71, 0x23, 0x0F]),
            "off": bytearray([0x71, 0x22, 0x0F]),
            "warm": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x0F]),
            "warmw": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0x34, 0x0F]),
            "white": bytearray([0x31, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x0F]),
               "down": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0x34, 0x0F]),
        "up": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x0F])
            }
     
     
     
     
    def run():
        print("List of commands:")
        for key, value in commands.items():
            print(key)
     
        while True:
            c = input("Command: ")
            if c not in commands:
                print("List of commands:")
                for key, value in commands.items():
                    print(key)
     
            else:
                send(commands.get(c))
     
     
    def checksum(command):
        checksum = sum(command) & 0xFF
        command.append(checksum)
        return command
     
     
    def send(command):
        command = checksum(command)
        sock.send(command)
     
     
    def finish():
        sock.close()
     
     
     
     
    if __name__ == "__main__":
        run()


    [SIZE=3]

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    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 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Citation Envoyé par Koalakatchkele Voir le message
    ET... J'ai trouvé un script python qui fonctionne parfaitement, mais lors de son exécution sous windows 10 ( avec python ), la fenêtre python/interprétée par win 10 m'offre un sympathique menu qui m'offre un choix multiple.
    Techniquement, il suffit de modifier la fonction "run" pour qu'elle lance la commande associé au choix voulu sans rien proposer à l'utilisateur. Mais évidement pour faire çà il faut comprendre un peu comment cela est codé en Python.
    Peut être que certains voudront coder cela gracieusement pour vous, moi je me contenterai de vous recommander de commencer par la lecture d'un tuto. car si vous connaissiez un minimum n'importe quel langage de programmation impératif faire cela ne devrait vous poser aucun problème.

    - W

  3. #3
    Candidat au Club
    Homme Profil pro
    consultant de merde
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : consultant de merde
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Merci
    Merci infiniment pour votre réponse, cela fait 3 jours que je farfouille sur les sites traitant de python, et pour tout vous avouer, comme je l'ai précisé au début de ma requête, je suis inexpérimenté en codage.
    Toutefois, je suis beaucoup efficace sur les os.
    On ne peut être partout à la fois, me disait un de mes collègue formateur comme moi.
    S'il n'était pas en vacances, je n'aurais pas eu à poster sur ce forum.
    Mais on ne m'y reprendra plus ! Promis !

    pour faire çà il faut comprendre un peu comment cela est codé en Python
    Un peu arrogant comme réponse non ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Points : 482
    Points
    482
    Par défaut
    Bonsoir,

    ne le prenez pas mal mais la plus part du temps les nouveaux membres débarquent dans l'idée qu'on fasse leur travail/devoir alors que le but de ce forum est plutôt d'apporter un support de développement, une aide bénévole qui prend souvent beaucoup de temps pour essayer d'y répondre. Comprenez que c'est un peu lassant.
    Moi j'ai tendance à laisser passer mais des gens comme wiztricks ont justement le courage d'essayer de les aiguiller sur une solution.

    Mais passons...



    Il y plusieurs points qui vont pouvoir vous faire avancer.

    Pour pouvoir paramétrer le lancement de votre script, et donc de passer des arguments, le plus simple et rapide sera d'utiliser : sys.argv

    Exemple d'utilisation ici : developpez.net/passages-parametre/#post1784477

    Le plus propre sera de passer en paramètre les arguments depuis la fonction run:
    soit en brut :
    et la fonction récupérera les mêmes arguments toujours sous forme de liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def run(arguments):
    ...
    soit en extrayant de la liste les arguments dans la section '__main__' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    script_path = sys.argv[0]
    command = sys.argv[1]
    run(command)
    Puis dans la fonction run :

    On retire la ligne de boucle "while True:" on dé-indente le code qui suit, on supprime "c = input("Command: ")" et le tour est joué.


    J'avais oublié, il faut penser à importer sys en début de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import socket
    import sys

  5. #5
    Candidat au Club
    Homme Profil pro
    consultant de merde
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : consultant de merde
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Merci merci !
    Je vais tenter cela ce week end.

    Je vous remercie encore pour votre rapidité !

Discussions similaires

  1. [AC-2007] Comment faire un groupe d'option à choix multiples
    Par Elena34 dans le forum IHM
    Réponses: 2
    Dernier message: 22/04/2009, 09h37
  2. [debutant] Menu choix multiple
    Par jcaspar dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 18/12/2006, 08h29
  3. Réponses: 1
    Dernier message: 12/07/2006, 09h51
  4. Réponses: 3
    Dernier message: 15/05/2006, 16h09
  5. Comment creer un choix multiple avec des cases a cocher ??
    Par pedrosystem dans le forum Access
    Réponses: 5
    Dernier message: 09/03/2006, 10h36

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