物聯網框架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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...