2010-09-03 23 views
0

[edit] Initialement, je pensais que c'était un problème pyserial mais ce n'est pas le cas. Fondamentalement, c'est un problème de système: envoyer n'importe quoi sur le port série (/ dev/ttyS0) aurait besoin d'un "\ n" ou "\ r" sinon il sera simplement tamponné. Voici la question originale. Est-ce une limitation du pilote Linux ou existe-t-il des paramètres que je peux modifier?port série: doit envoyer n

Bonjour là,

J'essaie d'utiliser pyserial pour écrire un code de test. En réalité, je vais transmettre des données binaires mais ce n'est pas mon problème. Mon problème est le suivant: on dirait que la commande pyserial write() n'enverra réellement les données que lorsqu'elle verra "\ n". Prenez le code suivant pour l'envoi d'un fichier texte pur.

for l in file: 
    print "Sending %s" % l 
    s.write(l) 
    s.flush() 
    time.sleep(2) 

À moins insérer s.write ("\ n") après s.write (l), rien ne voit de l'autre côté. Y at-il un moyen que je peux faire pyserial pour envoyer ce que je veux quand je le veux?

Merci,

+0

Cela ressemble à un bug dans votre version de 'pyserial', car' flush' ** est ** documenté comme "attendez que toutes les données soient écrites" (cfr http://pyserial.sourceforge.net/pyserial_api.html) . Pouvez-vous passer à la dernière version de pyserial? –

+0

J'ai passé à la version 2.5. – lang2

Répondre

1

de la documentation pyserial http://pyserial.sourceforge.net/pyserial_api.html qui ne semble pas être le cas. Quelle version utilisez-vous?

pour clarifier, quel pySerial et quel python semblent être pertinents.

+0

J'utilise ubuntu 10.04 qui dit qu'il a 2.3 installé mais la ver- sion VERSION dans le module est 1.3.2 (ou quelque chose). J'ai donc mis à jour vers la dernière 2.5 à partir de la source. – lang2

+0

De la méthode 'write' - Modifié dans la version 2.5: Accepte les instances de bytes et bytearray lorsqu'elles sont disponibles (Python 2.6 et plus récent) et str sinon. – KevinDTimm

+0

J'utilise python 2.6.5 – lang2