欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

程序员文章站 2023-11-02 13:46:46
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(.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(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

 嵌入式应用

      使用serversuperio.core可以运行在ubuntu mate、raspbian等嵌入式操作上,如果在纯linux内核上裁剪的系统上运行,没有实际应用这,有兴趣的网友可以测试一下。

 上位机应用

     serversuperio本身是基于superio发展面来的,superio一开始主要应用在上位机的开发,但是随着云、大数据、工业互联网的发展,适应高并发、标准化、体系化应用的新趋势,重构开发了serversuperio框架。现在不现维护superio框架,但是可以基于serversuperio或serversuperio.core开发上位机程序,如下图:

物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

  云服务应用

      现在我们的大数据平台的数据交互服务是基于serversuperio开发,但是考虑到跨平台和容器化,建议使用serversuperio.core进行开发。当然也可以把嵌入式、上位机的驱动进行云化,部署在云端,不需要特别修改代码。现在我们平台实时运行的服务:

物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

应用和测试说明,以linux平台为例

(1)    环境准备

           在ubuntu 16.04操作系统上安装.netcore 2.0以上版本,以及vscode开发工具。到官网下载,过程不再赘述。

(2)    下载测试程序

           到https://github.com/wxzz/serversuperio.core下载测试程序,下载解压后直接复制到ubuntu操作上。

物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

(3)    使用vscode打开程序目录

          因为已经使用vscode调试过,可以直接启动调试,运行testselfmain工程项目。默认侦听端口为:6670。

(4)    使用testdevice.exe模拟设备

物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

(5)    实际运行效果

物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务


1.[连载]《c#通讯(串口和网络)框架的设计与实现》

 2.[开源]c#跨平台物联网通讯框架serversuperio(ssio)介绍

 2.应用superio(sio)和开源跨平台物联网框架serversuperio(ssio)构建系统的整体方案

 3.c#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、activemq、mongodb、webapi、手机app)

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

 

 物联网&集成技术 qq群:54256083 

物联网&集成项目合作qq群:727664080