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 ma ho grande speranza in Voi tutti e nelle Vs. conoscenze!!
lettura dati da seriale ed inserimento in una cella di CALC
-
- 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
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
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
- Claudio_F
- 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
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):
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 (come prima, salvare in un file e avviare con python nomefile.py)
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.
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
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()
-
- 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
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
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
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 15 ospiti