歡迎光臨
每天分享高質量文章

.NET Core 跨平臺物聯網框架 ServerSuperIO.Core

來自:唯笑志在

連結:http://www.cnblogs.com/lsjwq/p/9560736.html

一、概述

我們的大資料平臺(雲)平臺的資料接收服務基於ServerSuperIO開發,因為整合的功能比較多,無法實現跨平臺,現在跑在Windows下。

但是雲端體系化、標準化建設,跨平臺是必走的技術路線。在ServerSuperIO基礎上做裁剪和適配,實現ServerSuperIO.Core跨平臺應用。

ServerSuperIO.Core跨平臺的意義在於一套裝置驅動可以部署在任何地方,核心裝置驅動介面始終保持一致,例如:嵌入式、上位機(PC)、雲端等,從底層到雲端的整體鏈路實現了任意部署,大大提高了效率和節省了成本。

二、ServerSuperIO.Core跨平臺開發環境

ServerSuperIO.Core現在是基於.netcore 2.0開發,對串列埠(com)操作和網路(net)操作進行了跨平臺的適配。原始版本使用的是vs2017環境進行開發,跨平臺開發除錯使用的是vscode工具。

全宇宙第一IDE+跨平臺開發工具,還是比較方便。ServerSuperIO在沒有整合OPC的時候,也可以基於mono實現跨平臺,但是感覺mono還是比較重,如果是基於服務或事務性的應用基於.netcore更好。類地圖如下:

三、ServerSuperIO.Core特點

1、輕型高效能物聯網通訊框架,結合應用業務,適用於多種應用場景,輪詢樣式、自控樣式、併發樣式和單例樣式。

2、裝置驅動、IO通道、控制樣式場景協調統一。

3、裝置驅動內軒命令驅動器、命令快取器、自定義引數和實時資料元素。

4、框架平臺支援按裝置命令優先順序別進行排程,保證高階別命令及時傳送。

5、一個裝置驅動同時支援串列埠和網路兩種通訊方式,可以監視IO通道資料。

6、一個裝置驅動,在網路通訊時可以支援TCP Server和TCP Client兩種工作樣式。

7、網路通訊時可以設定多個控制器,負載平衡對裝置執行排程。

8、支援WebSocket網路通訊協議。

9、內建服務元件介面,可以自定義完成OPC服務、4-20mA輸出、LED大屏顯示、簡訊服務、以及多功能閘道器服務。

10、可以建立多服務實體,完成不同業務的拆分。

11、支援跨平臺部署,可以執行在Linux和Windows系統。

12、支援裝置驅動之間的資料聯結器互動。

13、支援裝置驅動與服務驅動之間的資料連線互動。

四、ServerSuperIO.Core與ServerSuperIO區別

五、嵌入式應用

使用ServerSuperIO.Core可以執行在Ubuntu Mate、raspbian等嵌入式操作上,如果在純linux核心上裁剪的系統上執行,沒有實際應用這,有興趣的網友可以測試一下。

六、上位機應用

ServerSuperIO本身是基於SuperIO發展面來的,SuperIO一開始主要應用在上位機的開發,但是隨著雲、大資料、工業網際網路的發展,適應高併發、標準化、體系化應用的新趨勢,重構開發了ServerSuperIO框架。現在不現維護SuperIO框架,但是可以基於ServerSuperIO或ServerSuperIO.Core開發上位機程式,如下圖:

七、雲服務應用

現在我們的大資料平臺的資料互動服務是基於ServerSuperIO開發,但是考慮到跨平臺和容器化,建議使用ServerSuperIO.Core進行開發。

當然也可以把嵌入式、上位機的驅動進行雲化,部署在雲端,不需要特別修改程式碼。現在我們平臺實時執行的服務:

八、應用和測試說明,以Linux平臺為例

1、環境準備

在Ubuntu 16.04作業系統上安裝.netcore 2.0以上版本,以及vscode開發工具。到官網下載,過程不再贅述。

2、下載測試程式

https://github.com/wxzz/ServerSuperIO.Core下載測試程式,下載解壓後直接複製到Ubuntu操作上。

3、使用vscode開啟程式目錄

因為已經使用vscode除錯過,可以直接啟動除錯,執行TestSelfMain工程專案。預設偵聽埠為:6670。

4、使用TestDevice.exe模擬裝置


5、實際執行效果


Github地址:https://github.com/wxzz/ServerSuperIO


●編號153,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

Web開發

更多推薦18個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