Я нашел эту статью довольно хорошей.
Код, который я написал от него:
port = new System.IO.Ports.SerialPort(name, 4800, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
void port_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
buffer = port.ReadLine();
// process line
}
Извините, это C #, но ...
Единственная проблема, с которой я столкнулся, это то, что если порт не работает, когда он открыт, приложение завершает работу при выходе.