1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍

《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。

《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍

《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。

《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。

《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据

《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)

《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。

《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互

《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载


ServerSuperIO 3.2更新说明:

1.增加IDataPersistence数据持久化接口,可以以多种形式存储设备的参数和实时数据。现在仅支持Xml序列化的方式,后期会支持MongoDB、influxdb和实时数据库(类似PI)等。
2.增加r配制参数ComNullInterval和NetNullInterval等,轮询模式下,串口和网络IO通道为空的情况下,中断时间间隔。

下载地址:http://pan.baidu.com/s/1c1ZZLOO

更新说明地址:http://www.bmpj.net/thread-36-1-1.html


目       录

15.数据持久化接口的使用... 2

15.1        概述... 2

15.2        定义IDataPersistence数据持久化接口... 2

15.3        使用IDataPersistence数据持久化接口... 5

15.数据持久化接口的使用  

15.1     概述

ServerSuperIO 3.2版本以前,设备数据仅支持Xml序列化的方式,如果以其他方式存储数据,那么只能把持久化操作写在设备驱动中,本质上失去了模块化的灵活性。3.2 版本以后增加了数据持久化接口,方便支持多种形式存储设备的参数数据和实时数据,3.2版本里现在仅支持Xml序列化的方式,后期会支持MongoDB、influxdb和实时数据库(类似PI)等

15.2     定义IDataPersistence数据持久化接口

1.接口定义

凡是涉及到不同数据存储方式的都可以继承IDataPersistence接口,具体代码定义发下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public interface IDataPersistence
    {
        /// <summary>
        /// 连接数据源
        /// </summary>
        void Connect();
 
        /// <summary>
        /// 选择数据对象
        /// </summary>
        /// <param name="devid"></param>
        /// <param name="objType"></param>
        /// <returns></returns>
        object Select(string devid, Type objType);
 
        /// <summary>
        /// 插入数据对象
        /// </summary>
        /// <param name="devid"></param>
        /// <param name="obj"></param>
        void Insert(string devid, object obj);
 
        /// <summary>
        /// 更新数据对象
        /// </summary>
        /// <param name="devid"></param>
        /// <param name="obj"></param>
        void Update(string devid, object obj);
 
        /// <summary>
        /// 删除数据对象
        /// </summary>
        /// <param name="devid"></param>
        /// <param name="obj"></param>
        void Delete(string devid,object obj);
  
        /// <summary>
        /// 判断是否存在
        /// </summary>
        /// <param name="devid"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        bool Exist(string devid,object obj);
}

 2.接口实现形式

   如果以MongoDB、influxdb和实时数据库,那么都可以继承IDataPersistence接口,下面以Xml存储数据为例,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class XmlPersistence:IXmlPersistence
    {
        public void Connect()
        {}
 
        public object Select(string devid, Type objType)
        {
            string path = GetSavePath(devid,objType);
            return SerializeUtil.XmlDeserailize(path, objType);
        }
 
        public void Insert(string devid, object obj)
        {
            string path = GetSavePath(devid,obj.GetType());
            SerializeUtil.XmlSerialize(path, obj);
        }
 
        public void Update(string devid, object obj)
        {
            this.Insert(devid, obj);
        }
 
        public void Delete(string devid,object obj)
        {
            string path = GetSavePath(devid,obj.GetType());
            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }
        }
 
        public bool Exist(string devid, object obj)
        {
            string path = GetSavePath(devid, obj.GetType());
            return System.IO.File.Exists(path);
        }
        ......
    }

15.3     使用IDataPersistence数据持久化接口

ServerSuperIO框架二次开发的设备驱动涉及到两类数据:设备参数和实时数据。这两类数据都对应着基类:DeviceParameter和DeviceDynamic。每个设备驱动可能对应着不同的设备参数(系数等)和实时数据(温度、湿度、流量等),因为涉及到不同的硬件设备和传感器。可以分别继承DeviceParameter和DeviceDynamic两个基类,这两个基类都具有InitDataPersistence(IDataPersistence dataPersistence)接口,实现不同的数据持久化存储接口,并进行Save、Load和Delete操作。

