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接口,具体代码定义发下:

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存储数据为例,代码如下:

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操作。

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

public class DeviceDyn:DeviceDynamic
{
public DeviceDyn() : base()
{
this.InitDataPersistence(new XmlPersistence());
} public override string GetAlertState()
{
throw new NotImplementedException("无报警信息");
} public float Flow{set;get;}
}

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

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群

《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》- 17.支持实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。

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

  2. 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤

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

  3. 《连载 | 物联网框架ServerSuperIO教程》- 17.集成Golden实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。

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

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

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

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

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

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

    注:ServerSuperIO二次开发套件授权码申请---截止到:2016-12-09 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架Server ...

  7. 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。

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

  8. 《连载 | 物联网框架ServerSuperIO教程》- 16.集成OPC Server,及使用步骤。附:3.3 发布与版本更新说明。

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

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

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

随机推荐

  1. SDWEBImage和collectionView的组合,以及collectionView的随意间距设置

    #import "ViewController.h" #import <ImageIO/ImageIO.h> #import "UIImageView+Web ...

  2. linux下文件和目录的颜色表示

    蓝色表示目录: 绿色表示可执行文件: 红色表示压缩文件: 浅蓝色表示链接文件: 灰色表示其它文件: 红色闪烁表示链接的文件有问题了: 黄色是设备文件,包括block, char, fifo. (摘自: ...

  3. Unity3d 开发之 ulua 坑的总结

    相同的 lua 代码在安卓上能正常运行,但在 IOS 上可能不会正常运行而导致报红,崩溃等,我在使用 lua 编程时遇到的一些坑总结如下: 1. File.ReadAllText, 诸如以下代码在 i ...

  4. Nginx负载均衡策略

    目前nginx负载均衡支持的5种方式的分配 1. 轮询 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. upstream backserver { server ...

  5. Salesforce开发者学习笔记之二:Salesforce开发平台应用场景

    Salesforce作为一个全方位的CRM系统可以应用于企业中的各个不同部门以取代手工的,耗时的以及低效的业务流程,例如 基于报表的数据管理和分析 基于电子邮件的协同合作 本地的文件共享 各种手工操作 ...

  6. iOS开发——pch文件创建

    新换的公司,接手的项目里面连pch文件都没有,每次需要用到屏幕的宽高时,都是现写.今天既然碰到了,就把PCH这个玩意说一下. 1.Command+N,打开新建文件窗口:iOS->Other-&g ...

  7. C#的逆变和协变

    out: 输出(作为结果),in:输入(作为参数) 所以如果有一个泛型参数标记为out,则代表它是用来输出的,只能作为结果返回,而如果有一个泛型参数标记为in,则代表它是用来输入的,也就是它只能作为参 ...

  8. java实现——035第一个只出现一次的字符

    import java.util.Hashtable; public class T035 { public static void main(String[] args) { FirstNotRep ...

  9. mysql 常用指令

    修改表的字符集 88down voteaccepted If you want to change the table default character set and all character ...

  10. Intel X710网卡VxLAN offload 性能测试

    Intel X710网卡VxLAN offload性能测试 1.  测试环境参数: 交换机:盛科E580 服务器: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz ...