《连载 | 物联网框架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上开发好视图接口后,完全可以在二次开发套件下挂载和运行(二次开发套件下载)。在进行二次开时,有几点特别需要注意:

  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群54256083

时间: 2024-08-25 00:07:19

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

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

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

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

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 目       录 5. 轮询通讯模型开发及注意事项... 2 4.1           概述... 2 4.2           通讯机制说明... 2 4.3           设备驱动开发注意事项... 3 4.3.1    实时发送数据... 3 4.3.2    优先发送其他数据... 3 4.4           宿主程序服务实例配置注意事项... 4 4.5           轮询

《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤。附:3.5 发布与更新说明。

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

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

注:ServerSuperIO二次开发套件授权码申请---截止到:2016-12-09 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发

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

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。注:设备驱动模拟金三与普京的对话

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

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

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

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

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 一.综述 SuperIO(SIO)定位在PC终端(上位机)应用,它只有一个服务实例,配置参数是全局属性.但是,ServerSuperIO(SSIO)与SuperIO(SIO)定位不一样,SSIO定位在服务器端,不管是串口通讯模式,还是网络通讯模式,都支持多服务实例,所以每个服务实例都有自己的配置参数,全部配置参数的定义在ServerConfig.cs文件中. 如下图示意: 二.配置参数说明 1 2 3 4

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

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 目       录 9. 协议过滤器,解决一包多发.粘包.冗余数据... 2 9.1  概述... 2 9.2 实际问题... 2 9.3 5种过滤器及二次开发... 5 9.4 设备驱动开发注意事项... 6 9.5 宿主程序服务实例配置注意事项... 6 9. 协议过滤器,解决一包多发.粘包.冗余数据    9.1    概述 通讯中涉及到数据包的概念,是通讯协议中的数据组成形式.针对这块内容,说简单