物聯網框架ServerSuperIO.Core(.netcore)跨平臺,一套設備驅動通吃嵌入式、上位機、雲服務

来源:https://www.cnblogs.com/lsjwq/archive/2018/08/30/9560736.html
-Advertisement-
Play Games

1. 概述... 2 2. ServerSuperIO.Core跨平臺開發環境... 2 3. ServerSuperIO.Core特點... 2 4. ServerSuperIO.Core與ServerSuperIO區別... 2 5. 嵌入式應用... 2 6. 上位機應用... 2 7. 雲服 ...


1.      概述... 2

2.      ServerSuperIO.Core跨平臺開發環境... 2

3.      ServerSuperIO.Core特點... 2

4.      ServerSuperIO.Core與ServerSuperIO區別... 2

5.      嵌入式應用... 2

6.      上位機應用... 2

7.      雲服務應用... 2

8.      應用和測試說明,以Linux平臺為例... 2


  概述

       我們的大數據平臺(雲)平臺的數據接收服務基於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)    實際運行效果


1.[連載]《C#通訊(串口和網路)框架的設計與實現》

 2.[開源]C#跨平臺物聯網通訊框架ServerSuperIO(SSIO)介紹

 2.應用SuperIO(SIO)和開源跨平臺物聯網框架ServerSuperIO(SSIO)構建系統的整體方案

 3.C#工業物聯網和集成系統解決方案的技術路線(數據源、數據採集、數據上傳與接收、ActiveMQ、Mongodb、WebApi、手機App)

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

 6.助力中小企業級連雲端,促進工業互聯網平臺蓬勃發展,全套解決方案。

 物聯網&集成技術 QQ群:54256083 

物聯網&集成項目合作QQ群:727664080

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 去年就開始學習採用Docker+Jenkins+.Net Core搭建生成式流水線,一直拖到現在,也沒有徹底的好好靜下來去總結總結。趁著現在對自己的嚴格要求下,逐漸開始重視自我總結,以此來鞏固逐漸失去的知識。 本文地址:https://www.cnblogs.com/CKExp/p/9536864. ...
  • 首先瞭解一下 RFC4646 和 BCP 47 是什麼東西: "RFC4646" The name is a combination of an ISO 639 two letter lowercase culture code associated with a language and an I ...
  • 背景 由於最近公司要做微信小程式聊天,所以.NetFramwork版本的SignalR版本的不能用了。因為小程式里沒有windows對象,導致JQuery無法使用。而Signalr的 js客戶端是依賴JQuery的。 所以看下了Core版本的SignarlR,經過測試,發現可以在微信中運行,不過要將 ...
  • Ocelot是為.net core量身定做的,目前是基於 netstandard2.0進行構建的。 .NET Core 2.1中如何使用呢? 安裝NuGet package 使用nuget安裝Ocelot及其依賴項。您需要創建一個netstandard2.0項目並將其Package安裝到項目中。然後 ...
  • App.xaml.cs中的代碼每次都差不多,故特地將其整理出來直接復用: ...
  • 問題: 需要讓程式(以非同步方式)等待一段時間。 解決方案:Task類的靜態函數Delay,返回Task對象 在github開源項目 ,找到Task.cs有關Delay方法的源碼 github地址: "https://github.com/dotnet/coreclr/blob/master/src/ ...
  • 項目中經常使用需要根據搜索條件查詢數據,然後用卡片來展示數據。用卡片展示數據時,界面的寬度發生變化,希望顯示的卡片數量也跟隨變化。WrapPanel雖然也可以實現這個功能,但是將多餘的部分都留在行尾,十分不美觀,最好是能夠將多餘的寬度平分在每個ListBoxItem之間,比較美觀,也符合項目需求。如 ...
  • 公司項目有個需求,UI界面支持動態平均分割界面,想了想便想到用ListBox來實現,用UniformGrid作為ListBox的ItemsPanelTemplate,通過動態改變UniformGrid的Columns屬性,可以動態分割界面。具體實現如下所示: 對應的ViewModel層代碼: 軟體運 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...