Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/04/2010, 12:57
Avatar de Neodimio
Neodimio
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años, 7 meses
Puntos: 0
Salidas digitales Lpt + Php + Mysql + Bat + WndLpt

Hola.

Tengo entre manos un miniproyecto de control de 8 salidas con php.

Basicamente son 8 botones que enlazan a sus 8 respectivo archivos php, el funcionamiento de cada uno de los botones depende de tres archivos, uno .php, otro .bat y otro .txt que sera el parametro que le damos al programa que ejecuta el archivo .bat.

Por ejemplo al primero lo llamamos x.php.


Código PHP:
Ver original
  1. <?Php
  2. echo exec(x.bat);
  3. ?>


Dentro de x.bat tengo esto.

Código bach:
Ver original
  1. @echo off
  2. wndlpt -bkgnd "x.txt"
  3. exit

Y dentro de x.txt tengo esto.

Código TxT:
Ver original
  1. 10000000

Dentro de la carpeta donde tengo esos tres archivos tengo instalado WndLpt, lo puedes conseguir en http://wndlpt.sourceforge.net/lpt/ .

Mi sistema es W7 64bit edición ultimate y estoy usando Xampp 1.7.3.

WndLpt tiene soporte para 32bit y 64 bit, gracias al driver Winring0 -> http://www.softpedia.com/get/Programming/Components-Libraries/WinRing0.shtml , nos brinda esta posibilidad gratuitamente.

WndLpt tiene mas posibilidades, aunque en este caso solo se usa para activar/desactivar salidas digitales.

Una foto de la placa de pruebas mientras se activan todas las salidas.

http://img59.imageshack.us/img59/4183/inrerfacew.jpg

El caso es que casi todo funciona bien, pero hay un problema, creo que el problema esta en el mal uso de exec.

Cita:
Esto es lo que segurmente No estoy haciendo bien...

Note: Si ejecutamos un programa con esta función y queremos dejarlo ejecutándose en segundo plano, hay que asegurarse que el output del mismo es redireccionado a un fichero u otra salida o PHP se quedará esperando hasta que la ejecución del programa termine.
Fuente: http://ve2.php.net/manual/es/function.exec.php
He probado con toda la metralla que he encontrado en google, foros... etc
y no doy con el EurekA.

Cuando ejecuto x.php se queda pescando, ejecuta el archivo x.bat correctamente, pero la pagina se queda esperando algo, puede ser, que la ejecuión termine o le devuelva algun valor de estado o algo por el estilo, ya no se que puede ser el mal refresco de x.php, Intente con escapeshellarg, y escapeshellcmd pero me pasa exactamente igual, la pagina no refresca...


¿alguna idea?

Saludos

Última edición por Neodimio; 09/04/2010 a las 17:28