SerialPortRx 3.0.2
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package SerialPortRx --version 3.0.2
NuGet\Install-Package SerialPortRx -Version 3.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SerialPortRx" Version="3.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SerialPortRx --version 3.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SerialPortRx, 3.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SerialPortRx as a Cake Addin
#addin nuget:?package=SerialPortRx&version=3.0.2
// Install SerialPortRx as a Cake Tool
#tool nuget:?package=SerialPortRx&version=3.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SerialPortRx
A Reactive Serial Port Library This serial port is configured to provide a stream of data Read and accept a stream of Write requests
An Example of the usage of SerialPortRx
using System;
using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using ReactiveMarbles.Extensions;
namespace CP.IO.Ports.Test;
internal static class Program
{
private static void Main(string[] args)
{
const string comPortName = "COM1";
// configure the data to write, this can be a string, a byte array, or a char array
const string dataToWrite = "DataToWrite";
var dis = new CompositeDisposable();
// Setup the start of message and end of message
var startChar = 0x21.AsObservable();
var endChar = 0x0a.AsObservable();
// Create a disposable for each COM port to allow automatic disposal upon loss of COM port
var comdis = new CompositeDisposable();
// Subscribe to com ports available
SerialPortRx.PortNames().Do(x =>
{
if (comdis?.Count == 0 && x.Contains(comPortName))
{
// Create a port
var port = new SerialPortRx(comPortName, 9600);
port.DisposeWith(comdis);
// Subscribe to Exceptions from port
port.ErrorReceived.Subscribe(Console.WriteLine).DisposeWith(comdis);
port.IsOpenObservable.Subscribe(x => Console.WriteLine($"Port {comPortName} is {(x ? "Open" : "Closed")}")).DisposeWith(comdis);
// Subscribe to the Data Received
port.DataReceived.BufferUntil(startChar, endChar, 100).Subscribe(data => Console.WriteLine(data)).DisposeWith(comdis);
// Subscribe to the Is Open @500ms intervals and write to com port
port.WhileIsOpen(TimeSpan.FromMilliseconds(500)).Subscribe(_ => port.Write(dataToWrite)).DisposeWith(comdis);
// Open the Com Port after subscriptions created
port.Open();
}
else
{
comdis?.Dispose();
Console.WriteLine($"Port {comPortName} Disposed");
comdis = [];
}
}).ForEach().Subscribe(name =>
{
// Show available ports
Console.WriteLine(name);
}).DisposeWith(dis);
Console.ReadLine();
// Cleanup ports
comdis.Dispose();
dis.Dispose();
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net6.0-windows10.0.19041 is compatible. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net7.0-windows10.0.19041 is compatible. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net8.0-windows10.0.19041 is compatible. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
-
net6.0
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
-
net6.0-windows10.0.19041
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
-
net7.0
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
-
net7.0-windows10.0.19041
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
-
net8.0
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
-
net8.0-windows10.0.19041
- ReactiveMarbles.Extensions (>= 1.1.7)
- System.IO.Ports (>= 8.0.0-rc.2.23479.6)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on SerialPortRx:
Package | Downloads |
---|---|
ModbusRx
An Reactive version of NModbus4 |
|
MQTTnet.Rx.SerialPort
Reactive extensions for MQTTnet Broker |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.0.3 | 595 | 11/24/2023 |
3.0.2 | 78 | 11/11/2023 |
2.3.4 | 762 | 2/18/2023 |
2.3.2 | 324 | 1/10/2023 |
2.3.1 | 274 | 1/10/2023 |
2.2.6 | 6,309 | 7/22/2022 |
2.1.4 | 408 | 7/21/2022 |
2.1.3 | 403 | 7/21/2022 |
2.1.2 | 409 | 7/20/2022 |
2.1.1 | 649 | 12/13/2021 |
1.4.4 | 696 | 5/1/2021 |
1.4.3 | 852 | 2/24/2020 |
1.4.2 | 600 | 1/19/2020 |
1.4.1 | 563 | 12/29/2019 |
1.4.0 | 583 | 12/29/2019 |
1.3.1 | 966 | 1/8/2019 |
1.3.0 | 849 | 10/17/2018 |
1.2.0 | 807 | 9/19/2018 |
1.1.0 | 911 | 8/15/2018 |
1.0.1 | 1,023 | 6/27/2018 |
1.0.0 | 1,009 | 5/28/2018 |
0.0.0.5 | 1,013 | 2/15/2018 |
0.0.0.4 | 1,169 | 9/29/2016 |
0.0.0.3 | 951 | 9/27/2016 |
0.0.0.2 | 921 | 9/26/2016 |
0.0.0.1 | 904 | 9/25/2016 |
Compatability with Net 6, Net 7 and netstandard2.0