[Risolto] arduino e php

Ho collegato una 2009 su una debian virtualizzata con installato xampp. Ho configurato il webserver e tutto il resto, il codice php viene interpretato correttamente ed ho settato i permessi per usare la seriale. Ho installato la classe php per comunicare con la porta seriale (php_serial.class.php) e riesco ad inviare senza problemi dei dati dal webserver all'arduino ma non riesco a riceverli. Premetto che con minicom i dati in arrivo dall'arduino riesco a vederli ma passando per php nel browser non ricevo niente di niente. Il codice nell'arduino è molto banale, non penso serve postarlo... quando arriva un carattere sulla seriale lo rimanda semplicemente indietro. Ecco il codice php che dovrebbe stamparmi a video il dato inviato da arduino:

deviceSet("/dev/ttyUSB0"); // Porta della periferica
  $serial->confBaudRate(9600); // Baud rate: 9600
  $serial->confParity("none");  // Bit parità ("N" su "8-N-1")
  $serial->confCharacterLength(8); // Lunghezza caratteri ("8" su "8-N-1")
  $serial->confStopBits(1);  // Stop bits ("1" su "8-N-1")
  $serial->confFlowControl("none");
  // apro la porta
  $serial->deviceOpen();
  // Invio dati
  $serial->sendMessage("5");
  // Ricevo dati
  $read = $serial->readPort();
  echo (int)$read;
  // Se devo cambiare configurazione chiudo la porta
  $serial->deviceClose();
?>

Nel browser stampa sempre 0 nonostante vedo i led della seriale accendersi; non dipende nemmeno dall'autoreset perchè l'ho già disabilitato con un condensatore da 10uF. Ho già cercato in rete ma non ho avuto molto successo, sapete darmi una mano? Qui sembra tutto ok ma non ne vengo fuori, se servono altre info sto a disposizione. Scusatemi se sono andato un pò OT :blush:

Hai controllato se : - Invii caratteri ascii o dati binari? Prova con semplici caratteri ascii prima - C'è qualche buffer che deve svuotarsi prima di restituire i dati per quanto riguarda la lettura? - Hai dei warning da qualche parte?

A momenti gli passo anche i geroglifici :) Ho provato di tutto, però dovrebbe essere indifferente cosa gli passo; nello script php quello che dovrebbe arrivare lo converto in integer così mi dovrebbe stampare comunque un numero. Gli errori che riscontravo all'inizio erano legati ai permessi ma li ho superati, per ora non ne ho individuati (ma non posso escluderli). Non ho ancora inserito un buffer, è solo un test di prova difatti invio solo un carattere. Grazie per la risposta

Intendevo se c'era un buffer nella classe PHP anche se da come hai esposto il problema.. sembra un falso contatto su una linea della seriale

chmod 777 /dev/ttyUSB0

:zipper_mouth_face:

Questa NON è la soluzione migliore, non devi [u]mai[/u] dare permessi 777 alle periferiche. ;)

Il tuo problema nasceva dal fatto che dovevi semplicemente assegnare il tuo utente al gruppo che può accedere alle periferiche USB, che se non ricordo male su Ubuntu/Debian o è il gruppo uucp o quello dialout.