博客
关于我
物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务
阅读量:445 次
发布时间:2019-03-06

本文共 1798 字,大约阅读时间需要 5 分钟。

ServerSuperIO.Core 跨平台开发框架

概述

我们的大数据平台(云)基础上,数据接收服务基于ServerSuperIO开发,但由于集成功能较多,目前主要运行在Windows环境。随着云端体系化、标准化建设的需求,跨平台实现已成为必然选择。在ServerSuperIO框架基础上进行适配和裁剪,打造ServerSuperIO.Core实现跨平台应用。

ServerSuperIO.Core的跨平台意义在于,一套设备驱动可以部署在嵌入式、上位机(PC)、云端等多种场景,核心设备驱动接口保持一致。从底层设备到云端的整体链路实现了任意部署的可能,大幅提升效率并节省成本。

跨平台开发环境

ServerSuperIO.Core目前基于.netcore 2.0进行开发,对串口(COM)操作和网络(NET)操作进行了跨平台适配。原始版本使用VS2017环境开发,跨平台开发调试则采用VSCode工具。VSCode作为全宇宙首个支持IDE+跨平台开发工具,使用起来相当方便。

在没有集成OPC功能的情况下,ServerSuperIO也可以基于Mono实现跨平台开发,但Mono较为重量化。如果是基于服务或事务性应用,建议选择基于.netcore的开发框架。

ServerSuperIO.Core特点

  • 轻量高性能物联网通信框架,结合应用业务,支持轮询模式、自控模式、并发模式和单例模式。
  • 设备驱动、IO通道、控制模式场景协调统一。
  • 设备驱动内置命令驱动器、命令缓存器、自定义参数和实时数据元素。
  • 支持按设备命令优先级别调度,保证高优先级命令及时发送。
  • 设备驱动同时支持串口和网络两种通讯方式,可监视IO通道数据。
  • 网络通讯时支持TCP Server和TCP Client两种工作模式。
  • 支持多个控制器,实现负载平衡对设备运行调度。
  • 具备WebSocket网络通讯协议支持。
  • 内置服务组件接口,可实现OPC服务、4-20mA输出、LED大屏显示、短信服务等功能。
  • 可创建多服务实例,完成不同业务的拆分。
  • 支持跨平台部署,可运行于Linux和Windows系统。
  • 支持设备驱动之间的数据连接器交互。
  • 支持设备驱动与服务驱动之间的数据连接交互。
  • 与ServerSuperIO区别

    ServerSuperIO.Core与ServerSuperIO的主要区别体现在架构设计和功能扩展上。ServerSuperIO最初主要面向上位机开发,但随着云、大数据、工业互联网的发展,逐步重构为适应高并发、标准化、体系化应用的新型框架。现在主要维护ServerSuperIO和ServerSuperIO.Core两套框架,开发者可根据需求选择使用。

    嵌入式应用

    ServerSuperIO.Core支持运行于Ubuntu Mate、Raspbian等嵌入式操作系统。如果在纯Linux内核裁剪的系统上运行,可能会遇到一些兼容性问题。建议有兴趣的开发者进行实际测试。

    上位机应用

    ServerSuperIO原本是面向上位机开发的,但随着云、大数据等新趋势的兴起,框架进行了重构。现在主要维护ServerSuperIO和ServerSuperIO.Core两套框架,开发者可根据需求选择使用。

    云服务应用

    大数据平台的数据交互服务原本基于ServerSuperIO开发,但考虑到跨平台和容器化需求,建议使用ServerSuperIO.Core进行开发。嵌入式、上位机驱动可通过云化技术部署至云端,无需特别修改代码。

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

    1. 环境准备

    在Ubuntu 16.04操作系统上安装.netcore 2.0以上版本,以及VSCode开发工具。具体下载和安装步骤可参考官方网站。

    2. 下载测试程序

    下载测试程序后,解压并直接复制到Ubuntu操作系统上运行。

    3. 使用VSCode打开程序目录

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

    4. 使用TestDevice.exe模拟设备

    运行TestDevice.exe进行设备模拟测试。

    5. 实际运行效果

    通过实际运行测试程序,验证跨平台适配效果,确保设备驱动和网络通信功能正常工作。


    物联网与集成技术 QQ群:54256083

    物联网与集成项目合作QQ群:727664080

    转载地址:http://pboyz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现inversions倒置算法(附完整源码)
    查看>>
    Objective-C实现isalpha函数功能(附完整源码)
    查看>>
    Objective-C实现islower函数功能(附完整源码)
    查看>>
    Objective-C实现isPowerOfTwo算法(附完整源码)
    查看>>
    Objective-C实现isupper函数功能(附完整源码)
    查看>>
    Objective-C实现ItemCF算法(附完整源码)
    查看>>
    Objective-C实现ItemCF算法(附完整源码)
    查看>>
    Objective-C实现iterating through submasks遍历子掩码算法(附完整源码)
    查看>>
    Objective-C实现iterative merge sort迭代归并排序算法(附完整源码)
    查看>>
    Objective-C实现jaccard similarity相似度无平方因子数算法(附完整源码)
    查看>>
    Objective-C实现Julia集算法(附完整源码)
    查看>>
    Objective-C实现jump search跳转搜索算法(附完整源码)
    查看>>
    Objective-C实现jumpSearch跳转搜索算法(附完整源码)
    查看>>
    Objective-C实现k nearest neighbours k最近邻分类算法(附完整源码)
    查看>>
    Objective-C实现k-means clustering均值聚类算法(附完整源码)
    查看>>
    Objective-C实现k-Means算法(附完整源码)
    查看>>
    Objective-C实现k-nearest算法(附完整源码)
    查看>>
    Objective-C实现KadaneAlgo计算给定数组的最大连续子数组和算法(附完整源码)
    查看>>
    Objective-C实现kadanes卡达内斯算法(附完整源码)
    查看>>
    Objective-C实现kahns algorithm卡恩算法(附完整源码)
    查看>>