2012-07-27 23 views
5

He intentado jugar con acceder a un puerto serie con PHP, pero no he tenido mucha suerte.Acceso puerto serie a través de php

He intentado usar fsockopen, fopen, proc_open, etc. No puedo leer o escribir en el zócalo.

Ejemplo:

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

¿El usuario que ejecuta la secuencia de comandos tienen ondulaciones permanentes de escritura en ese dispositivo? 'ls -l/dev/ttyUSB0' –

+0

Si instala un paquete UUCP, ¿' cu/dev/ttyUSB0' o 'tip/dev/ttyUSB0' funcionan como se esperaba? ('screen' también puede hacer cosas en serie, si no tiene fácil acceso a UUCP ...) – sarnold

+1

No he accedido a un puerto serial en php, pero ¿no debería configurar su baudio, paridad, stopbits, etc. . ¿de algun modo? – hackattack

Respuesta

3

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 sea el fwrite(); a través de la consola).

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

Uso la familia stream_* con más frecuencia para algo como esto.

Aquí se muestra 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; 
    } 
} 

Por defecto, stream_socket_client se inicia en modo de bloqueo, por lo que no necesita manual de palanca ella.

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, example here.

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

+0

DirectIO es la ruta que voy a tomar. ¡Gracias! –

Cuestiones relacionadas