Programaticamente falando a uma porta serial no OS X ou Linux

votos
15

Eu tenho um sinal de LED Prolite que eu gostaria de configurar para mostrar a rolagem consultas de pesquisa a partir de um apache logs e outras estatísticas divertidas. O problema é, o meu G5 não tem uma porta serial, então eu tenho que usar um adaptador USB para dongle serial. Ele aparece como /dev/cu.usbserial e /dev/tty.usbserial.

Quando eu fizer isso tudo parece ser ótimo:

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

Tudo também funciona quando eu uso a ferramenta de porta serial para falar com ele.

Se eu executar este pedaço de código enquanto o acima indicado ferramenta de porta serial, Ouvia também funciona. Mas assim que eu desligar a ferramenta a conexão se perde.

#!/usr/bin/python

import serial

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

ser.close()

Então a questão é, o que magicks que eu preciso para executar para começar a falar com a porta serial sem a ferramenta de porta serial? Isso é um problema de permissões? Além disso, qual é a diferença entre /dev/cu.usbserial e /dev/tty.usbserial?


Não, não há números de série. A coisa é, o problema persistir mesmo com sudo-executar o script python, e a única coisa que faz com que seja passar se eu abrir a conexão na ferramenta gui que eu mencionei.

Publicado 06/08/2008 em 22:00
fonte usuário
Em outras línguas...                            


2 respostas

votos
5

/dev/cu.xxxxxé o dispositivo "chamada", é o que você usa quando você estabelecer uma conexão com o dispositivo serial e começar a falar com ele. /dev/tty.xxxxxé o dispositivo "dialin", usado para monitorizar uma porta para as chamadas de entrada para um ouvinte, por exemplo de fax.

Respondeu 07/08/2008 em 01:19
fonte usuário

votos
0

você já tentou assistir o tráfego entre o GUI ea porta serial para ver se há algum tipo de comando especial a ser enviada através? Também apenas curioso, Python está enviando ASCII e não UTF-8 ou qualquer outra coisa certa? A razão que eu peço é porque eu notei sua cotação de mudanças para as cordas e em alguns dos idiomas que realmente é a diferença entre ASCII e UTF-8.

Respondeu 07/08/2008 em 00:40
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more