Simular dispositivo conectado em porta Serial  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
cassioso
JavaBaby
[Avatar]

Membro desde: 23/08/2006 16:22:47
Mensagens: 93
Localização: Salvador, Bahia, Brasil
Offline

Olá,

Alguém sabe dizer como poderia fazer para simular um dispositivo conectado a uma porta serial?

A finalidade é fazer um programa que, sem nada conectado ao computador, ele entenda que esxiste um dispositivo conectado a porta serial enviando dados. Em outras palavras, fazer o InputStream e o OutputStream funcionarem sem que tenha algo conectado de verdade.

Um exemplo de utilidade desta funcionalidade é na construção de simuladores. Com isso poderia ter um "servidor simulador" onde as máquinas conectadas em rede se comunicam com ele e através de um cliente que captura os dados da rede e envia para a porta serial. Assim, teria um servidor de simulador de dispositivos seriais. O mesmo vale para todas as outras portas, mas no momento quero fazer isso para dispositivo de comunicação serial.

[]'s
Ótimo
http://www.cassiooliveira.com
[Email] [WWW] [MSN]
lilex
Entusiasta Java

Membro desde: 03/06/2007 20:32:24
Mensagens: 18
Offline

também gostaria de saber =)

Ciência da Computação - Universidade Federal do Ceará (UFC)
Sagatiba
JavaBaby

Membro desde: 03/02/2009 11:15:20
Mensagens: 85
Offline

Kra hiperterminal.
Conecta na sua porta COM e xuxa dados la.
Da na mesma eh o qi faco para testar aplicacoes.
cassioso
JavaBaby
[Avatar]

Membro desde: 23/08/2006 16:22:47
Mensagens: 93
Localização: Salvador, Bahia, Brasil
Offline

Peraí cachaça, como é esse negócio do hiperterminal??

humm.... talvez eu possa fazer com que esse cliente crie uma porta virtual serial. talvez seja mais fácil do que enganar o computador enviando dados para uma porta já existente.

This message was edited 1 time. Last update was at 04/02/2009 21:20:17


[]'s
Ótimo
http://www.cassiooliveira.com
[Email] [WWW] [MSN]
Sagatiba
JavaBaby

Membro desde: 03/02/2009 11:15:20
Mensagens: 85
Offline

Vc cria uma aplicacao com java comm que conecte em uma porta e usa o hiperterminal nessa porta para mandar dados
O programa que tenho aqui chama SIOW, qndo eu precisei conectar em impressoras termicas eu usava o hiperterminal e tacava dados nas bixinha, e qndo eu precisei saber se tava chegando os dados certos na serial eu usei o SIOW.
genildof
Debugger
[Avatar]

Membro desde: 30/09/2006 09:38:16
Mensagens: 70
Localização: Campo Grande - MS
Offline

cassioso wrote:A finalidade é fazer um programa que, sem nada conectado ao computador, ele entenda que esxiste um dispositivo conectado a porta serial enviando dados
.
Você pode 'loopar' a porta serial com um conector de loopback, na net você acha o esquema. Todo dado enviado para a serial será ecoado, aí é só seguir na idéia do outputstream/imputream...

PS.: um teste desse loop pode ser feito pelo hiperterminal do windows, abrindo uma conexão na porta em loop. Se visualizar o que digitar no teclado o loop funcionou.

/genildof.
[WWW] [MSN]
cassioso
JavaBaby
[Avatar]

Membro desde: 23/08/2006 16:22:47
Mensagens: 93
Localização: Salvador, Bahia, Brasil
Offline

Olá,

Vou pesquisar sobre o loopback. Mas, talvez não funcione.. pq terei uma aplicação (Programa de Monitoramento) que envia comandos para a porta serial para solicitar valores do equipamento. Quando isso acontecer com o loopback implementado ele irá receber como resposta o mesmo comando que foi enviado?

Bom... são três os esquemas possíveis. O esquema com o dispositivo conectado, com um simulador conectado e com o simulador de rede. A baixo tem a descrição dos 3 esquemas, o que estou tentando implementar é o terceiro:

No primeiro esquema, há um dispositivo conectado à porta serial do computador e o Programa de Monitoramento envia, de tempos em tempos, mensagens para esta porta para que o dispositivo lhe envie informações. Ex.: O dispositivo sendo um termômetro ligado pela porta serial. De tempos em tempos o Programa de Monitoramento envia um comando solicitando a temperatura. E o termômetro responde.

Com o simulador, existe um dispositivo conectado na porta serial, que é um computador com um simulador rodando. Um simulador de termomêtro por exemplo. O Programa de Monitoramento envia uma mensagem para a porta serial, a máquina com o simulador recebe esta mensagem e envia uma resposta de acordo com o que programado.

No esquema de um simulador em rede, teríamos uma máquina com um servidor que envia mensagens pela rede. Na máquina que está com o Programa de monitoramento, haveria também um programa cliente (broker) que lê os comandos enviados pelo Programa Monitor na porta serial e envia via Socket para a máquina servidora que tem o simulador. O simulador por sua vez iria tratar o comando e enviar a mensagem de acordo com o programado. O Broker então pega esta mensagem da rede, tbm via socket e envia para a porta serial local para que o Programa Simulador possa realizar a leitura.

[]'s
Ótimo
http://www.cassiooliveira.com
[Email] [WWW] [MSN]
rodrigo_rosalin
Thread.start()

Membro desde: 25/11/2008 20:00:40
Mensagens: 32
Offline

cassioso wrote:Peraí cachaça, como é esse negócio do hiperterminal??

humm.... talvez eu possa fazer com que esse cliente crie uma porta virtual serial. talvez seja mais fácil do que enganar o computador enviando dados para uma porta já existente.



A resposta de seu problema esta na criação de portas virtuais. Com certeza!
Outra dica é a utilização da API rxtx.


EDIT: existem varios programas que criam portas seriais virtuais e as ligam virtualmente, estes softwares podem ser encontrados facilmente.


Abraço


This message was edited 2 times. Last update was at 06/02/2009 12:04:31


Rodrigo Rosalin
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team