Jai*_*ime 12 serial-port ports nuget .net-core visual-studio-code
我们正在开发.Net Core中的应用程序,其中一个需要访问串行端口.
当我了解System.IO.Ports将不会在.Net Core中实现时,我正在寻找一个提供该功能的nuget库,但无法与.net内核兼容(VS Code显示错误消息) ).
那里有替代品吗?
更新:我发现正在考虑将官方SerialPort API移植到.Net Core(请参阅https://github.com/dotnet/corefx/issues/984)
我设法为netstandard1.5 编译https://github.com/jcurl/SerialPortStream,稍作修改.
看一下拉取请求:https://github.com/jcurl/SerialPortStream/pull/13
实验性nuget包:https://www.nuget.org/packages/SerialPortStreamCore/2.1.0
到 2021 年,这将完全跨平台。
只需使用命令行或 IDE 安装 NuGet:“System.IO.Ports”
以下示例是一个 .NET 5 控制台模式程序,可在 Linux 和 Windows 上编译和运行。
using System;
using System.IO.Ports;
namespace PipelinesTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Reading a GPS Device on COM3");
SerialPort _port = new SerialPort("COM3", 4800, Parity.None, 8, StopBits.One);
_port.DataReceived += PortOnDataReceived;
_port.Open();
Console.WriteLine("Press Return to Exit");
Console.ReadLine();
_port.Close();
_port.DataReceived -= PortOnDataReceived;
Console.WriteLine("Ended");
}
private static void PortOnDataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort port = sender as SerialPort;
var line = port.ReadLine();
Console.WriteLine(line);
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:当我第一次回答这个问题时,我应该提到,您需要将上面构造函数中的“COM3”更改为“/dev/ttys0”或类似的 Linux 名称。您可能还必须在 Linux 计算机上以 Root/SU 身份运行您的应用程序,不幸的是,这正是 Linux 多用户安全性的本质。
归档时间: |
|
查看次数: |
6586 次 |
最近记录: |