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.服务接口的开发,以及与云端双向交互


目       录

13.自定义视图显示接口开发,满足不同的显示需求... 2

13.1        概述... 2

13.2        视图显示接口... 2

13.3        设备驱动开发及注意事项... 4

13.4        运行效果... 5

13.自定义视图显示接口开发,满足不同的显示需求

13.1     概述

如果ServerSuperIO部署在服务端,那么完全没有必要在SSIO视图接口上进行视图显示开发,可以用WEB端来做。如果ServerSuperIO部署在PC机端或者嵌入式主机,并且带现场显示屏幕,那么就需要有实时显示的界面,以及满足现场用户的不同需求。针对这种情况,ServerSuperIO内部提供了视图显示接口,设备驱动提取完成数据后,可以把数据实时传输给视图接口,可以立即显示,也可以先缓存数据,定时进行显示;  可以几个设备驱动的数据显示在一个视图,也可以全部设备驱动的数据显示在一个视图。示意如下图:

13.2     视图显示接口

视图抽象类GraphicsShow继承自IGraphicsShow接口,进行二次开发可以继承GraphicsShow抽象类。在ServerSuperIO上开发好视图接口后,完全可以在二次开发套件下挂载和运行(二次开发套件下载)。在进行二次开时,有几点特别需要注意:

  1. ShowGraphics(IWin32Window windows)接口,windows参数是当前显示视图的父窗体,如果父窗体设置了IsMdiContainer=true,那么可以设置当前显示视图showForm.MdiParent = (Form)windows。
  2. UpdateDevice(string devid, object obj)实时数据更新接口,如果二次开发的视图的实例增加到当前服务实例中,那么设备驱动会通过OnDeviceObjectChanged数据改变事件通知视图的UpdateDevice接口进行数据更新。OnDeviceObjectChanged何时触发,完全由二次开发者自己把控。
  3. OnGraphicsShowClosed视图关闭事件接口,当前视图进行关闭时,一定要触发这个事件,ServerSuperIO会自动释放资源,并把当前视图实例从服务实例中销毁,以便下次能够正常显示。
  4. MouseRightContextMenu上下文菜单显示接口,如果右键单击当前视图显示的某个设备视图时,可以调用这个上下文菜单接口,会调用设备驱动IRunDevice接口的ShowContextMenu函数,可以在这个函数中展示上下文菜单。这个功能特别有用,因为针对不同类型的设备驱动功能不一样,可以通过上下文菜单自定义该类型设备的功能特性。

GraphicsShow接口代码定义如下:

public interface IGraphicsShow : IPlugin
{
/// <summary>
/// 视图Key,要求唯一
/// </summary>
string ShowKey { get;} /// <summary>
/// 视图名称
/// </summary>
string ShowName { get; } /// <summary>
/// 显示窗体
/// </summary>
/// <param name="windows"></param>
void ShowGraphics(IWin32Window windows); /// <summary>
///
/// </summary>
void CloseGraphics(); /// <summary>
/// 更新设备
/// </summary>
/// <param name="devCode">设备code</param>
/// <param name="obj">设备对象</param>
void UpdateDevice(string devCode, object obj); /// <summary>
/// 移除设备
/// </summary>
/// <param name="devCode">设备code</param>
void RemoveDevice(string devCode); /// <summary>
/// 关闭窗体事件时发生
/// </summary>
event GraphicsShowClosedHandler GraphicsShowClosed; /// <summary>
/// 单击右键,调用上下文菜单
/// </summary>
event MouseRightContextMenuHandler MouseRightContextMenu; /// <summary> /// 是否被释放
/// </summary>
bool IsDisposed { get; }
}

13.3     设备驱动开发及注意事项

  1. 给视图实例传递数据信息,通过OnDeviceObjectChanged事件。代码如下:
List<string> list = new List<string>();
list.Add(_devicePara.DeviceCode);
list.Add(_devicePara.DeviceName);
list.Add(_deviceDyn.Dyn.Flow.ToString());
list.Add(_deviceDyn.Dyn.Signal.ToString());
OnDeviceObjectChanged(list.ToArray());

2.显示上下文菜单,视图接口的MouseRightContextMenu会调用设备驱动的ShowContextMenu接口函数。代码如下:

 public override void ShowContextMenu()
{
this._contextMenuComponent.ContextMenuStrip.Show(Cursor.Position);
}

13.4     运行效果


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教程》- 13.自定义视图显示接口开发,满足不同的显示需求的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. C#使用GET、POST请求获取结果

    C#使用GET.POST请求获取结果,这里以一个简单的用户登陆为例. 1. 使用GET请求获取结果 1.1 创建LoginHandler.aspx处理页面 protected void Page_Lo ...

  2. Angular2 Hello World 之 2.0.0-beta.14

    公司现在采用angualrjs开发一些web应用,采用的是angular1,现在angular2已经差不多了,听说最近rc6已经出来了……其实感觉好慢啊!之前也做过一些anglar2的例子,但是没有记 ...

  3. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  4. NYOJ 455

    1.应该交代清楚,参加宴会的人不知道一共有多少顶帽子.假如知道有n顶帽子的话,第一次开灯看见有n-1只,自然就知道自己是第n顶黑帽子,所以应该是这n个人在第一次关灯就打自己脸,不过这么一来就没意思了, ...

  5. 一步步开发自己的博客 .NET版(1、基本显示)

    前言 我们每个猿都有一个搭建自己独立博客的梦,我也不例外.以前想 现在想 以后也想.之所以一直迟迟没有着手,是因为难以跨出第一步.每次心里想着,等我以后技术好了再说,然后就没有然后了.以前用过word ...

  6. (实例篇)PHP实现HTTP断点续传的方法

    PHP实现HTTP断点续传的方法. <?php /** * PHP-HTTP断点续传实现 * @param string $path: 文件所在路径 * @param string $file: ...

  7. Android开发学习之路-关于Exception

    Exception在Java中是表示异常的一个类.它是Throwable的子类. 而Exception的子类RuntimeException是一个特殊的异常类,在代码中不需要对此类进行throw,而是 ...

  8. Unicode和UTF-8的关系

    Unicode和UTF-8都是表示编码,这个我一直都知道,但是这两个实际上是干什么用的,到底是怎么编码的,为什么有了Unicode还要UTF-8,它们之间有什么联系又有什么区别呢?这个问题一直困扰着我 ...

  9. Task三个列子的分享

    这次要分享的是C#Task任务的几个列子,感觉最实用的是封装的分页任务执行方法,这个方法步奏也是目前在我工作中执行多任务常用的,不知道各位也有这用的情况,那么开始吧. 1.顺序任务执行 //顺序任务执 ...

  10. 最全面的百度地图JavaScript离线版开发

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5822231.html 项目要求web版百度地图要离线开发.这里总结下自己的开发过程和经验. 大概需求是:每辆 ...