Domanda

ho a che fare con alcuni sistemi legacy che utilizzano RS232 per comunicare con le periferiche. Io non sono molto esperto con COM interfacciamento. Ho qualche codice che può aprire e utilizzare le porte COM, ma non riesco ad aprire le porte che vengono utilizzate da altre applicazioni. Ho bisogno di scatola nera i pacchetti in modo da poter utilizzare lo stesso protocollo per le comunicazioni aggiornate.

C'è un modo di "uomo di mezzo" pacchetti in ingresso a una porta COM aperta e rilevare quali pacchetti vengono inviati? Sto utilizzando .NET, ma sono aperto a qualsiasi tipo di soluzione.

(ho trovato questo là fuori, ma non credo che questo lavoro per me.)

È stato utile?

Soluzione

L'ho usato com0com - è grande per la creazione di porte COM virtuali -. Che non ti aiuta affatto

L'interfaccia porta COM è fondamentalmente un 'file di lettura'. La mia applicazione genera un'eccezione quando si tenta di connettersi a una porta COM che ha già un'altra istanza di lettura. Non sono sicuro se si potesse provare ad aprire come una 'sola lettura' invece di lettura-scrittura, ma vale la pena di provare.

Si dovrebbe essere in grado di scrivere una porta COM virtuale che può sborsare i tuoi dati in un file di log. Com0com è open-source, così si potrebbe utilizzare che come punto di partenza.

Un'altra possibile soluzione potrebbe essere quella di prendere un rs232 splitter cavo forcelle segnale seriale a un'altra porta seriale.

O ancora un'altra possibilità è un programma Serial Sniffer (o un open source sniffer ).

O provare il hub4com app dallo stesso sito com0com!

Altri suggerimenti

  

C'è un modo per "uomo medio"

Sì, ci sono molti. Fortemente sostenuto in Windows attraverso il concetto di un "driver di filtro". Tale driver può essere inserito davanti a un driver che di I / O e le richieste di ottenere vede tutto ciò che passa. Normalmente destinati ad alterare le richieste di I / O, ma anche molto adatto per semplice monitoraggio delle richieste. L'uomo al centro.

L'esempio canonico di un tale driver è il SysInternals' utilità PortMon . mostra tutto ciò che un app invia e riceve a / da una porta seriale, compresa la configurazione e dati. Ci sono molti tali applicazioni, solo Google "driver di filtro della porta seriale" (pesante su esempi di codice sorgente) e "Monitor porta seriale".

Una nota con questo, si tendono ad avere un problema su una versione a 64 bit di Windows. La stragrande maggioranza di queste applicazioni, tra cui PortMon, funzionano solo sulla versione a 32 bit. La versione a 64 bit consente solo driver certificati per essere installato, c'è ben poco denaro nella vendita di queste applicazioni per giustificare la spesa. Attenzione a questo quando si negozio.

Sono stato su questa stessa strada. Uno splitter hardware è la soluzione più semplice.

hub4com impostazione comporterà la procedura guidata "Nuovo hardware". Se si dispone di un sacco di macchine, macchine geograficamente separati, o gli utenti che non sono smaliziati e non dispongono delle autorizzazioni necessarie, l'installazione potrebbe essere imbarazzante.

Se questo è un applicazione legacy, vuol eseguito in NTVDM? Se è così, è possibile eseguire in DosBox invece e modificare il codice DosBox per scrivere in un file, oltre a l'invio / ricezione da / per la porta seriale. DOSBox è cross platform pure.

Si potrebbe anche usare TCPcom per convertire i dati in pacchetti Ethernet e monitorare con Wireshark - ed anche trasmetterlo altrove. È quindi utilizzare un altro esempio di TCPcom di trasmetterla a qualsiasi porta com che ti piace - tra cui una porta COM virtuale. Ora avete essenzialmente dirottato i dati via Ethernet. https://sourceforge.net/projects/combytcp/?source=directory

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top