Kommunikation über SerialPort (COM)

Weiterführende Infos zum Thema Serial Port: Hanselman und MSDN

using System.IO.Ports;

public class CRS232
{
    private SerialPort _sp = new SerialPort();

    public CRS232(string sPortName, bool bRTSEnable, int iBaudRate, int iDataBits, int iReadTimeOut, int iWriteTimeOut, StopBits eStopBits, Parity eParity, Handshake eHandShake, Encoding eEncoding)
  {
        _sp.PortName = sPortName;
        _sp.RtsEnable = bRTSEnable;
        _sp.BaudRate = iBaudRate;
        _sp.DataBits = iDataBits;
        _sp.ReadTimeout = iReadTimeOut;
        _sp.WriteTimeout = iWriteTimeOut;
        // StopBits.None;
        // StopBits.One;
        // StopBits.OnePointFive;
        // StopBits.Two;
        _sp.StopBits = eStopBits;
        // Parity.Even;
        // Parity.Odd;
        // Parity.None;
        // Parity.Space;
        // Parity.Mark;
        _sp.Parity = eParity;
        // Handshake.XOnXOff;
        // Handshake.None;
        _sp.Handshake = eHandShake;
        _sp.Encoding = eEncoding;
  }

    public string[] GetPorts()
    {
        return SerialPort.GetPortNames();
    }

    public bool Open()
    {
        bool bRetVal = false;

        try
        {
            if (!_sp.IsOpen)
            {
                _sp.Open();
            }
            bRetVal = true;
        }
        catch (Exception)
        {
        }

        return bRetVal;
    }

    public bool Close()
    {
        bool bRetVal = false;

        try
        {
            if (!_sp.IsOpen)
            {
                _sp.Close();
            }
            bRetVal = true;
        }
        catch (Exception)
        {
        }

        return bRetVal;
    }

    public string ReadLine()
    {
        string sRetVal = string.Empty;

        try
        {
            if (_sp.IsOpen)
            {
                sRetVal = _sp.ReadLine();
            }
        }
        catch (Exception)
        {
        }

        return sRetVal;
    }

    public bool WriteLine(string sText)
    {
        bool bRetVal = false;

        try
        {
            if (_sp.IsOpen)
            {
                _sp.WriteLine(sText);
            }
        }
        catch (Exception)
        {
        }

        return bRetVal;
    }
}