serialport 0.7.0

Simple crossplatform work with serailport

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


Library provides simple non-blocking work with serial port for Posix and Windows.

Simple usage:

auto com = new SerialPort("/dev/ttyUSB0", 19200);

// setting parameters example
com.config = SerialPort.Config(9600, Parity.none, DataBits.data8,
com.stopBits = StopBits.two;

// non-blocking write -- return writed bytes count at the first onset
auto cnt = com.write(someDataArry);

// if you need send all bytes in someDataArray
//                            write timeout
com.writeLoop(someDataArray, 500.dur!"usecs");

At the expiration of write timeout thows TimeoutException

// non-blocking read -- return data in system serial port buffer
auto res1 =;
// res1 is slice of bufferForReading with readed data

// if you need read message with known timeouts
//                                          read timeout    frame end gap
auto res2 = com.readLoop(bufferForReading, 500.dur!"msecs", 20.dur!"msecs");

At the expiration of read timeout thows TimeoutException if no bytes readed. If readed bytes count != 0 wait frame end gap and if no new bytes return readed.

Example usage : monitor

Warning: unix systems allow only standart speeds
[0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400]

Reading and writing loops algorithms use Fiber.yield if available, or Thread.yield otherwise. If you want redefine this behavior, you can set void delegate() yieldFunc field of SerialPort through ctor or directly.

  • Oleg Butko (deviator)
2.2.3 2020-Jul-27
2.2.2 2019-Oct-25
2.2.1 2019-Oct-24
2.2.0 2018-Oct-25
2.1.7 2018-Jul-19
Show all 41 versions
Download Stats:
  • 2 downloads today

  • 4 downloads this week

  • 17 downloads this month

  • 3048 downloads total

Short URL: