《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。...
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群:54256083?
轉載于:https://www.cnblogs.com/lsjwq/p/6370986.html
總結
以上是生活随笔為你收集整理的《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 良心安利芒种节气海报设计素材
- 下一篇: React基础(肆)———状态和循环渲染