Foros del Web » Programando para Internet » PHP »

Salidas digitales Lpt + Php + Mysql + Bat + WndLpt

Estas en el tema de Salidas digitales Lpt + Php + Mysql + Bat + WndLpt en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 09/04/2010, 12:57
Avatar de Neodimio  
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años, 8 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
  #2 (permalink)  
Antiguo 09/04/2010, 13:38
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 20 años, 3 meses
Puntos: 71
Respuesta: Salidas digitales Lpt + Php + Mysql + Bat + WndLpt

Prueba esto.

echo exec("x.bat >> log_x.log");
  #3 (permalink)  
Antiguo 09/04/2010, 14:23
Avatar de Neodimio  
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Salidas digitales Lpt + Php + Mysql + Bat + WndLpt

Problema solucionado!

Ahora si funciona, la instrucción se ejecuta y la pagina se refresca correctamente.

El codigo que me funcionó correctamente es este:

Código PHP:
Ver original
  1. <?Php
  2. $file="x.bat";
  3. $call = $file;
  4. pclose(popen('start /b '.($call).'', 'r'));
  5. ?>

Gracias por el intento, saludos

Última edición por Neodimio; 10/04/2010 a las 11:35

Etiquetas: digitales, lpt, mysql, salidas, .bat
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:56.