程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 《連載 | 物聯網框架ServerSuperIO教程》- 13.自定義視圖顯示接口開發,滿足不同的顯示需求,物聯網框架

《連載 | 物聯網框架ServerSuperIO教程》- 13.自定義視圖顯示接口開發,滿足不同的顯示需求,物聯網框架

編輯:C#入門知識

《連載 | 物聯網框架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上開發好視圖接口後,完全可以在二次開發套件下掛載和運行(二次開發套件下載)。在進行二次開時,有幾點特別需要注意:

   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     設備驅動開發及注意事項

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#通訊(串口和網絡)框架的設計與實現》

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved