更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!
声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间进行了完善,并且升级到了2.0版本,希望对大家有帮助。仅供开源学习,商用请联系作者。
1.SSIO特点
- 轻型高性能通信框架,适用于多种应用场,轮询模式、自控模式、并发模式和单例模式。
- 不光是通讯框架,是设备驱动、IO通道、控制模式场景的协调机制。
- 支持协议驱动器,可以按规范写标准协议和自定义协议。
- 支持发送数据缓存器,支持命令缓存重发和按优先级别发送。
- 支持协议过滤器,按规则筛选数据,并且可以承继接口,自定义过滤方式。
- 支持接收数据缓存器,可以缓存不符合过滤器的数据,和下次接收数据进行拼接。
- 支持按设备命令优先级别进行调度设备,保证有高级别命令的驱动及时发送。
- 支持一个设备驱动,同时支持串口和网络两种通讯方式,可以监视IO通道数据。
- 支持一个设备驱动,在网络通讯时可以支持TCP Server和TCP Client两种工作模式。
- 支持多设备共享同一IO通道进行通讯。
- 支持定时清理超时的网络IO通道。
- 支持显示视图接口,满足不同显示需求。
- 支持服务组件接口,可以自定义完成OPC服务、4-20mA输出、LED大屏显示、短信服务、以及多功能网关服务。
- 支持创建多服务实例,完成不同业务的拆分。
- 支持跨平台部署,可以运行在Linux和Windows系统。
2. 测试过程的协议
协议头(2个字节),客户端编号(ASCII,4个数字字符),文件名称,文件内容,协议尾(2个字节)
事例:0x35,0x35,0001,yyMMddHHmmss.txt,文件内容,0x33,0x33
3. 测试结果
从2016-8-16 14:00左右开始测试,到2016-8-17 13:00左右截图。每间隔5s发送一个65kb的文件,SSIO负责接收,并且存储数据。如下图:
红圈标注的内容,为什么会出现错误数据呢?这是因为协议中以0x35、0x35开头,以0x33、0x33结尾,但是协议数据中包括文件名称,是以时间为命名规则:yyMMddHHmmss.txt,所以文件名称在协议中的数据有可能包括0x35或0x33的数据,所以会出现截取数据错位的情况,这是正常现象。但是在设计通讯协议的过程需要特别注意。
4.开源分支
SSIO 2.0版本是在SSIO1.3版本基础上修改的,修改的内容比较多,所以新建了一个分支,在github上下载时需要注意,如下图:
2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍
2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
5.ServerSuperIO开源地址:https://github.com/wxzz/ServerSuperIO
物联网&集成技术(.NET) QQ群:54256083