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
<?Php ?>
Dentro de x.bat tengo esto.
Código bach:
Ver original
@echo off wndlpt -bkgnd "x.txt" exit
Y dentro de x.txt tengo esto.
Código TxT:
Ver original
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:
He probado con toda la metralla que he encontrado en google, foros... etc 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
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
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