Ho eseguito in questo molte volte in passato. Una volta stava creando un'interfaccia di gestione per un Cisco 2811. Questo potrebbe funzionare per il tuo, anche se non sono sicuro della tua versione IOS (supponendo Cisco a causa della tua console fwrite();
).
Verificare se l'utente ha accesso prima al dispositivo. Facilmente, questo può essere fatto con screen /dev/ttyUSB0
. Esegui i tuoi comandi, per staccare, premere ctrl+a
quindi d
.
I più comunemente uso la famiglia stream_*
per qualcosa di simile.
Ecco un esempio:
$stream = stream_socket_client("udg:///dev/ttyUSB0", $errno, $errstr, 30);
fwrite($stream, "enable");
while(true){
$line = stream_get_contents($stream);
if($line == 'exit'){
break;
}
}
Per impostazione predefinita, stream_socket_client
si avvia in modalità di blocco, quindi non c'è bisogno di manualmente ginocchiera esso.
Un'altra cosa che puoi fare se non ti dispiace installare un'estensione è l'estensione DirectIO
. Possiede funzioni che ti consentono di impostare la velocità di trasmissione e tutte le funzioni, example here.
Si può anche dare un'occhiata a questo progetto: http://code.google.com/p/php-serial/source/browse/trunk/
fonte
2012-07-27 02:06:15
fa l'utente esegue lo script avere permanenti di scrittura su quel dispositivo? 'ls -l/dev/ttyUSB0' –
Se installi un pacchetto UUCP,' cu/dev/ttyUSB0' o 'tip/dev/ttyUSB0' funziona come previsto? ('screen' può anche fare cose seriali, se non hai un facile accesso a UUCP ...) – sarnold
Non ho mai avuto accesso a una porta seriale in php, ma non dovresti impostare il baud, la parità, le interruzioni, ecc. in qualche modo? – hackattack