ServerSuperIO 2.0(SSIO)发布,跨平台物联网通讯框架

2016年08月17日

更新具体细节参见:更新设计】跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!

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.开源分支

开源地址:http://git.oschina.net/wxzz/ServerSuperIO/tree/2.0/

展开阅读全文
47 收藏
分享
加载中
最新评论 (1)
支持一下,有机会用用
2016-08-18 09:12
0
回复
举报
更多评论
1 评论
47 收藏
分享
返回顶部
顶部