Frage

ich mit einigen Legacy-Systemen zu tun habe, die RS232 verwenden, um mit Peripheriegeräten zu kommunizieren. Ich bin sehr nicht mit COM Schnittstellen erfahren. Ich habe einige Codes, öffnen und COM-Ports verwenden, aber es kann nicht öffnen Ports, die von anderen Anwendungen verwendet werden. Ich muss Blackbox die Pakete so, dass wir das gleiche Protokoll für aktualisierte Kommunikation verwenden können.

Gibt es eine Möglichkeit, „mittleren Mensch“ ankommende Pakete zu einem offen COM-Port und erkennen, welche Pakete gesendet werden? Ich bin mit .NET, aber ich bin offen für jede Art von Lösung.

(ich fand diese dort , aber ich glaube nicht, das wird für mich arbeiten.)

War es hilfreich?

Lösung

Ich habe com0com verwendet - es ist toll für virtuellen COM-Ports einrichten -., Die Ihnen überhaupt nicht helfen

Die COM-Port-Schnittstelle ist im Grunde eine ‚Datei lesen‘. Meine Anwendung löst eine Ausnahme aus, wenn ich versuche, ein COM-Port zu verbinden, die bereits eine andere Instanz von ihm zu lesen hat. Ich bin mir nicht sicher, ob Sie könnten versuchen, ihn als ‚nur lesen‘ anstelle von Lese-Schreib-Öffnung, aber es ist ein Versuch wert.

Sie sollten der Lage sein, einen virtuellen COM-Port zu schreiben, die Ihre Daten in eine Protokolldatei abzweigen kann. Com0com ist Open Source, so dass Sie, dass als Ausgangspunkt nutzen könnten.

Eine andere mögliche Lösung könnte sein, einen rs232-Splitter-Kabel abholen gabelt das serielle Signal an einen anderen seriellen Port.

oder noch eine andere Möglichkeit ist ein Serial-Sniffer-Programm (oder ein Open-Source-Sniffer ).

Oder versuchen, die hub4com App aus der gleichen com0com Webseite!

Andere Tipps

  

Gibt es eine Möglichkeit, „mittlerer Mensch“

Ja, es gibt viele. Stark in Windows durch das Konzept eines „Filtertreiber“ unterstützt. Ein solcher Treiber kann vor einem Fahrer eingesetzt werden, die I / O-Anforderungen und sieht alles erhalten, die vergeht. Normalerweise sollte I / O-Anforderungen verändern, sondern auch sehr gut geeignet für einfach die Anfragen zu überwachen. Mann in der Mitte.

Das kanonische Beispiel für einen solchen Treiber ist die ehrwürdige SysInternals' PortMon Dienstprogramm . Zeigt Ihnen alles, was eine App sendet und empfängt an / von einer seriellen Schnittstelle, einschließlich Konfiguration und Daten. Es gibt viele solche Anwendungen, nur Google „seriellen Port-Filtertreiber“ (schwer auf Quellcode-Proben) und „Serial Port Monitor“.

Eine Fußnote mit dieser, Sie neigen dazu, ein Problem auf einer 64-Bit-Version von Windows zu haben. Die überwiegende Mehrheit dieser Anwendungen, einschließlich PortMon, funktioniert nur auf der 32-Bit-Version. Die 64-Bit-Version erlaubt nur zertifizierte Treiber installiert werden, da in den Verkauf dieser Anwendungen sehr wenig Geld ist, um die Kosten zu rechtfertigen. Hüten Sie sich vor dieser, wenn Sie einkaufen.

Ich habe unten auf diesem gleichen Weg gewesen. Ein Hardware-Splitter ist die einfachste Lösung.

hub4com Setup beinhalten die "Hardware" Wizard. Wenn Sie eine Menge von Maschinen, geographisch getrennten Maschinen, oder Benutzer, die nicht technisch versierte und es fehlt ihnen die Berechtigungen erforderlich, die Installation umständlich sein könnte.

Wenn dies eine Legacy-Anwendung, ist es in NTVDM ausgeführt werden? Wenn ja, könnten Sie es in DosBox laufen statt und verändern die DosBox Code in eine Datei zusätzlich zu schreiben Senden / zu / von der seriellen Schnittstelle empfängt. DOSBox ist Cross-Plattform als auch.

Sie können auch verwenden TCPcom die Daten in Ethernet-Pakete umzuwandeln und überwachen mit Wireshark - und es auch an anderer Stelle übertragen. Dann verwenden Sie eine andere Instanz von TCPcom es einem COM-Port weiterleiten Sie möchten - mit einem virtuellen COM-Port. Jetzt haben Sie entführte im Wesentlichen die Daten über Ethernet. https://sourceforge.net/projects/combytcp/?source=directory

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top