Recebendo Dados pela paralela!

Galera,
Estou utilizando o parport ! e a comunicacao com a porta paralela está perfeita !
eu consigo ler os bit da porta e mandar os bits para porta o problema que eu estou desenvolvendo
um aplicativo que precisa receber da porta sozinho , ou seja eu precisaria esta usando um Listener na porta paralela ,
mas o parport do http://www.geocities.com/Juanga69/parport/ nao tem documentaçao a respeito e o parport do Javax.comm nao funciona!
Alguem sabe como criar uma classe de Listener pra me ajudar ?

Ai vai uma solução bem porca, mas que pode funcionar:

Se vc só precisa trabalhar com recebimento pela porta paralela, use uma thread que de tempos em tempos verifica se a porta está enviando algo.

Se vc precisa enviar e receber dados, trabalhe com 2 threads sem sincronia (ou sincronizadas, se vc achar melhor): uma que envia e outra que recebe.

Há um bom tempo atrás passei por esse problema e, como eu estava começando a programar fiz dessa forma e funcionou. Era um sistema que imprimia etiquetas usando impressoras de termo-transferência.

Outra solução seria pesquisar sobre bibliotecas que trabalham com a porta paralela. Além do parport tem o RXTX. Dá uma olhada lá. :wink:

[quote=pacalexandre]Galera,
Estou utilizando o parport ! e a comunicacao com a porta paralela está perfeita !
eu consigo ler os bit da porta e mandar os bits para porta o problema que eu estou desenvolvendo
um aplicativo que precisa receber da porta sozinho , ou seja eu precisaria esta usando um Listener na porta paralela ,
mas o parport do http://www.geocities.com/Juanga69/parport/ nao tem documentaçao a respeito e o parport do Javax.comm nao funciona!
Alguem sabe como criar uma classe de Listener pra me ajudar ?

Amigo, você poderia me enviar uma copia do seu programa, pois estou desenvolvendo um projeto que utiliza a porta paralela e necessita de envio e recebimento de dados, porém estou com dificuldades em receber esses dados.

Oi cara

Não existe como criar um “listener”, pois essa comunicação é feita por alguma api do sistema operacional, provavelmente utilizando JNI.

A única saída são Threads mesmo. Crie uma Thread que fica recebendo os dados (defina a prioridade que achar melhor ou então faça um sleep de alguns milisegundos pra nao ficar mto pesado). Quando receber um dado, voce pega o blokeio da thread principal e faz o que quiser, depois libera.