A short code snippet for the COM communication on COM1 with 9600bps:


// define COM port and events

private SerialPort serialPort;

private SerialDataReceivedEventHandler serialDataReceivedEventHandler;

private SerialErrorReceivedEventHandler serialErrorReceivedEventHandler;



// set events

serialDataReceivedEventHandler = serialDataReceived;

serialErrorReceivedEventHandler = serialErrorReceived;



// setup

serialPort = new SerialPort();

serialPort.Encoding = Encoding.GetEncoding(28591);

serialPort.RtsEnable = false;

serialPort.DtrEnable = false;

serialPort.ReadBufferSize = 8192;

serialPort.ParityReplace = 63;

serialPort.ReceivedBytesThreshold = 1;

serialPort.DiscardNull = false;

serialPort.DataReceived += serialDataReceivedEventHandler;

serialPort.ErrorReceived += serialErrorReceivedEventHandler;

serialPort.PortName = “COM1”;

serialPort.DataBits = 8;

serialPort.NewLine = "\r\n";

serialPort.StopBits = System.IO.Ports.StopBits.One

serialPort.Parity = System.IO.Ports.Parity.None

serialPort.Handshake = Handshake.None

serialPort.BaudRate = 9600;



// receive event

private void serialDataReceived(object sender, SerialDataReceivedEventArgs e)

{

        Console.WriteLine(serialPort.ReadExisting());

}



// error event

private void serialErrorReceived(object sender, SerialErrorReceivedEventArgs e)

{

        // here handle errors

}

// send to Mi3

private void send()

{

        if (!serialPort.IsOpen)

        {

                serialPort.Open();

        }

        if (serialPort.IsOpen)

        {

                // send „?T“ with EOL sequence

                serialPort.Write(„?T\r\n“);

        }

}