Acceda al puerto serie a través de php

Intenté jugar con acceder a un puerto serie con PHP, pero no tuve mucha suerte.

Intenté usar fsockopen , fopen , proc_open , etc. No puedo leer ni escribir en el socket.

Ejemplo:

 $fp = fopen("/dev/ttyUSB0", "w+"); fwrite("enable"); echo fread($fp, 1024); 

Me he encontrado con esto muchas veces en el pasado. Una vez estaba creando una interfaz de administración para un Cisco 2811. Esto puede funcionar para el suyo, aunque no estoy seguro de su versión de IOS (suponiendo que Cisco se fwrite(); su fwrite(); través de la consola).

Vea si su usuario tiene acceso al dispositivo primero. Fácilmente, esto se puede hacer con la screen /dev/ttyUSB0 . Ejecute sus comandos, para separarlos, presione ctrl+a luego d .

stream_* uso la familia stream_* para algo como esto.

Aquí hay un ejemplo:

 $stream = stream_socket_client("udg:///dev/ttyUSB0", $errno, $errstr, 30); fwrite($stream, "enable"); while(true){ $line = stream_get_contents( $stream ); if($line == 'exit'){ break; } } 

De forma predeterminada, stream_socket_client inicia en modo de locking, por lo que no necesita alternarlo manualmente.

Otra cosa que puede hacer si no le importa instalar una extensión es la extensión DirectIO . Posee funciones que le permiten establecer la velocidad en baudios y todas las cosas buenas, por ejemplo aquí .

Incluso puede echar un vistazo a este proyecto: http://code.google.com/p/php-serial/source/browse/trunk/