### 注：二次开发套件、SuperIO、ServerSuperIO.WinIot(windows10 iot版本)不在开源之列。<br>

#ServerSuperIO的特点
1.轻型高性能通信框架，适用于多种应用场，轮询模式、自控模式、并发模式和单例模式。<br>
2.不光是通讯框架，是设备驱动、IO通道、控制模式场景的协调机制。<br>
3.支持协议驱动器，可以按规范写标准协议和自定义协议。<br>
4.支持发送数据缓存器，支持命令缓存重发和按优先级别发送。<br>
5.支持协议过滤器，按规则筛选数据，并且可以承继接口，自定义过滤方式。<br>
6.支持接收数据缓存器，可以缓存不符合过滤器的数据，和下次接收数据进行拼接。<br>
7.支持按设备命令优先级别进行调度设备，保证有高级别命令的驱动及时发送。<br>
8.支持一个设备驱动，同时支持串口和网络两种通讯方式，可以监视IO通道数据。<br>
9.支持一个设备驱动，在网络通讯时可以支持TCP Server和TCP Client两种工作模式。<br>
10.支持多设备共享同一IO通道进行通讯。<br>
11.支持定时清理超时的网络IO通道。<br>
12.支持显示视图接口，满足不同显示需求。<br>
13.支持服务组件接口，可以自定义完成OPC服务、4-20mA输出、LED大屏显示、短信服务、以及多功能网关服务。<br>
14.支持创建多服务实例，完成不同业务的拆分。<br>
15.支持跨平台部署，可以运行在Linux和Windows系统。<br>
16.设备驱动与设备驱动，设备驱动与服务器（云端）可以实时双向交互，上传数据和指令下发。<br>

#ServerSuperIO概述
   SSIO通信框架的设计思想是在SuperIO（SIO）基础上发展而来，并没有高大上的技术，主要是工作经验的积累，适合于不同应用场景的物联网的数据采集与交互。SSIO和SIO并不是简单的对IO高性能的操作，而是设备驱动、IO通道、控制模式和实际硬件设备之间的协调机制，各方面之间无缝衔接和运行，也是为了解决现实工作和应用场景的一些痛点。软硬件之间的数据交互，并且面临着复杂的现场环境：<br>
（1）复杂的、多样的通讯协议。有标准的协议，例如：Modbus等，也有很多根据标准协议修改的协议格式、以及自定义协议格式，并且千差万别。对于不好的软件架构，疲于应对，增加设备或协议要对整个软件进行梳理，往往在此过程中出现新的问题或BUG。<br>
（2）针对不同用户对软件界面或功能的要求有很大不同，使之满足不同用户的显示要求，可以自定义数据显示界面。那么就需要提供显示视图接口，与设备驱动进行交互。<br>
（3）既然现场设备的数据被采集上来，那么就需要对其进行处理，不仅仅是保存、查询、报表等，还有：数据转发、数据输出（OPC、模拟量、大屏等）等。那么就需要提供服务性的接口，与设备驱动进行交互。<br>
（4）通讯链路的多种性，对于同一个设备可能要支持RS232/RS485/RS422、RJ45、3G/4G等通讯方式，所以对于一个设备要对应多种通讯方式（串口和网络），也给我们的开发造成很大的障碍。<br>
（5）设备驱动、IO通道和实际的现场硬件终端之间链路复杂，有可能：一个设备驱动对应一个IO通道、一个设备驱动对应多个IO通道、多个设备驱动对应一个IO通道等情况。<br>
（6）既然设备与服务端进行数据交互，那么就应该对设备的通讯状态、IO状态、以及设备本身的状态进行监控，这样设备才处于可维护状态。<br>
（7）软件各版本、以及软件与硬件之间的兼容性很差，管理起来错综复杂。在框架平台稳定的情况下，只需要更新设备驱动。<br>
   为了解决以上诸多问题，开发一个软件框架，支持二次开发。在不对软件框架改动的情况下，能够很方便的接入设备、维护设备、集成设备、处理设备业务数据等。软件框架相对稳定，把容易变化的部分进行灵活设计。
   
   # ServerSuperIO Designer IDE 4.x以后版本，下载地址：http://www.bmpj.net/article-12-1.html <br>
   
   # 官方网站:http://www.bmpj.net<br>
   # QQ:504547114<br>
   # QQ群：54256083 <br>

## >>>>>>>>>>不再提供源代码下载<<<<<<<<<<
