《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
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上开发好视图接口后,完全可以在二次开发套件下挂载和运行(二次开发套件下载)。在进行二次开时,有几点特别需要注意:
- ShowGraphics(IWin32Window windows)接口,windows参数是当前显示视图的父窗体,如果父窗体设置了IsMdiContainer=true,那么可以设置当前显示视图showForm.MdiParent = (Form)windows。
- UpdateDevice(string devid, object obj)实时数据更新接口,如果二次开发的视图的实例增加到当前服务实例中,那么设备驱动会通过OnDeviceObjectChanged数据改变事件通知视图的UpdateDevice接口进行数据更新。OnDeviceObjectChanged何时触发,完全由二次开发者自己把控。
- OnGraphicsShowClosed视图关闭事件接口,当前视图进行关闭时,一定要触发这个事件,ServerSuperIO会自动释放资源,并把当前视图实例从服务实例中销毁,以便下次能够正常显示。
- 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 设备驱动开发及注意事项
- 给视图实例传递数据信息,通过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 运行效果
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.自定义视图显示接口开发,满足不同的显示需求的更多相关文章
- 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载
注:ServerSuperIO二次开发套件授权码申请---截止到:2016-12-09 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架Server ...
- 《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 17.支持实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 17.集成Golden实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 16.集成OPC Server,及使用步骤。附:3.3 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
随机推荐
- MSYS2环境下编译X265
HEVC(High Efficiency Video Coding),是一种新的视频压缩标准.可以替代H.264/ AVC编码,使得保持相同质量的情况下,体积减少40%左右.目前有多种实现版本,x26 ...
- Android—万能ListView适配器
ListView是开发中最常用的控件了,但是总是会写重复的代码,浪费时间又没有意义. 最近参考一些资料,发现一个万能ListView适配器,代码量少,节省时间,总结一下分享给大家. 首先有一个自定义的 ...
- zookeeper集群的搭建以及hadoop ha的相关配置
1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...
- Linux环境变量设置
修改环境变量PATH 最近为root添加一个环境变量发现sudo su进去没有变化所以总结了一下所有设置环境变量的方法: 查看PATH:echo $PATH 直接在命令行修改,就可以使用,但是只有在当 ...
- System进程(pid=4)占用80端口的解决方案
问题 Mail服务器在安装TFS服务(含SQLServer2016)后启动不了网页服务. 排查问题 使用命令查看端口占用情况 netstat -nao | find ":80" n ...
- Johnson 全源最短路径算法
解决单源最短路径问题(Single Source Shortest Paths Problem)的算法包括: Dijkstra 单源最短路径算法:时间复杂度为 O(E + VlogV),要求权值非负: ...
- WEB 基础知识(一)
1. 系统架构 1.1 B/S系统架构 1.2 C/S系统架构 1.3 对比与区别 1.3.1 概述 C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过 ...
- Android测试网络是否连接
一.布局页面 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
- 解析大型.NET ERP系统 界面与逻辑分离
Windows Forms程序实现界面与逻辑分离的关键是数据绑定技术(Data Binding),这与微软推出的ASP.NET MVC的原理相同,分离业务代码与界面层,提高系统的可维护性. 数据绑定 ...
- 帮我做个APP,给你20万,做不做?
一.为什么要写这篇文章 前段时间,有个辞职 创业的同事(做法务的) 问我 开发一个 新闻类的APP要多少钱,产品.UI.接口.后台管理页 他们啥都没有,想全部外包. 我 并没有在外包公司做过,也没 ...