Um die Serielle Schnittstelle zu erreichen, gibt uns das .NET Framework schon eine sehr nützliche Klasse mit:
System.IO.Ports.SerialPort
Mit ihr ist das senden und Empfangen ein Kinderspiel.
Um per SerialPort eine Serielle Schnittstelle zu öffnen, muss man vorher eine neue Instanz der Klasse anlegen und sie nach den Gegebenheiten richtig einstellen.
using System.IO.Ports; ... //Neue Instanz der Klasse, wir weisen direkt einen Port und eine Baudrate zu SerialPort mySerialConnector = new SerialPort("PortsName e.g COM1", <Baud Rate, z.B 19200>); //Datenbits der Übertragung(7 oder 8), meistens 8, ansonsten in der Dokumentation des Protokolls nachschauen mySerialConnector.DataBits = 8; //Stopbits der Übertragung. Hierfür auch in der Dokumentation des Protokolls nachschauen mySerialConnector.StopBits = StopBits.One; //Einen neuen Eventhandler einklinken um auf das ankommen neuer Daten zu reagieren mySerialConnector.DataReceived += new SerialDataReceivedEventHandler(mySerialConnector_DataReceived); //WICHTIG: Port nicht vergessen zu öffnen, bevor man ihn verwendet! mySerialConnector.Open(); if(!mySerialConnector.IsOpen) { //Irgendwas lief nicht richtig } ... static void mySerialConnector_DataReceived(object sender, SerialDataReceivedEventArgs e) { //Daten Ausgeben Console.WriteLine(mySerialConnector.ReadLine()); mySerialConnector.WriteLine("Hello World"); }
Mit
SerialPort.GetPortNames();
kann man die Namen(COMX) aller gerade auf dem Windows System eingerichteten Seriellen Ports auslesen.