Notizia:
  • Rilasciata Ubuntu 14.04 LTS Trusty Tahr. Per ottenerla, visitate questa pagina oppure visualizzate la dimostrazione.
  • È uscito il numero 15 della Newsletter italiana di Ubuntu. Lo trovate a questo indirizzo.
  • È uscito il numero 79 di Full Circle Magazine in italiano. Lo trovate a questo indirizzo.

lettura dati da seriale ed inserimento in una cella di CALC

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

lettura dati da seriale ed inserimento in una cella di CALC

Messaggioda ugo_62 » venerdì 28 dicembre 2012, 13:02

Ciao a tutti
ho appena installato Ubuntu 12.04 LTS, sono un principiante assoluto.
Ho questa necessità : leggere da una bilancia elettronica (seriale RS232, 9600 n 8 1 ) una stringa e mettere il peso letto in una cella di CALC.
La bilancia comunica in ASCII .Ho provato da hiperterminal (su XP) dei comandi semplicissimi ( "B 1") , e lei risponde con una stringa simile :

"XX.X 1 XXXX.X YYYY:YY:YY" . I campi sono separati da spazi e significano :

XX.X eventuale soppressione di tara
1 numero della bilancia (lo strumento puo averne collegate due)
XXXX.X peso
YYYY:YY:YY data

A me serve solo il terzo (il peso).
Pensavo che una script bash possa fare il lavoro di mandare il comando alla COM1 e filtrare il dato di interesse, poi mi resta da capire come invocarla da CALC e come restituire il valore di peso.
Per me il problema è insormontabile :muro: ma ho grande speranza in Voi tutti e nelle Vs. conoscenze!!
ugo_62 Non specificato
Prode Principiante
 
Messaggi: 3
Iscrizione: dicembre 2012
Distribuzione: UBUNTO 12.04.01 LTS
Desktop: ubuntu-2d

Re: lettura dati da seriale ed inserimento in una cella di C

Messaggioda ugo_62 » domenica 30 dicembre 2012, 12:23

pensavo che il seguente comando :
minicom -o <file_richiesta >dati_pesa

con la stringa "B 1" dentro file_richiesta potesse risolvermi la prima parte del problema

In effetti minicom si ricorda dei settaggi della seriale impostati, quindi dovrebbe evitarmi l'uso di setserial ed altre amenità
Che ne pensate? Purtroppo non ho la pesa con me per provare al momento , la ditta è chiusa x ferie
ugo_62 Non specificato
Prode Principiante
 
Messaggi: 3
Iscrizione: dicembre 2012
Distribuzione: UBUNTO 12.04.01 LTS
Desktop: ubuntu-2d

Re: lettura dati da seriale ed inserimento in una cella di C

Messaggioda Claudio_F » domenica 30 dicembre 2012, 23:44

Intanto c'è da capire quale sia la porta sotto Linux, ad esempio con il seguente script Python (rispettare le spaziature, salvare in un file pport.py e avviare da terminale con python pport.py, eventualmente c'è da installare il modulo serial con: sudo apt-get install python-serial):
Codice: Seleziona tutto
#! /usr/bin/env python
import serial
print "Lista porte seriali disponibili"
for prefix in ("com", "/dev/ttyS", "/dev/ttyUSB"):
    for number in range(48):
        portName = prefix + str(number)
        try:
            serial.Serial(portName).close()
            print portName
        except IOError:
            pass

Fatto ciò, e supponendo di aver scoperto che la porta si chiama /dev/ttyS0, si può provare a contattare la bila per vedere se risponde correttamente... o almeno qualcosa :p (come prima, salvare in un file e avviare con python nomefile.py)
Codice: Seleziona tutto
#! /usr/bin/env python
import serial
print "Test comunicazione con bilancia"
serialPort = serial.Serial("/dev/ttyS0", 9600, 8, "N", 1, timeout=5)
serialPort.write("B 1\r")    # il \r detto anche CR corrisponde all'invio
received = serialPort.readline().rstrip()
print "Ricevuto <" + received + ">"
serialPort.close()

Se arriva la stringa giusta, estrarre l'elemento voluto ed eventualmente scriverlo in un file è banale, passarlo a calc invece non ne ho la minima idea.
- Non è un errore sbagliato, è un errore di battitura -
Avatar utente
Claudio_F Non specificato
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 598
Iscrizione: maggio 2012
Distribuzione: Ubuntu/Xubuntu 12.04
Desktop: Unity/Xfce

Re: lettura dati da seriale ed inserimento in una cella di C

Messaggioda ugo_62 » lunedì 31 dicembre 2012, 14:08

Intanto ti ringrazio molto , Claudio_F!
La porta dovrebbe essere proprio ttyS0 o alla peggio ttyS1 . Una volta che la bilancia rispoda, l'estrazione della porzione di stringa potrebbe essere fatta con awk (vecchi ricordi!).
Come dicevo la ditta è ancora chiusa per ferie, mi ci vorrà qualche giorno per poter fare un test con la bilancia.

Come passarlo al calc... bè poi vedremo. Se già arrivo al primo passo arriverò anche al secondo!

Intanto, visto che sono un brocco totale, cerco i manuali del Phiton e me li scruto per bene
.... e anche se è off-topic........ BUON ANNO A TUTTI :ciao: :ciao:
ugo_62 Non specificato
Prode Principiante
 
Messaggi: 3
Iscrizione: dicembre 2012
Distribuzione: UBUNTO 12.04.01 LTS
Desktop: ubuntu-2d


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: gila75 e 4 ospiti