Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Monitorear puerto paralelo... (https://www.clubdelphi.com/foros/showthread.php?t=90644)

Novatin 01-08-2016 23:30:31

Monitorear puerto paralelo...
 
Que tal amigos,

He estado monitoreando el puerto paralelo con Builder buscando una señal de entrada por externo... pero me he dado cuenta que mientras la señal de entrada no llega me ralentiza la pc y por ello puse todo mi codigo en Thread diferente, sin embargo aún tengo la ralentización de todo el sistema... en cuanto se produce la espera :confused:

No conozco mucho de las API de windows, y por ello les pregunto a los maestros del foro si habria otra forma de hacer lo mismo con las librerias API de win???

(Debo aclarar que he quitado varias partes y reducido el código para concentrarme en la esencia de mi problema para que se me entienda más que nada... Uso Builder 6, inpout32.dll para el puerto paralelo y el aislado del bit0 es supuesto ya que no quise incluir contenido en Hexadecimal para no hacer parecer más complicada la duda.. Espero puedan hecharme un cable)

Código:

      ...
      #define dirStatus 0x379
      #define BAJO 0
      #define ALTO 1
      int Listo;
     
      StatusPort = inp32(dirStatus); //Leo valor de Puerto
      StatusPort = StatusPort & 1;  //Aislado bit0
     
      if(StatusPort == BAJO)
      {
        Listo = FALSE;
                  while (!Listo) //mientras puerto siga en BAJO <---- ACA ES DONDE ME RALENTIZA EL SISTEMA
                  {
                          StatusPort = inp32(dirStatus);
                          StatusPort = StatusPort & 1;
                         
                          if (StatusPort = ALTO)
                    break;
                  }
          }
          ...


Casimiro Notevi 02-08-2016 10:21:55

Mira a ver si te sirve alguno de los enlaces de abajo, a final de página.

Novatin 02-08-2016 19:33:01

Agradezco tu amabilidad Casimiro, anteriormente habia revisado alguno de esos links y hoy lo hice de nuevo y realmente ninguno se ajusta a lo que necesito; por otro lado algunos de esos temas quedaron solo como preguntas.. y nunca se llegaron a contestar. (espero no llegue a ser mi caso :rolleyes: )

Y explicando un poco más mi problema, realmente no tengo lio en enviar o recibir señales por puerto paralelo, sino en la parte del "monitoreo"; ya que el mismo esta dentro de un bucle "while", lo cual me genera un "polling" que me ralentiza toda la pc... entiendo que sucede porque la cola de mensajes de win se satura mientras no llega una señal de entrada...

El bucle lo puse en un Thread diferente pero el resultado prácticamente es el mismo... Y entonces se me ocurre que quizá pueda hacer el polling con la API de windows, tal como se hace en los Usb... que se inserta un Pendrive y luego de un par de segundos el Sistema lo reconoce e inicia la instalación y configuración del dispositivo... Lo malo es que realmente no se como usar la API y desconozco en específico qué funciones me serían útiles... y tal es el motivo que me lleva a consultar en el foro.

Casimiro Notevi 02-08-2016 20:24:06

¿Monitorear el puerto paralelo?

Mira algunos de estos enlaces.


La franja horaria es GMT +2. Ahora son las 11:46:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi