首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于RS232核心的.net库

用于RS232核心的.net库
EN

Stack Overflow用户
提问于 2016-11-19 06:17:16
回答 2查看 10.3K关注 0票数 15

我们正在.Net内核中开发应用程序,其中之一需要访问串口。

当我了解到System.IO.Ports不会在.Net核心中实现时,我正在寻找一个提供该功能的nuget库,但是无法获得一个与.net核心兼容的库(VS代码显示了错误消息)。

外面还有别的选择吗?

更新:我发现官方的SerialPort API在移植到.Net内核时被考虑到了(参见https://github.com/dotnet/corefx/issues/984)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-29 20:58:43

在2021年,这是一个完全跨平台的平台。

只需使用命令行或IDE安装NuGet:"System.IO.Ports“

下面的示例是一个.NET 5控制台模式程序,它在Linux和Windows上编译和工作。

代码语言:javascript
运行
复制
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);
    }
  }
}

注意:当我第一次回答这个问题时,我应该提到,您需要将上面构造函数中的"COM3“更改为"/dev/ttys0”或类似于Linux。您可能还必须在Linux机器上以Root/SU的身份运行您的应用程序,这正是Linux多用户安全的本质。

票数 3
EN

Stack Overflow用户

发布于 2017-02-04 03:31:49

我成功地为netstandard1.5编译了https://github.com/jcurl/SerialPortStream,并做了一些小修改。

查看拉请求:https://github.com/jcurl/SerialPortStream/pull/13

实验坚果包装:https://www.nuget.org/packages/SerialPortStreamCore/2.1.0

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40689840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档