Parler par programme à un port série sous OS X ou Linux

J'ai un panneau LED Prolite que j'aime configurer pour afficher les requêtes de recherche par défilement à partir d'un journal apache et d'autres statistiques amusantes. Le problème est que mon G5 n'a pas de port série, je dois donc utiliser un dongle USB vers série. Il apparaît comme /dev/cu.usbserial et /dev/tty.usbserial .

Quand je fais ça, tout semble aller bien :

stty -f /dev/cu.usbserial
speed 9600 baud;
lflags: -icanon -isig -iexten -echo
iflags: -icrnl -ixon -ixany -imaxbel -brkint
oflags: -opost -onlcr -oxtabs
cflags: cs8 -parenb

Tout fonctionne également lorsque j'utilise l'outil de port série pour lui parler .

Si j'exécute ce morceau de code avec l'outil de port série mentionné ci-dessus, tout fonctionne également. Mais dès que je déconnecte l'outil, la connexion est perdue.

#!/usr/bin/python

import serial

ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10) 
ser.write('<ID01><PA> 
') 
read_chars = ser.read(20)
print read_chars

ser.close()

La question est donc : quelle magie dois-je effectuer pour commencer à parler au port série sans l'outil de port série ? Est-ce un problème de permissions ? Aussi, quelle est la différence entre /dev/cu.usbserial et /dev/tty.usbserial ?

Non, pas de numéros de série. Le problème est que le problème persiste même avec l'exécution sudo du script python, et la seule chose qui le fait passer si j'ouvre la connexion dans l'outil graphique que j'ai mentionné.

请先 登录 后评论

1 réponses

Nick Berardi

Avez-vous essayé de surveiller le trafic entre l'interface graphique et le port série pour voir s'il y a une sorte de commande spéciale envoyée ? Aussi juste curieux, Python envoie ASCII et non UTF-8 ou autre chose, n'est-ce pas ? La raison pour laquelle je demande est parce que j'ai remarqué que votre citation change pour les chaînes et dans certaines langues, c'est en fait la différence entre ASCII et UTF-8.

请先 登录 后评论