.NET Core跨平台串口通讯使用SerialPortStream基础类库问题解决

说明

由于.net core 2.x 中,已经找不到 serialport 库,使用需要使用第三方框架,可以直接在 Nuget 中搜索

SerialPortStream

开源地址https://github.com/jcurl/SerialPortStream

为了方便使用,有人封装把它了起来,在 Nuget 中搜索

flyfire.CustomSerialPort

这是一个增强的自定义串口类,实现协议无关的数据帧完整接收功能,支持跨平台使用,使用 SerialPortStream 基础类库。

怎么使用类库

SerialPortStream在 Windows 下可以正常使用,但是,在 Linux 系统下,必须为 Linux 平台编译支持库编译类库,其类库作者说明如下:

不然的话,项目打包到Linux时,会出现:

文章作者给出的方法是,自己在 Linux 下编译,可是很多人会在这里失败,输入命令后,无法安装 gcc 和 cmake,以及其它软件。

安装更新GCC

sudo apt-get install gcc

安装cmake

sudo apt-get install cmake

安装 GCC 、Cmake 的目的,是为了能够编译 serialportstream,生成 .so 文件。

安装完成后,还需要安装 Git ,把SerialPortStream 克隆下来编译

有些朋友在安装GCC、Cmake时,出现了无法安装的问题。

可以试试这个方法

更方便的方法

为了避免麻烦和方便使用,笔者在 Linux 编译支持类库成功后,把需要的文件打包好了。

你只需在 .NET Core 项目中,把文件放进去即可,无需在 Linux 中安装 Gcc/Cmake 和后续编译。

下载地址 http://pan.whuanle.cn/index.php?dir=uploads/dotnet-core-串口&response

下载这三个文件:

  • libnserial.so
  • libnserial.so.1
  • libnserial.so.1.1

把这三个类库,发到你的项目中,随项目一起打包即可。

化繁为简。

关于flyfire.CustomSerialPort 的使用,和串口通讯实现示例,笔者还有另一篇文章:

https://www.jb51.net/article/234697.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2022-01-12

.NET Core使用flyfire.CustomSerialPort实现Windows/Linux跨平台串口通讯

1,前言 开发环境:在 Visual Studio 2017,.NET Core 2.x 串口通讯用于设备之间,传递数据,物联网设备中广泛使用串口方式连接通讯,物联网通讯协议 :Modbus 协议 ASCII.RTU.TCP模式是应用层的协议,与通讯方式无关. 笔者现在实现的是 串口通信,实现后,可以在上层加上 Modbus 协议,笔者的另一篇文章即是在串口上实现 Modbus 协议,计算中心向物联网设备发送消息,要求设备响应,传送设备信息.检测状态等. 本文是 串口通讯 的实现. 2,安装虚拟

.Net Core应用增强型跨平台串口类库CustomSerialPort()详解

目录 摘要 引言 基础类库的选择 类库的实现 创建跨平台类库 实现机制/条件 .net core跨平台实现 主要代码 创建.net core控制台程序 类库地址 跨平台测试 Windows测试输出界面 ubuntu测试输出界面 源码地址 摘要 在使用SerialPort进行串口协议解析过程中,经常遇到接收单帧协议数据串口接收事件多次触发,协议解析麻烦的问题.针对此情况,基于开源跨平台串口类库SerialPortStrem进行了进一步封装,实现了一种接收超时响应事件机制,简化串口通讯的使用. 引言

.Net Core跨平台应用开发串口篇HelloArm

目录 引言 硬件环境 硬件资源特性 支持的系统平台 系统平台 .NET Core支持的Linux版本 系统平台选择 连接嵌入式Linux系统 物理连接 串口连接 网络连接 .NET Core跨平台验证 验证程序设计 显示系统平台信息 串口资源列举 串口测试 跨平台发布 远程部署 Linux环境运行.Net Core程序 第三方串口类库 Linux串口类库编译 环境变量配置 Linux串口测试 配置程序开机运行 结束语 引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应

IOS开发网络篇—Socket编程详解

一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议对应于应用层 tcp协议对应于传输层 ip协议对应于网络层 三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要解决数据如何在网络中传输:而HTTP是应用

Visual C#.Net 网络程序开发-Socket篇第1/2页

Visual C#.Net 网络程序开发-Socket篇   作者: 宋华 作者: www.ASPCool.com Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要-

Java web基础学习之开发环境篇(详解)

Tomcat + Eclipse添加Java EE插件 因为之前进行Java SE学习已经配置了JDK,安装了Eclipse for Java SE,所以选择了在Eclipse上添加插件的方式来配置Web开发环境 Tomcat是免安装版,直接解压即可: Eclipse中"帮助-安装新软件",work with处选择Mars - http://download.eclipse.org/releases/mars(注意对应自己版本): 选择Web.Java EE那个选项进行安装即可,如果报

Spring Boot Web 开发注解篇

一.spring-boot-starter-web 依赖概述 在 Spring Boot 快速入门中,只要在 pom.xml 加入了 spring-boot-starter-web 依赖,即可快速开发 web 应用.可见,Spring Boot 极大地简化了 Spring 应用从搭建到开发的过程,做到了「开箱即用」的方式.Spring Boot 已经提供很多「开箱即用」的依赖,如上面开发 web 应用使用的 spring-boot-starter-web ,都是以 spring-boot-sta

简单谈谈.NET Core跨平台开发

对于.NET开源计划想必关注的人已经跃跃欲试了,但是真正将其用于开发的目前来说不多.毕竟截至本文发布时.NET Core才发布到1.0RC2版本.正式版预计还有一段时间.况且大多数人都是持观望态度,就算开发仍然用的还是.NET Framework.另外不得不说的一点就是.NET开源的进度很惊人但是社区建设还有待提升,很多配套的东西还不齐全.Java在语言层级上可能落后.NET但是Java的社区力量是.NET远不及的. 一.安装SDK .NET Core发布版:https://www.micros

.NET Core跨平台执行命令、脚本的方法详细

一.前言 在工作中我们可能会遇到需要在程序中执行一些系统命令,来获取一些信息:或者调用shell脚本..NET Core 目前已经可以跨平台执行,那么它如何跨平台执行命令呢,请看下面的讲解.话不多说了,来一起看看详细的介绍吧 二.ProcessStartInfo.Process 类介绍 我们主要用到的两个类就是 ProcessStartInfo 和 Process ,他们的用法和.NET Framework下是一样的. 1. ProcessStartInfo 类 ProcessStartInfo

iOS开发UI篇—xib的简单使用实例

这个博客申请了有一段时间了,觉得好像是该写点什么了.这篇文章主要是关于一些xib的简单的用法,希望可以帮助到刚刚使用xib的新手们. 什么是xib? xib能做什么? 用来描述软件界面的文件. 如果没有xib,所有的界面都需要通过代码来手动创建. 有了xib以后,可以在xib中进行可视化开发,然后加载xib文件的时候,系统自动生成对应的代码来创建界面. 与xib类似的还有storyboard文件.xib和storyboard的比较,一个轻量级一个重量级. 共同点: 都用来描述软件界面.都用Int

Visual Studio ASP.NET Core MVC入门教程第一篇

ASP.NET Core MVC入门教程第一节课,具体内容如下 1.开始环境 visual studio 2017 社区版或其他版本.安装时勾选"Web和云"组中的"ASP.NET及网页开发"项和"其他工具"组中的".NET Core平台开发"项. 2.创建一个网页应用 (1)在 Visual Studio中, select 文件 >新建 >项目. (2) 在"新项目"对话框中的左面板中,点击&

浅谈PHP Extension的开发——基础篇第1/2页

摘要&引言 PHP是当前应用非常广泛的一门语言,从国外的Facebook.Twitter到国内的淘宝.腾讯.百度再到互联网上林林总总的各种大中小型网站都能见到它的身影.PHP的成功,应该说很大程度上依赖于其开放的扩展API机制和丰富的扩展组件(PHP Extension),正是这些扩展组件使得PHP从各种数据库操作到XML.JSON.加密.文件处理.图形处理.Socket等领域无所不能.有时候开发人员可能需要开发自己的PHP扩展,当前PHP5的扩展机制是基于Zend API的,Zend API提

用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)

自己学习使用了Angular JS 1一段时间,由于没有具体的项目进行尝试加上其它研究工作的影响,就搁置了一段时间.在与同事讨论技术选型时,才知道Angular JS 2的差别之大(孤陋了,莫见笑),所以决定弄弄Angular 2.WebStorm是进行JS和前端开发的不二之选的IDE工具,虽然目前版本已经更新了,但是由于Angular 2的成熟度还没那么高,所以用WebStorm进行Angular 2的工程创建,还是没有其他语言的方便.自己尝试用WebStorm搭建Angular 2的工程,虽