Montag, Mai 25, 2020

In C# wie konnte ich hören, um einen COM (Seriell) Port bereits geöffnet ist?

Bin ich über ein Programm, dass die Gespräche zu meinem COMM-port, aber ich habe ein anderes Programm, das ich will, um zu „schnüffeln“ die comm-port-messages und führen Sie eigene Maßnahmen gegen die Botschaften zusätzlich. Ist das möglich in der .NET c#?

InformationsquelleAutor Phobis | 2008-12-10

4 Kommentare

  1. 5

    Gibt es third-party Bibliotheken/tools/Produkte, setzen den Verkehr f Sie interessiert sind.

    Hier ist die, die ich für serial port emulation – aber ich denke, es bietet etwas, das Sie verwenden können:
    http://com0com.sourceforge.net/

  2. 3

    Wenn Sie haben die Kontrolle über das erste Programm, das zu dir spricht COMM-port, warum nicht ändern, das Programm zum übergeben von Daten empfangen aus dem Hafen auf das 2. Programm von Euch über remoting oder jede andere Art von IPC. Besser noch, wenn Sie schreiben können, ein proxy-Programm, angeschlossen an den COMM-port, und 2 von dem anderen Programm zu sprechen, diesen proxy um die Kommunikation getan.

    Weitere Idee ist es, wenn Sie brauchen, um zu schnüffeln, nur eingehende Daten, können Sie ein Y-Kabel (splitter) und eine Verbindung zu 2 com-Ports, jedes Programm verbindet sich mit jedem COMM-port. Aber Sie müssen sicherstellen, dass das 2. Programm wird nicht versuchen, zu übertragen. In einigen Fällen müssen Sie möglicherweise einen splitter, die nur verbindet den RX pin für die 2. Ausgabe. Lassen Sie mich wissen, wenn Sie das Diagramm.

    Wenn Sie nicht über 2 COMM, können Sie ganz einfach einen USB-Seriell-Konverter für weniger als USD10.

  3. 2

    Ist es möglich, zu schnuppern Datenverkehr über die serielle Schnittstelle zu

    Aber es scheint nicht zu sein, ein „COMPortSniffer“ Control

    Einen gültigen Verfahren von sysinternals präsentiert es

    Scheint es zu setzen auf der Win32-Programmierung aber ich glaube nicht, dass so etwas möglich ist, direkt mit C#

  4. 0

    den code-Projekt ( http://www.codeproject.com/Articles/75770/Basic-serial-port-listening-application ), die hat ein tolles tutorial auf dieser.

    Er zeigt, wie Lesen von Daten aus einem seriellen Anschluss, und Sie sollten in der Lage sein, die Daten zu Lesen.

    Einen kurzen snippet:

    void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        int dataLength = _serialPort.BytesToRead;
        byte[] data = new byte[dataLength];
        int nbrDataRead = _serialPort.Read(data, 0, dataLength);
        if (nbrDataRead == 0)
            return;
    
        //Send data to whom ever interested
        if (NewSerialDataRecieved != null)
            NewSerialDataRecieved(this, new SerialDataEventArgs(data));
    }
    • In diesem Fall müssen Sie die Kontrolle über die primären Verbraucher-source-code zu veröffentlichen, die Daten Lesen. Es ist nicht das schnüffeln eine etablierte serielle Kommunikation.

Kostenlose Online-Tests