Skip to content

SerialPortStream 2.1.2

Compare
Choose a tag to compare
@jcurl jcurl released this 04 Jun 19:12
· 97 commits to v2.x since this release
release/2.1.2.0

This is the most stable version with various bugfixes and updates with real world usage.

Supported Platforms:

  • .NET 4.0
    • Windows XP SP3, Vista, 7, 8, 8.1, 10
    • Mono 4.8.x or later on Ubuntu (with libnserial library version 1.1.2)
  • .NET 4.5
    • Windows Vista, 7, 8, 8.1, 10,
    • Mono 4.8.x or later on Ubuntu (with libnserial library version 1.1.2)
  • .NET Standard 1.5
    • Windows 8.1, 10
    • Ubuntu 16.04.2 (with libnserial 1.1.2 library)

Tested On:

  • Windows 7 SP1 x64 with .NET 4.0/4.5
  • Windows 10 with .NET 4.6.x
  • Ubuntu 16.04.2 with Mono 4.8.x

Installation Notes:

The DLL is compiled with strong signing for .NET FX (but not for .NET Standard). You can install the DLL alongside your application or in the GAC. It is not specific to a particular architecture.

Changes since version 2.1.1.0

Linux specific fixes

.NET Fixes

  • Shorten the name of .NET threads. Fixes GitHub issue #24
  • Provide an implementation for DiscardInBuffer and DiscardOutBuffer. Fixes GitHub issue #26
  • Make P/Invoke safer with the SafeHandle.
  • Properly clean up pin monitoring thread.

Changes since libnserial-1.1.1

  • Don't monitor pins for devices that don't support it (e.g. /dev/ttyACM devices), avoiding a 100% CPU issue. Fixes GitHub issue #22
  • Treat the OS return EINTR as an interrupt and not an error, no longer crashing.
  • Fix race conditions when monitoring pins.
  • Fix handling of pthread errors.

Windows specific fixes

  • Support the Arduino Uno clone with a USB CH340 serial/usb adaptor. This driver doesn't suppot WaitCommEvent overlapped. Fixes GitHub issue #25

libnserial

Use the prepared debian packages for Ubuntu, or compile and install it yourself for other linux distributions.

You should use libnserial version 1.1.2. Only using the newer version will bring all available fixes. Older versions may work but may also only bring limited functionality.