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

物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

程序员文章站 2022-07-07 12:17:14
正所谓天下大势,不跟风不行。你不跨平台,很low嘛。java说:你们能跨嘛,跨给我看看。C#说:不要强人所难嘛。java说:能部署在云上吗?docker?微服务?C#说:不要强人所难嘛。java说:你能干啥?C#说:能干啥有必要和你说嘛,我只自己玩。Php说:就服你两装B的样子。哈哈! 噢java改... ......

        正所谓天下大势,不跟风不行。你不跨平台,很low嘛。java说:你们能跨嘛,跨给我看看。C#说:不要强人所难嘛。java说:能部署在云上吗?docker?微服务?C#说:不要强人所难嘛。java说:你能干啥?C#说:能干啥有必要和你说嘛,我只自己玩。Php说:就服你两装B的样子。哈哈! 噢java改名了,叫Jakarta。


1.跨平台实践环境

     操作系统:Ubuntu 16.04

     开发工具:Vscode 1.21

     中间件:.Net Core 2.0

2..NetCore安装

     参见:https://www.microsoft.com/net/learn/get-started/linux/ubuntu16-04

3. Vscode安装

    下载:https://code.visualstudio.com/ ,我是直接下载的.tar.gz压缩包。

4.串口通讯的问题

     原来使用的是自带的SerialPort类,在.netcore2.0里并没有,但是在官方的docs里是有介绍的,如下图:

 物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

      我感觉这东西应该很好集成到.netcore里,不改动的情况下在mono跨平台下运行没有任何问题,现在都是MS一家的了,更不是问题了。

      ServerSuperIO在串口方面跨平台临时使用的是开源的SerialPortStream,如果.netcore2.1版本集成了SerialPort,再使用该类。使用SerialPortStream,需要注意的是需要编译和安装libnserial.so类库,如下图:

物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

5.网络通讯的问题

     网络通讯使用的是SocketAsyncEventArgs类库,并没有出现什么太多问题,在设置参数的时候需要注意如下:

物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

 

6.关于.NetCore版本的问题

     我电脑上安装的是.NetCore 2.1.4版本,只能使用2.0版本,不知道为什么,在Linux平台,如下图:

 物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

     在Windows平台,如下图:

物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

 

7.最后实现结果

     Ubuntu的虚拟串口还没有测试,回家(正在出差中)拿树苺派测试。网络通讯效果如下图:

物联网框架ServerSuperIO在.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

6.助力中小企业级连云端,促进工业互联网平台蓬勃发展,全套解决方案。

物联网&集成技术(.NET) QQ群:54256083