Python - Problema comunicazione con seriale

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
somp66
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 457
Iscrizione: mercoledì 17 dicembre 2008, 10:46
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 LTS x86_64

Python - Problema comunicazione con seriale

Messaggio da somp66 »

Buongiorno.
Come da oggetto ho un problema di comunicazione con la mia porta.
Riporto il codice che ho utilizzato:

Codice: Seleziona tutto

graz@graz-laptop:~/python$ python scanlinux.py
Found ports:
/dev/ttyS3
/dev/ttyS2
/dev/ttyS1
/dev/ttyS0
graz@graz-laptop:~/python$ 
import serial
Ma quando vado a lanciare quest'altra applicazione:

Codice: Seleziona tutto

import serial

ser=serial.Serial('/dev/ttyS0',9600,8,timeout=0)
s=ser.read(100)
print s
ser.close()
mi da il seguente output:

Codice: Seleziona tutto

graz@graz-laptop:~/python$ python porta_seriale.py
Traceback (most recent call last):
  File "porta_seriale.py", line 11, in <module>
    s=ser.read(100)
  File "/usr/lib/python2.6/dist-packages/serial/serialposix.py", line 311, in read
    if self.fd is None: raise portNotOpenError
serial.serialutil.SerialException: Port not open
e questo vale per tutte le porte trovate, nel senso che mi da lo stesso errore se metto: ttyS1, ttyS2, ttyS3.

Come fare? Ho la necessità di leggere dati da un device esterno che trasmette solo via IrDA.

Grazie
Ashura
Prode Principiante
Messaggi: 199
Iscrizione: venerdì 13 ottobre 2006, 9:55

Re: Python - Problema comunicazione con seriale

Messaggio da Ashura »

prima dell'istruzione

Codice: Seleziona tutto

s = ser.read(100)
devi aggiungere

Codice: Seleziona tutto

ser.open()
non puoi leggere o scrivere da/in una serial senza prima aprirla.

Tieni presente che la open puoi restituire errore o lanciare un eccezione nel caso quella seriale sia gia' stata aperta da qualcun' altro

ecco un link ad ulteriore documentazione

http://pyserial.sourceforge.net/pyserial_api.html
somp66
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 457
Iscrizione: mercoledì 17 dicembre 2008, 10:46
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 LTS x86_64

Re: Python - Problema comunicazione con seriale

Messaggio da somp66 »

Buongiorno,
ho provato a fare come mi hai indicato:

Codice: Seleziona tutto

ser=serial.Serial('/dev/ttyS3',9600,timeout=1)
ser.open()
s=ser.read(100)
print s
ser.close()
ma sempre con lo stesso messaggio:

Codice: Seleziona tutto

graz@graz-laptop:~/python$ python porta_seriale.py
Traceback (most recent call last):
  File "porta_seriale.py", line 12, in <module>
    s=ser.read(100)
  File "/usr/lib/python2.6/dist-packages/serial/serialposix.py", line 311, in read
    if self.fd is None: raise portNotOpenError
serial.serialutil.SerialException: Port not open
graz@graz-laptop:~/python$
Che debba usare pyusb? e se si come fare?

P.s. La IrDA-USB funziona in quanto ho provato con il comando:
sudo irattach irda -s
e inizia a fare il classico lampeggio.
Spero possiate aiutarmi.
Grazie
Ashura
Prode Principiante
Messaggi: 199
Iscrizione: venerdì 13 ottobre 2006, 9:55

Re: Python - Problema comunicazione con seriale

Messaggio da Ashura »

controlla il valore restituito da ser.open(), probabilmente restituisce un codice d'errore.

inoltre se ho ben capito stai tentando di aprire una porta USB come se fosse una normale RS232 giusto? :D non so se funziona( a dire il vero non ho mai provato )
somp66
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 457
Iscrizione: mercoledì 17 dicembre 2008, 10:46
Desktop: ubuntu
Distribuzione: Ubuntu 12.04 LTS x86_64

Re: Python - Problema comunicazione con seriale

Messaggio da somp66 »

Prima di tutto grazie per i consigli.
Siccome non sono molto pratico, come faccio a vedere il valore restituito da ser.open () ?

Si sto cercando di fare quello che scrivi nella seconda parte della tua risposta, questo mi è stato consigliato sul forum di Python ma, purtroppo, senza esito positivo.
Se hai qualche altro accorgimento  da darmi te ne sarei molto grato.
Grazie
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti