1. 程式人生 > >.Net Core 跨平臺應用使用串口、串口通信 ,可能出現的問題、更簡潔的實現方法

.Net Core 跨平臺應用使用串口、串口通信 ,可能出現的問題、更簡潔的實現方法

數據幀 color 怎麽 height serial htm 開源 失敗 linux 系統

前些天在學習在 .NET Core下,跨平臺使用串口通訊,有一篇文章說到在Linux/物聯網下,實現通訊。

主要問題出現在以下兩個類庫

SerialPortStream
flyfire.CustomSerialPort

作者地址: https://www.cnblogs.com/lonelyxmas/p/10363869.html

說明

由於.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時,出現了無法安裝的問題。

可以試試這個方法 https://zhidao.baidu.com/question/150155324.html

技術分享圖片

更方便的方法

為了避免麻煩和方便使用,筆者在 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.cnblogs.com/whuanle/p/10499597.html

.Net Core 跨平臺應用使用串口、串口通信 ,可能出現的問題、更簡潔的實現方法