Aquisição de dados On-line

12 respostas
C

Salve,

Tenho uma aplicação JFRAME cujo o objetivo é realizar a aquisição de dados de frequencia em "tempo real’ de uma placa de audio e plotar os dados para o usuario. Gostaria de saber se posso realizar isso on-line para que os usuarios possam ver o comportamento da aquisição dos dados on-line. Se não, qual seria uma outra solução pra realizar essa tarefa.

Desde já agradeço a ajuda !!!

12 Respostas

danieldestro

Applet?

C

Applet, poderia até ser senao fosse a limitação da applet de adquirir dados externos.

danieldestro

Qual limitação? Dados externos a quê?

T

Acho que você quer plotar algo, mas usar uma biblioteca que seja mais eficiente que a JFreeChart - ela é muito boa para gráficos empresariais (que têm de ser bonitos mas são relativamente estáticos), mas não para gráficos em tempo real (não precisam ser bonitos, com anti-aliasing etc., mas têm de ser desenhados à medida que os dados vão sendo adquiridos).
O próprio jconsole (utilitário da Sun para monitorar a JVM e presente a partir da versão 5.0 do JDK) tem gráficos como esses para monitorar a memória, mas não são usando a JFreeChart, e sim feitos “no braço”.

C

No caso desse problema, seria os dados externos que seriam passados para a aplicação e em seguida plotados na interface. Isso que vai ser o limitante se caso a solução for applet.

T

Vamos ver então o que você tem de fazer.

Dados: devem ser obtidos a partir de uma placa de áudio, devendo ser processados (como um osciloscópio, para ver a forma de onda, ou então efetuar um histograma das harmônicas, para ver as freqüências dessa onda).

Você já tem uma biblioteca Java que interfaceia essa placa com o Java?

É que é bastante chato em Java chamar código nativo ©. Não é só escrever “public static native funcao (parametros)” na sua classe; é bem mais chato, a menos que o fornecedor de sua placa tenha já uma API Java para lhe fornecer.

Contas: você provavelmente vai ter de calcular transformadas discretas de Fourier para poder fazer o histograma das freqüências. Já arranjou a biblioteca para fazer isso?

Gráficos: você tem de procurar uma biblioteca para plotar os tais gráficos. Se você tem verba pode comprar uma como a Quinn-Curtis; senão você pode tentar alguma outra (não sei assim de cor).

C

Blz Thiago,
eu já tenho a biblioteca de interface da placa com a aplicação java. A programação de contas já estão todas realizadas. Em relação aos gráficos estou utilizando o jfreechart. Todas essas regras estou pensando fazer em servlet/jsp, estou meio encucado com aquisição de dados em tempo real para plotar os dados em applet devido a limitação mencionada. A ideia do jconsole parece cabível…estou dando uma olhada em uns artigos

dudaskank

bom, claudomir, se vc já tem a aplicação em JFrame, o mais fácil mesmo seria colocar em applet ou em java web start, o problema mesmo seria como passar os dados pra ela… como está feito isso hoje?

eu aqui pensei em algo como conectar na máquina que tem a placa e essa máquina ir mandando os dados a cada intervalo determinado. só que isso ia limitar um pouco o número de máquinas que podem exibir o gráfico on-line… não sei quantas máquinas conseguem se conectar numa mesma porta.

flw

C

Em relação as porta isso nao é problema. O sistema operacional é encarregado de criar novas portas para aplicação caso a porta padrão esteja sendo usada.

T

Agora que eu não entendi direito. Você tem uma placa e tem de mostrar isso para N usuários (em vez de um só, como na sua aplicação JFrame?)

Se precisar mandar para N usuários, você tem de criar um “servidor” que envia os dados para cada um dos “clientes”. É muito mais fácil fazer os clientes como JFrames e a comunicação via sockets ou RMI mesmo; a parte de applets fica meio complicada, principalmente porque você está usando o danado do JFreeChart, que é meio lerdo.

(Quanto ao RMI só recomendaria se seus clientes estiverem na mesma rede e não tiverem problemas com firewalls, NATs, proxies e outras coisas chatas.)

C

Realmento essa sua ideia pode ser uma solução para esse problema. Tornaria tudo mais fácil sem complicação.

danieldestro

Mas esqueça Servlets/JSP.

Criado 18 de julho de 2006
Ultima resposta 18 de jul. de 2006
Respostas 12
Participantes 4