Programmazione a parlare a una porta seriale in OS X o Linux

voti
15

Ho un segno del LED Prolite che mi piace di impostare fino a mostrare lo scorrimento query di ricerca da un log di Apache e altre statistiche divertenti. Il problema è, il mio G5 non avere una porta seriale, quindi devo usare un USB per dongle seriale. Si presenta come /dev/cu.usbserial e /dev/tty.usbserial.

Quando faccio questo tutto sembra essere rose e fiori:

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

Tutto funziona anche quando uso lo strumento porta seriale per comunicare con esso.

Se corro questo pezzo di codice, mentre il sopra citato strumento di porta seriale, everthing funziona anche. Ma non appena ho scollegare l'attrezzo la connessione si 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()

Quindi la domanda è, cosa magie devo eseguire per iniziare a parlare con la porta seriale, senza lo strumento porta seriale? che è un problema di autorizzazioni? Inoltre, qual è la differenza tra /dev/cu.usbserial e /dev/tty.usbserial?


No, non i numeri di serie. Il fatto è che il problema persiste anche con sudo-esecuzione dello script python, e l'unica cosa che lo rende passare attraverso se apro il collegamento nello strumento GUI che ho citato.

È pubblicato 06/08/2008 alle 20:00
fonte dall'utente
In altre lingue...                            


2 risposte

voti
0

avete provato a guardare il traffico tra l'interfaccia grafica e la porta seriale per vedere se c'è un qualche tipo di comando speciale di essere inviato attraverso? Inoltre solo curioso, Python sta inviando ASCII e non UTF-8 o qualcos'altro giusto? Il motivo che mi chiedo è perché ho notato le modifiche preventivo per le corde e in alcune lingue che in realtà è la differenza tra ASCII e UTF-8.

Risposto il 06/08/2008 a 22:40
fonte dall'utente

voti
5

/dev/cu.xxxxxè il dispositivo "callout", è quello che si usa quando si stabilisce una connessione con il dispositivo seriale e iniziare a parlare ad esso. /dev/tty.xxxxxè il dispositivo "dialin", utilizzato per il monitoraggio di una porta per chiamate in arrivo per esempio un ascoltatore fax.

Risposto il 06/08/2008 a 23:19
fonte dall'utente

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