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

Réseau/Web Python Discussion :

Script pour sniffer des ports (usb, rs232, ethernet)


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 40
    Par défaut Script pour sniffer des ports (usb, rs232, ethernet)
    Bonjour,

    Je débute en Python et on me demande aujourd'hui de créer un script me permettant de sniffer un port usb, un port RS232 et un port ethernet d'un raspberry vers un pc sous windows 10 (ou debian en VM)...

    Et ... Je me perds dans tout ce qu'il est possible de faire..

    J'ai trouvé un script pour le RS232 qui me parait répondre à ce que l'on attend mais erreur, et je ne sais pas trop quoi faire ...

    Voici le script:

    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #
    # Ce programme réalise un test sur un bouchon série
    # Relier ensemble : RD(2) et TD(3), DTR(4) et DSR(6), RTS(7) et CTS(8)
    # Si vous n'avez pas les droits pour écrire vers le port série faites un chmod 666 /dev/ttyS0
     
    import serial
     
    def main():
        print("TEST DE PySerial")
        print("----------------")
        print
        ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
    #   ser = serial.Serial('/dev/ttyS0', 19200, timeout=1)
        ser.open()
        print ("Toutes les informations sur votre port série :")
        print("Port = %s" % ser.port)
        print("Baudrate = %s" % ser.baudrate)
        print("Bits = %s" % ser.bytesize)
        print("Parité = %s" % ser.parity)
        print("Bit de stop = %s" % ser.stopbits)
        print("Time out = %s" % ser.timeout)
        print("Xon/Xoff = %s" % ser.xonxoff)
        print("Rts/Cts = %s" % ser.rtscts)
    #    print("Time out entre caractères = %s" % ser.interCharTimeout)
        chaine="BONJOUR LE MONDE et tous les autres de l'univers!!!"
        print("Envoi de la chaine : %s" % chaine)
        envoi=ser.write(chaine)    # Envoi de la chaine de caracteres
        lecture=ser.readline()    # Lecture du port jusqu'au \n (retour ligne)
        print("Lecture du port : %s" % lecture)
        if (chaine==lecture):
            print("OK : La chaîne envoyée est égale à la chaîne reçue")
        else:
            print("ERREUR : La chaîne envoyée n'est pas égale à la chaîne reçue")
        print("ETAT DU SIGNAL CTS : %s" % ser.getCTS())
        print("ETAT DU SIGNAL DSR : %s" % ser.getDSR())
        print("ETAT DU SIGNAL RI : %s" % ser.getRI())
        print("ETAT DU SIGNAL DCD : %s" % ser.getCD())
        ser.close()
        return 0
     
    if __name__ == '__main__':
        main()
    Cela me retourne les erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Traceback (most recent call last):
     
      File "testpyserial.py", line 44, in <module>
     
        main()
     
      File "testpyserial.py", line 14, in main
     
        ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
     
    AttributeError: 'module' object has no attribute 'Serial'
    Pour la ligne 14 je pense que la fréquence est mauvaise mais pour la ligne 44, je ne sais pas...

    Auriez vous une aide à m'apporter s'il vous plait, je vous avoue que je ne vois pas trop quoi faire...

    En vous remerciant

  2. #2
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    Bonjour,
    le message d'erreur te dit simplement qu'il retrouve pas Serial, le fait qu'il parle de la ligne 44 c'est que l'erreur à la ligne 14 fait partie de la fonction main() qui est appelée à la ligne 44
    python t'indique juste les différents appels qu'il y a eu jusqu'à l'erreur.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 40
    Par défaut
    Ok .. en gros, Il ne voit pas mon port série ?

    Pourtant mon port est actif, j'arrive à me connecter dessus avec Tera term ...

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Salut,

    AttributeError: 'module' object has no attribute 'Serial' lorsque vous exécutez serial.Serial signifie que "import serial" n'a pas récupéré le bon module serial mais probablement chargé un script serial.py qui traîne dans le même répertoire que le script que vous lancez.

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

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 40
    Par défaut
    Est-ce que le fait de le lancer d'une VM change quelquechose ? Car je vois mon port activé depuis les options de Virtual Box mais est-ce que le debian sur la VM communique avec le Raspberry par le RS ??? Je n'arrive pas à savoir ...

    En lançant le script depuis teraterm il me dit que le port est déjà ouvert ... (normal puisque je suis déjà sur le port avec tera term...)

  6. #6
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Ce n'est pas un problème avec votre port série mais avec votre installation de la librairie Serial.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. un script pour creer des frameset
    Par hebmaster dans le forum Langage
    Réponses: 10
    Dernier message: 12/01/2006, 14h57
  2. [USB] [JNI] Utiliser JNI pour accéder aux ports USB
    Par Javatator dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/10/2005, 06h40
  3. utiliser un script pour inserer des objets 3D
    Par s_mihai dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2005, 13h52
  4. script pour ajouter des utilisateurs postgres
    Par xopos dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 16/08/2004, 10h49
  5. Script pour envoyer des info a mysql
    Par rhum1 dans le forum Linux
    Réponses: 6
    Dernier message: 15/04/2003, 16h19

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