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.
Applet, poderia até ser senao fosse a limitação da applet de adquirir dados externos.
danieldestro
Qual limitação? Dados externos a quê?
T
thingol
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
claudomir
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
thingol
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?
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
claudomir
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
claudomir
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
thingol
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
claudomir
Realmento essa sua ideia pode ser uma solução para esse problema. Tornaria tudo mais fácil sem complicação.