limitar tempo do processo  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
gustavoRamos
Entusiasta Java

Membro desde: 30/09/2008 09:11:27
Mensagens: 19
Offline

Olá pessoal,

Estou construindo uma aplicação em que uso um leitor de códigos de barra bluetooth.
quanto à comunicação com ele já está tudo ok, porém para que eu faça uma leitura de um código de barras tenho de especificar o tamanho do código de barras, o que acho meio chato. O que estou tentando fazer agora é limitar o tempo
em que o meu DataInputStream fique naquele método read().

já tentei de algumas maneiras, e vi que existe um método que pega o tempo atual da máquina:

pensei em uma maneira de pegar esse método e somar um tempo a mais (tipo uns 2000 milisegundos) para limitar o processo, dentro de um desvio ou um laço. mas até agora não tive um bom resultado. Se alguém tiver uma idéia posta aí! (:

abaixo, meu código para que não haja dúvidas no que estou tentando fazer... (neste algoritmo ainda tenho de especificar o tamanho do código de barras)




Gustavo Ramos
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Você quer que o bloco while não dure mais de 2 segundos, por exemplo? E outra coisa: qual API ou framework você está utilizando para a leitura dos dados?

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
gibaholms
JavaTeenager
[Avatar]

Membro desde: 13/11/2007 13:37:48
Mensagens: 151
Localização: Santos - SP
Offline

cara, ao inves de usar um contador, pega o time atual novamente e compara com o time inicial

SCJA 1.0 | SCJP 4 | SCWCD 5 | SCBCD 5 | Oracle Weblogic Portal 10g Developer
[WWW] [MSN]
gustavoRamos
Entusiasta Java

Membro desde: 30/09/2008 09:11:27
Mensagens: 19
Offline

pessoal obrigado por responder.. =)

é isso mesmo, não quero que passe de 2 segundos de leitura. uso para leitura o java.io

e eu já tentei usar com o time , mas não deu certo, o laço ficou esperando o processo de leitura terminar, para depois comparar o tempo, o que não pode acontecer.. o que quero é dar um 'break' da vida para parar o precesso no meio da leitura, quando esgotar o tempo..

Gustavo Ramos
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Olha só:

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
gustavoRamos
Entusiasta Java

Membro desde: 30/09/2008 09:11:27
Mensagens: 19
Offline

Olha só:



marcobiscaro2112, obrigado pela resposta! Porém , já fiz dessa forma e não deu o resultado esperado, porque quando se chama aquele método:


ele fica esperando ler alguma coisa pra depois partir pros próximos passos, e é exatamente ali que eu não quero que ultrapasse 2 segundos de espera
=/

Gustavo Ramos
gibaholms
JavaTeenager
[Avatar]

Membro desde: 13/11/2007 13:37:48
Mensagens: 151
Localização: Santos - SP
Offline

vixi cara.. vc quer parar o processo de leitura.... ai seria melhor fazer a leitura em uma thread separada e ir monitorando ela a partir de uma trhead principal.... ai seria o unico jeito da thread principal pode matar a outra thread no meio do metodo

SCJA 1.0 | SCJP 4 | SCWCD 5 | SCBCD 5 | Oracle Weblogic Portal 10g Developer
[WWW] [MSN]
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Já tentou usar a classe Scanner ou BufferedReader? Me parece que o método read() de InputStreamReader espera todos os dados serem carregados (ou algo assim). Com BufferedReader você tem um buffer que vai recebendo dados gradativamente, o que deixa a aplicação mais eficaz, e talvez não "trave" em determinada linha. Seria algo como:

This message was edited 1 time. Last update was at 07/01/2009 10:19:18


Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
gustavoRamos
Entusiasta Java

Membro desde: 30/09/2008 09:11:27
Mensagens: 19
Offline

vixi cara.. vc quer parar o processo de leitura.... ai seria melhor fazer a leitura em uma thread separada e ir monitorando ela a partir de uma trhead principal.... ai seria o unico jeito da thread principal pode matar a outra thread no meio do metodo


vou tentar desta forma, quando obter algum resultado posto aqui!

lá vai eu mexer com threads novamente..
tento fugir mas não consigo.. haha

Gustavo Ramos
gustavoRamos
Entusiasta Java

Membro desde: 30/09/2008 09:11:27
Mensagens: 19
Offline

marcobiscaro2112 , já usei com buffered reader também! com Scanner não. mas o que pude perceber é que os métodos read() de todos esperam que algo como... um enter (seilá).. pra que o processo de leitura termine, e o meu leitor de barcode justamente não tem esse tal 'enter' que termine ... ele continua executando de tal maneira que tem que ser a minha aplicação de termine com o read() do leitor, ele não sabe fazer isso por conta própria..

se estou errado me corrijam, mas é isso que concluí...

Gustavo Ramos
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Com Scanner ficaria algo como:

This message was edited 1 time. Last update was at 07/01/2009 10:44:13


Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team