C# Serielle Schnittstelle Schreiben Byte

Schreiben wird ein einzelnes byte an den seriellen port .NET 4.0 in C# führt

InvalidOperationException wurde unhandled by user code

Jedes mal, wenn ein byte gesendet wird, um den SerialPort.

Wie Schreibe ich ein einzelnes byte an den seriellen port?

    //Serial Init
    //Full fledged constuctor
    public NetCommManager(String portName, TransmissionType trans, String baud, String parity, String stopBits, String dataBits)
    {
        nc_baudRate = baud;
        nc_parity = parity;
        nc_stopBits = stopBits;
        nc_dataBits = dataBits;
        nc_portName = portName;
        nc_transType = trans;

        //now add an event handler
        comPort.DataReceived += new SerialDataReceivedEventHandler(netComm_DataReceived);
    }

Config:

       _commManger = new NetCommManager(commPortNumber,                        
       NetCommManager.TransmissionType.Text, "19200", "None", "One", "8");

Byte geschrieben werden:

_commManager.WriteByte(Convert.ToByte( 0x7B));

Sowie WriteByte Funktion:

public void WriteByte(byte data)
        {
            //change data to array
            //byte[] dataArray = new byte[1];
            var dataArray = new byte[] {data};
            //dataArray[0] = data;
            comPort.Write(dataArray, 0, 1);   //<-- Exception is thrown here
        }

Den NetCommManager Klasse basiert sehr stark auf der dieses Beispiel

Sie sind fehlende Teil der code, der erstellt comPort-Objekt... und haben mehrere auskommentierte Zeilen für einige Grund.
Die kommentierten Zeilen sind die anderen versuche, um es in einer anderen form
+1 für die gute Leistung. Beachten Sie, dass Sie noch fehlt comPort = new... Teil :). Irgendwie Jeff E geschafft, Figur (+1, um die Antwort offensichtlich). Auf auskommentierte code - betrachten, wenn es eine deutlich andere Variante des Codes. Ich glaube nicht, dass es hier - so würde ich einfach entfernen es.
tun wird. Danke!!!

InformationsquelleAutor DogEatDog | 2012-07-27

Schreibe einen Kommentar