lettura dati da seriale ed inserimento in una cella di CALC

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
ugo_62
Prode Principiante
Messaggi: 3
Iscrizione: giovedì 27 dicembre 2012, 23:24
Desktop: ubuntu-2d
Distribuzione: UBUNTO 12.04.01 LTS

lettura dati da seriale ed inserimento in una cella di CALC

Messaggio da ugo_62 »

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
Prode Principiante
Messaggi: 3
Iscrizione: giovedì 27 dicembre 2012, 23:24
Desktop: ubuntu-2d
Distribuzione: UBUNTO 12.04.01 LTS

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

Messaggio da ugo_62 »

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
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

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

Messaggio da Claudio_F »

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.
:ciao:
ugo_62
Prode Principiante
Messaggi: 3
Iscrizione: giovedì 27 dicembre 2012, 23:24
Desktop: ubuntu-2d
Distribuzione: UBUNTO 12.04.01 LTS

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

Messaggio da ugo_62 »

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:
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 10 ospiti