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“);
}
}