Je rencontre des problèmes pour parler à un périphérique Cisco via série en utilisant pyserial. Je reçois la réponse que j'attends parfois, mais pas toujours, et je n'ai aucune idée de ce que je fais de mal. Parfois, je reçois des réponses vides plusieurs fois de suite. Je cours Windows 7, python 2.7, pyserial 2.7.PySerial avec des appareils Cisco ne répond parfois que
Voici un exemple de code pour obtenir une réponse.
ser = serial.Serial("COM20")
ser.timeout = 2
ser.parity = 'N'
ser.write("\nenable\nsh ip int brief\n")
print ser.read(10**8)
Les réponses je reçois ressembler à quelque chose comme ça, comme prévu: Router(config)#
Les paramètres requis par cisco:
Bits per sec : 9600
Data bits : 8
Parity : none
Stop bits : 1
Flow control : none
Pour autant que je peux dire, ils correspondent aux valeurs par défaut pour pyserial .
édité pour ajouter plus d'informations, 9600 est correct. –
Il y a une chance que l'appareil fonctionne lentement sur série? Que se passe-t-il si vous ajoutez un appel time.sleep (1) entre l'écriture et la lecture? C'est cohérent alors? Qu'en est-il de time.sleep (10)? Le fait qu'il retourne plusieurs fois donne l'impression que vous essayez de lire avant que le tampon ne soit rempli, puis lorsque vous lisez une seconde fois vous obtenez les deux. –
J'envoie plusieurs commandes, pour me connecter et autres. Je l'ai eu à travailler avec telnet, mais la connexion série est toujours comme ça. Il faut environ 0,3 secondes pour recevoir la réponse que j'attends, donc les 5 secondes avec lesquelles j'ai essayé devraient être suffisantes. En outre, je reçois des réponses vides plusieurs fois de suite pour différentes commandes. –