Comunicacion puerto serial con PHP
Publicado por Hugo Armando Cadena Mantilla (3 intervenciones) el 15/05/2008 00:05:55
Buenas, a todos
Mi pregunta es la siguiente estoy realizando una aplicacion en php que se debe comunicar con una consola que esta conectada al puerto serial.
He logrado escribir los comandos en el puerto con manejo de archivos así:
<?php
$fp = fopen ("COM1:", "w+");
if (!$fp) {
echo "El puerto no esta abierto";
} else {
$string = ":01R";
echo $string;
$res=fputs ($fp,$string);
}
?>
donde $string es uno de los comandos que se le pueden enviar a la consola; esto funciona perfectamente y la consola rcibe los datos y los puede manipular.
El problema es cuando se le envie el comando para que ella etorne informacion el comando se le enviaria igual pero no se como poder obtener la cadena que me rtorna la aplicacion.
He intentado con algo como esto:
<?php
$fp = fopen ("COM1:", "rw");
if (!$fp) {
echo "El puerto no esta abierto";
} else {
$string = ":01I";
echo $string;
$res=fputs ($fp,$string);
while (($char = fread($fp,10)) != chr(13)) {
echo $char;
}
fclose ($fp);
}
?>
aca tambien $string es el comando que le envio para que retorne la informacion y en $char intento capturar la cadena que devuelva.
pero no funciona tambien he visto una librerias llamada php-ser creo pero resulta que esta libreria no lee el puerto cuando se ejecuta bajo windows funciona perfectamente en linux.
pero la aplicacion correra bajo windows.
Espero me puedan ayudar y agradesco que puendan ayudarme lo mas pronto de anemano muchas gracias y esepero me puedan colaborar.
Salu2!!! a to2!!!!!!!!!!.
Mi pregunta es la siguiente estoy realizando una aplicacion en php que se debe comunicar con una consola que esta conectada al puerto serial.
He logrado escribir los comandos en el puerto con manejo de archivos así:
<?php
$fp = fopen ("COM1:", "w+");
if (!$fp) {
echo "El puerto no esta abierto";
} else {
$string = ":01R";
echo $string;
$res=fputs ($fp,$string);
}
?>
donde $string es uno de los comandos que se le pueden enviar a la consola; esto funciona perfectamente y la consola rcibe los datos y los puede manipular.
El problema es cuando se le envie el comando para que ella etorne informacion el comando se le enviaria igual pero no se como poder obtener la cadena que me rtorna la aplicacion.
He intentado con algo como esto:
<?php
$fp = fopen ("COM1:", "rw");
if (!$fp) {
echo "El puerto no esta abierto";
} else {
$string = ":01I";
echo $string;
$res=fputs ($fp,$string);
while (($char = fread($fp,10)) != chr(13)) {
echo $char;
}
fclose ($fp);
}
?>
aca tambien $string es el comando que le envio para que retorne la informacion y en $char intento capturar la cadena que devuelva.
pero no funciona tambien he visto una librerias llamada php-ser creo pero resulta que esta libreria no lee el puerto cuando se ejecuta bajo windows funciona perfectamente en linux.
pero la aplicacion correra bajo windows.
Espero me puedan ayudar y agradesco que puendan ayudarme lo mas pronto de anemano muchas gracias y esepero me puedan colaborar.
Salu2!!! a to2!!!!!!!!!!.
Valora esta pregunta


0