C# Port Série D'Octets À Écrire

L'écriture d'un octet sur le port série .NET 4.0, C# provoque une

InvalidOperationException est pas gérée par le code de l'utilisateur

Chaque fois qu'un octet est envoyé à l'SerialPort.

Comment puis-je écrire un octet sur le port série?

    //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");

L'Octet être écrit:

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

Et WriteByte fonction est:

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
        }

La NetCommManager classe est très largement basé sur cet exemple

Il vous manque la partie du code qui crée de la communication de l'objet... et ont plusieurs commenté les lignes pour une raison quelconque.
Les lignes commentées sont d'autres tentatives pour le faire fonctionner sous une autre forme
+1 pour l'effort. Notez que vous manque encore comPort = new... partie :). En quelque sorte, Jeff E réussi à figure (+1 pour la réponse, évidemment). Sur commentée code - examiner si elle montre significativement différente de la variante de code. Je ne pense pas que c'est le cas ici - donc, je serais tout simplement le supprimer.
va faire. Merci!!!!

OriginalL'auteur DogEatDog | 2012-07-27