[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Trasferimento file via seriale



Alfredo Finelli ha scritto:
> On Friday 19 September 2008 14:56, Gianfranco Ferramosca wrote:
>> Un saluto a tuta la lista!
>> Devo trasferire un semplice file di testo da un dispositivo ad un pc
>> tramite la porta seriale. Il pc ed il dispositivo sono collegati
>> tramite un cavo nullmodem ed il protocollo utilizzato è l'Xmodem.
>> La ricezione dev'essere automatica, non avviata dall'utente. Ho
>> bisogno, in pratica, di una sorta di demone che resti in sacolto
>> sulla seriale e che scarichi il file quando "sente" la chiamata.
>> Ho scritto questo script bash:
>>
>> #!/bin/sh
>> /usr/bin/rx --append -vvaX /home/gianfranco/file_ricevuto.dat <
>> /dev/ttyS0 > /dev/ttyS0
>>
>> Eseguendolo da shell ed avviando la trasmissione sul dispositivo,
>> nella mia home viene creato un file contenente i dati letti dalla
>> seriale. Ho modificato, quindi, il file /etc/inittab prima in questo
>> modo:
>>
>> T0:23:respawn:/sbin/getty -nL -l /home/gianfranco/ricevi.sh ttyS0
>> 9600
>>
>> poi:
>>
>> T0:23:respawn:/home/gianfranco/ricevi.sh
>>
>> In entrambi i casi, la trasmissione termina correttamente, ma il file
>> nella mia home è vuoto!
>> Il file /var/log/syslog mi riporta questo:
>>
>> Sep 19 14:25:37 Gianfranco rx[2245]: [root] file_ricevuto.dat/XMODEM:
>> 384 Bytes, 6 BPS
>>
>> Dal log mi sembra di capire che i dati siano stati ricevuti, ma come
>> mai il file risulta vuoto?
> 
> Salve,
> 
> credo che l'opzione "--append" funzioni solo per il protocollo ZMODEM.   
> Probabilmente ogni successiva istanza di "rx" apre il 
> file "file_ricevuto.dat" in modalità di scrittura semplice anziché 
> append così da eliminarne il contenuto.
> 
> Si potrebbe usare un nome diverso per ogni file trasmesso, ottenendo una 
> sequenza di file separati che possono essere poi riorganizzati a 
> posteriori dallo stesso script.
> 
> Cordiali saluti.
> 
> 
> alfredo
> 
> 
Ti ringrazio, mi sei stato di grande aiuto!
Come mi dicevi, l'opzione --append non funziona col protocollo xmodem.
Non l'avevo notato nel man di rx.
Rigurado al file vuoto ci hai azzeccato! Ogni volta che la ricezione
termina, il mio script viene ri-eseguito sovrascrivendo, in questo modo,
il file con i dati con uno vuoto!
Infatti, se durante la trasmissione uso il comando

tail -f file_ricevuto.dat

riesco a visualizzare i dati scaricati. Non appena la trasmissione
termina, ottengo un errore in quanto il file viene sovrascritto!
Ho provato ad utilizzare l'opzione -E per rinominare automaticamente il
file, ma sembra non funzionare. Posso risolvere semplicemnete
aggiungendo, ad esemiop, il comando:

mv file_ricevuto.dat file1.dat

al mio script?
Grazie di nuovo


Reply to: