Pergunta

Estou lidando com alguns sistemas legados que estão usando RS232 para se comunicar com periféricos. Eu não sou muito experiente com COM interface. Eu tenho algum código que pode abrir e usar portas COM, mas pode portas não abertas que são usados ??por outros aplicativos. Preciso caixa preta os pacotes para que possamos usar o mesmo protocolo para comunicações atualizados.

Existe alguma maneira de "homem médio" pacotes de entrada a uma porta COM aberta e detectar o que os pacotes estão sendo enviados? Eu estou usando .NET, mas estou aberto a qualquer tipo de solução.

(I encontrados este lá fora, mas eu não acho que isso vai funcionar para mim.)

Foi útil?

Solução

Eu usei com0com - é ótimo para a criação de portas virtuais -. Que não ajudá-lo em tudo

A interface de porta COM é basicamente um 'arquivo lido'. Meu aplicativo lança uma exceção quando eu tento conectar a uma porta COM que já tem outra leitura instância dele. Eu não tenho certeza se você pode tentar abri-lo como um 'somente leitura' em vez de leitura e escrita, mas vale a pena uma tentativa.

Você deve ser capaz de escrever uma porta virtual que pode desembolsar fora de seus dados para um arquivo de log. Com0com é open-source, assim você pode usar isso como um ponto de partida.

Outra solução possível seria pegar um RS232 divisor de cabo bifurca o sinal de série para outra porta série.

Ou ainda uma outra possibilidade é uma Serial Sniffer programa (ou um open source sniffer ).

Ou tente hub4com aplicativo do mesmo site com0com

Outras dicas

Existe alguma maneira de "homem médio"

Sim, há muitos. Fortemente apoiada no Windows através do conceito de um "driver de filtro". Tal um driver pode ser inserido à frente de um driver que recebo pedidos de I / O e vê tudo o que passa. Normalmente destinados a alterar de E / S solicitações, mas também muito adequado para simplesmente monitorar os pedidos. Homem no meio.

O exemplo clássico de tal condutor é um dos venerável utilidade Portmon . Mostra-lhe tudo o que um aplicativo envia e recebe para / de uma porta serial, incluindo configuração e dados. Há muitos desses aplicativos, apenas o Google "driver de filtro de porta serial" (pesado em amostras de código fonte) e "monitor de porta serial".

Uma nota com este, você tende a ter um problema em uma versão do Windows de 64 bits. A grande maioria desses aplicativos, incluindo Portmon, só funcionam na versão de 32-bit. A versão de 64 bits apenas permite que os motoristas autenticadas a ser instalado, há muito pouco dinheiro na venda desses aplicativos para justificar a despesa. Cuidado com isso quando você compra.

Eu tenho sido por este mesmo caminho. Um divisor de hardware é a solução mais fácil.

hub4com configuração irá envolver o assistente "Adicionar novo hardware". Se você tem um monte de máquinas, máquinas separadas geograficamente, ou usuários que não são tecnicamente esclarecido e não têm as permissões necessárias, a instalação pode ser difícil.

Se este é um aplicativo de legado, ele roda em ntvdm? Se assim for, você pode executá-lo no DosBox vez e alterar o código DosBox para escrever para um arquivo, além de envio / recepção de / para a porta serial. DOSBox é multiplataforma também.

Você também pode usar TCPcom para converter os dados para Ethernet pacotes e monitorá-lo com Wireshark - e também transmiti-lo em outro lugar. Em seguida, use outra instância do TCPcom enviá-lo a qualquer porta COM você gosta - incluindo uma porta COM virtual. Agora você tem essencialmente sequestrou os dados via Ethernet. https://sourceforge.net/projects/combytcp/?source=directory

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top