[bglug] Controllare pc dalla seriale con arduino

Giuseppe Capizzi redstarlabs@gmail.com
Lun 14 Lug 2008 14:56:19 CEST


Il giorno dom, 13/07/2008 alle 23.09 +0200, emuboy ha scritto:
> "tail -f /dev/ttyUSB0 | bash "
> 
> ecco un ottima risposta, l'unico problema è che non
> funziona....ovvero...se faccio "tail -f /dev/ttyUSB0" e l'arduino
> manda su "/usr/bin/play" (il mio comando che punta a uno script)  e
> per me fin qui va tutto bene, ma se gli do "| bash " bash non capisce
> il comandi,quasi fosse corrotto...
Ho provato a fare la stessa cosa sostituendo a /dev/ttyUSB0 un file di
testo e facendo 

$ echo "ls -l" >> file.txt

e tutto funziona. Se uso > anziché >> (cioè sostituisco il contenuto del
file anziché aggiungere le righe in coda) invece non funziona e dice che
"il file è stato troncato". Tu non ricevi nessun errore?

> sono nel buio più completo...mi
> manca forse un carattere endline oppure dimentico qualcosa?
Prova a postare l'output dei tuoi esperimenti, con e senza il "|bash". 

Altra domanda: una volta letto, il device si presenta come un file vuoto
finché non viene riscritto o conserva il contenuto?

Solo nel *primo* caso potresti provare ste 2 righe di python...

---8<---cut here---8<---
#!/usr/bin/env python

from time import sleep  as sleep
from os   import system as system

while True:
    system(open('/dev/ttyUSB0', 'r').read())
    sleep(1.0)
---8<---cut here---8<---

Ti basta incollarle in un file, renderlo eseguibile e lanciarlo. Ad ogni
secondo legge il contenuto del device e lo esegue.

Attento perché se il device dopo la lettura non si "svuota" il comando
viene eseguito ad oltranza...
-- 
Giuseppe Capizzi



Maggiori informazioni sulla lista bglug