using System.IO.Ports;
string[] ports = SerialPort.GetPortNames();
for (int i = 0; i < ports.Length; i++)
{
Console.WriteLine(ports[i]);
}
using System.IO.Ports;
SerialPort port = new SerialPort();
SerialPort port = new SerialPort("COM 1"); ;
SerialPort port = new SerialPort("COM 1", 9600);
NOTE: Those are just three of the seven overloads of the constructor for the SerialPort type.
The simplest way is to use the SerialPort.Read
and SerialPort.Write
methods.
However you can also retrieve a System.IO.Stream
object which you can use to stream data over the SerialPort. To do this, use SerialPort.BaseStream
.
Reading
int length = port.BytesToRead;
//Note that you can swap out a byte-array for a char-array if you prefer.
byte[] buffer = new byte[length];
port.Read(buffer, 0, length);
You can also read all data available:
string curData = port.ReadExisting();
Or simply read to the first newline encountered in the incoming data:
string line = port.ReadLine();
Writing
The easiest way to write data over the SerialPort is:
port.Write("here is some text to be sent over the serial port.");
However you can also send data over like this when needed:
//Note that you can swap out the byte-array with a char-array if you so choose.
byte[] data = new byte[1] { 255 };
port.Write(data, 0, data.Length);