具体定义方法,如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class DeviceDyn:DeviceDynamic
{
        public DeviceDyn() : base()
        {
             this.InitDataPersistence(new XmlPersistence());
        }
 
        public override string GetAlertState()
        {
            throw new NotImplementedException("无报警信息");
        }
 
        public float Flow{set;get;}
}

具体使用方法,如下代码:

1
2
3
4
DeviceDyn dyn=new DeviceDyn();
 dyn.Save();  //保存
 dyn.Load();  //加载
 dyn.Delete();//删除

注:this.InitDataPersistence()不进行此操作,默认使用XmlPersistence进行数据持久化。


1.[连载]《C#通讯(串口和网络)框架的设计与实现》

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

物联网框架ServerSuperIO的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。附小文:招.NET开发,结果他转JAVA了,一切都是为了生活

    参考文章: 1.SuperIO通讯框架介绍,含通信本质 2.C#跨平台物联网通讯框架ServerSuperIO(SSIO) 一.感慨 上大学的时候,没有学过C#,花了5块钱在地坛书市买了一本教程,也就 ...

  2. 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍  <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制 一.综述 SuperIO(SIO)定位 ...

  3. 《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  4. 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  5. 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  6. 《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  7. 《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  8. 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  9. 《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  10. 《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

随机推荐

  1. Python常用的数据类型转换

    在实际开发中.经常要根据需求来转变一些变量的类型. 需要用到以下函数:

  2. 表单取消历史保存之autocomplete的用法

    表单取消历史保存之autocomplete的用法 应用场景 浏览器开启了表单自动填充设置后,有些表单中的input元素在添加时会以下拉的形式显示以前填写过的表单,有时候可能会影响用户的使用.比如:da ...

  3. 4.12Python数据处理篇之Matplotlib系列(十二)---绘图风格的介绍

    目录 目录 前言 (一)不同风格 1.说明: 2.使用: 3.代码使用: (二)例子演示 1.dark_background 2.bmh 3.fivethirtyeight 4.ggplot 5.gr ...

  4. Docker: dockerfile常用关键字

    Dockerfile指令 Dockfile执行和shell命令一行,一行一行执行- 写Dockerfile注意点: 1.           尽量少RUN 2.           多个命令拼接在一起 ...

  5. Java面试知识点之线程篇(三)

    前言:这里继续对java线程相关知识点进行总结,不能间断. 1.yield()方法 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执 ...

  6. centos7+nginx负载均衡Tomcat服务

    接着上一篇:www.cnblogs.com/lkun/p/8252815.html 我们在上一篇在一台centos7服务器上部署了两个nginx,接下来我们使用一个nginx实现tomcat的负载均衡 ...

  7. centos7下安装docker(17.4docker监控----prometheus)

    Prometheus是一个非常优秀的监控工具.准确的说,应该是监控方案.Prometheus提供了监控数据搜集,存储,处理,可视化和告警一套完整的解决方案 Prometheus架构如盗图: 官网上的原 ...

  8. day04 if判断、while条件循环、for迭代器循环部分使用举例

    一:if判断 1.成绩>=90,那么:优秀         如果成绩>=80且<90,那么:良好         如果成绩>=70且<80,那么:普通         其 ...

  9. 一、Oracle 安装

    一.oracle的安装和链接1.oracle数据库的后台服务: a.Oracle11ghomeTNSListener:数据库服务器的监听程序,负责监听客户端的链接请求 b.OracleServiceO ...

  10. ftp环境搭建并创建虚拟用户

    1. 首先安装ftp yum install -y vsftpd 2. 修改配置文件   cd /etc/vsftpd /etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件 / ...