【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)

问题描述

源地址:目录C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源...11.SSIO的特点2.SSIO概述3.控制模式4.跨平台Windows和Linux一.SSIO的特点轻型高性能通信框架,适用于多种应用场,轮询模式、自控模式、并发模式和单例模式。设备驱动、IO通道、控制模式场景协调统一。设备驱动内轩命令驱动器、命令缓存器、自定义参数和实时数据元素。框架平台支持按设备命令优先级别进行调度,保证高级别命令及时发送。一个设备驱动同时支持串口和网络两种通讯方式,可以监视IO通道数据。一个设备驱动,在网络通讯时可以支持TCPServer和TCPClient两种工作模式。内置显示视图接口,满足不同显示需求。内置服务组件接口,可以自定义完成OPC服务、4-20mA输出、LED大屏显示、短信服务、以及多功能网关服务。可以创建多服务实例,完成不同业务的拆分。支持跨平台部署,可以运行在Linux和Windows系统。二.SSIO概述SSIO通信框架的设计思想是在SuperIO(SIO)基础上发展而来,并没有高大上的技术,主要是工作经验的积累,适合于不同应用场景的物联网的数据采集与交互。SSIO和SIO并不是简单的对IO高性能的操作,而是设备驱动、IO通道、控制模式和实际硬件设备之间的协调机制,各方面之间无缝衔接和运行,也是为了解决现实工作和应用场景的一些痛点。软硬件之间的数据交互,并且面临着复杂的现场环境:(1)复杂的、多样的通讯协议。有标准的协议,例如:Modbus等,也有很多根据标准协议修改的协议格式、以及自定义协议格式,并且千差万别。对于不好的软件架构,疲于应对,增加设备或协议要对整个软件进行梳理,往往在此过程中出现新的问题或BUG。(2)针对不同用户对软件界面或功能的要求有很大不同,使之满足不同用户的显示要求,可以自定义数据显示界面。那么就需要提供显示视图接口,与设备驱动进行交互。(3)既然现场设备的数据被采集上来,那么就需要对其进行处理,不仅仅是保存、查询、报表等,还有:数据转发、数据输出(OPC、模拟量、大屏等)等。那么就需要提供服务性的接口,与设备驱动进行交互。(4)通讯链路的多种性,对于同一个设备可能要支持RS232/RS485/RS422、RJ45、3G/4G等通讯方式,所以对于一个设备要对应多种通讯方式(串口和网络),也给我们的开发造成很大的障碍。(5)设备驱动、IO通道和实际的现场硬件终端之间链路复杂,有可能:一个设备驱动对应一个IO通道、一个设备驱动对应多个IO通道、多个设备驱动对应一个IO通道等情况。(6)既然设备与服务端进行数据交互,那么就应该对设备的通讯状态、IO状态、以及设备本身的状态进行监控,这样设备才处于可维护状态。(7)软件各版本、以及软件与硬件之间的兼容性很差,管理起来错综复杂。在框架平台稳定的情况下,只需要更新设备驱动。为了解决以上诸多问题,开发一个软件框架,支持二次开发。在不对软件框架改动的情况下,能够很方便的接入设备、维护设备、集成设备、处理设备业务数据等。软件框架相对稳定,把容易变化的部分进行灵活设计。四.控制模式(1)轮询模式:当串口和网络通讯时都可以使用这种控制模式。当有多个设备连接到通讯平台时,通讯平台会轮询调度设备进行通讯任务。某一时刻只能有一个设备发送请求命令、等待接收返回数据,这个设备完成发送、接收(如果遇到超时情况,则自动返回)后,下一个设备才进行通讯任务,依次轮询设备。如下图:(2)并发模式:只有网络通讯时可以使用这种控制模式。并发通讯模式是集中发送所有设备的请求指令,框架是采用循环同步方式发送请求命令。还有进一步提高的机会,采用并行异步方式集中发送请求命令。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。如下图:(3)自控模式:只有网络通讯时可以使用这种控制模式。自控通讯模式与并发通讯模式类似,区别在于发送指令操作交给设备驱动本身进行控制,或者说交给二次开发者,二次开发者可以通过时钟定时用事件驱动的方式发送指令数据。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。自控通讯模式可以为二次开发者提供精确的定时请求实时数据机制,使通讯机制更灵活、自主,如果多个设备驱动使用同一个IO通道的话,时间控制会有偏差。如下图:(4)单例模式:只有网络通讯时可以使用这种控制模式。在一个服务实例内只能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。如下图:五.跨平台Windows和Linux(1)Windows运行效果(2)Linux运行效果开源地址:https://github.com/wxzz/ServerSuperIO百度网盘:http://pan.baidu.com/s/1eRy0inKQQ:504547114QQ群:54256083

时间: 2024-09-17 21:19:17

【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)的相关文章

跨平台物联网通讯框架 ServerSuperIO v1.1(SSIO)

SSIO的更新 在SSIO上增加了UDP通讯方式,可以到Git上 下载源代码.在原来的项目中,远端的设备与中心站的数据交互并没有使用过UDP方式.这种短连接的通讯链路,不容易维护,主要体现在:(1)持续的数据交 互能力.(2)对现场设备进行长时间的维护和校准.(3)SSIO要协调设备.IO和控制方式之间的运作关系,无法即时反应设备的IO状态.等等. 但是,对于一个平台来讲,UDP的通讯方式是应该具有的,根据现场情况选择是否应用.例如:远端的设备定时发送设备状态信息等,可以使用UDP的通讯方式,在

转 比较跨语言通讯框架:Apache Thrift和Google Protobuf

    前两天想在微博上发表一个观点:在现在的技术体系中,能用于描述通讯协议的方式很多,xml,json,protobuf,thrift,如果在有如此众多选择的基础上,在设计系统时,还自造协议,自己设计协议类型和解析方式,那么我只能说,您真的落后了,不是技术上,而是思想上.对于xml,和json我们不做过多描述了,参考相关文档就可以了.特别是json,如今在 web系统,页游系统的前后台通讯中,应用非常广泛.本文将重点介绍两种目前在大型系统中,应用比较普遍的两种通讯框架,thrift和Proto

BNN - 基于low-bits量化压缩的跨平台深度学习框架

写在最前     本文介绍阿里IDST部门研发.基于low-bits量化压缩的深度学习框架BNN(Binary Neural Network),BNN具有以下特点:     1) 跨平台:BNN可以在不同的主流硬件平台上进行部署,包括ARM系列移动端处理器.Intel系列服务器以及正在开发中的NVidia的图形处理器:     2)压缩比高:使用了自研发low-bits量化压缩技术,在算法精度几乎无损的前提下能达到40-100倍压缩率,而且我们也提供无需重新训练的压缩方式,极大简化了迭代周期:

Polycode:免费、开源的跨平台(游戏和APP)开发工具

Polycode:免费.开源的跨平台(游戏和APP)开发工具 发表于2013-03-27 08:53| 次阅读| 来源 C++SDN| 0 条评论| 作者张红月 开源PloycodeMoaiC++http://www.aliyun.com/zixun/aggregation/13484.html">Cocos2d-xUnity 3D游戏引擎 摘要:Polycode是 一款免费.开源的跨平台开发工具, 遵循MIT协议,代码托管在GitHub上.其API的设计理念是"用更少的代码做更

Egg.js 1.2.1 发布,阿里开源的企业级 Node.js 框架

Egg.js 1.2.1 发布了,egg 是阿里开源的企业级 Node.js 框架,为企业级框架和应用而生.通过 egg,团队的架构师和技术负责人可以非常容易地基于自身的技术架构在 egg 基础上扩展出适合自身业务场景的框架. 更新内容: [13587667] - fix(loader): loadPlugin 可以被拓展 [1a027ad7] - test: 使用 assert 替换 should [89b4df9d] - docs: 修复中文 router 文档中的名称错误 下载地址: So

美国OTA更新《物联网信任框架》:未来物联网认证计划的基础

1月13日讯 美国在线信任联盟(The Online Trust Alliance,OTA)发布更新的<物联网信任框架>,作为物联网设备开发商.采购商和零售商的产品开发与风险评估指南,此框架是未来物联网认证计划的基础. 美国OTA更新<物联网信任框架>:未来物联网认证计划的基础-E安全 OTA旨在强调企业应致力于设备的生命周期安全,并采用负责任的隐私做法.此类通知和披露将有助于让消费者了解物联网设备的购买决策. OTA认识到,虽然没有绝对的安全,但实施框架原则的企业应避免受到监管监

美国在线信任联盟发布更新《物联网信任框架》

美国在线信任联盟(The Online Trust Alliance,OTA)发布更新的<物联网信任框架>,作为物联网设备开发商.采购商和零售商的产品开发与风险评估指南,此框架是未来物联网认证计划的基础. 美国在线信任联盟发布更新<物联网信任框架> OTA旨在强调企业应致力于设备的生命周期安全,并采用负责任的隐私做法.此类通知和披露将有助于让消费者了解物联网设备的购买决策. OTA认识到,虽然没有绝对的安全,但实施框架原则的企业应避免受到监管监督和集体诉讼,并潜在得到较低的保险费.

工业互联网联盟发布工业物联网安全框架

物联网(IoT)安全问题复杂又棘手,IIC为解决此问题提出了一个框架. 本周,工业互联网联盟发布了<工业物联网安全框架>,一份旨在解决工业物联网(IIoT)及全球工业操作运行系统相关安全问题的缜密蓝图,从多个角度解决安全.可靠性和隐私问题. 该框架集中在5个方面:安全保障(safety).隐私性.安全性.可靠性和适应性,同时这也是联盟官员所谓的定义工业系统的5大特征:设计了各种风险.评估.威胁和性能指标供产业经理用来保护各自的公司企业. 工业网络原本是自成一体相互隔离的,但如今却暴露在愈驱复杂

JUCE 1.53发布 基于c++跨平台应用程序框架类库

JUC++E (Jules' Utility Class Extensions)是由Raw MaterialSoftware发布的一套基于c++的跨平台应用程序框架类库(Windows, Mac,Linux).JUCE的特殊之处在于其友好的用户界面以及强大的音频.图像处理能力.JUCE适合那些想使用干净.快捷.高层的API,而不想把时间浪费在使用不同类库,面向不同平台上的开发者.JUCE能够胜任大型.复杂的应用程序(C++)的开发. 与其他应用程序框架类似,JUCE有众多覆盖音频.图像.XML分