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
如果ServerSuperIO部署在服務端,那麼完全沒有必要在SSIO視圖接口上進行視圖顯示開發,可以用WEB端來做。如果ServerSuperIO部署在PC機端或者嵌入式主機,並且帶現場顯示屏幕,那麼就需要有實時顯示的界面,以及滿足現場用戶的不同需求。針對這種情況,ServerSuperIO內部提供了視圖顯示接口,設備驅動提取完成數據後,可以把數據實時傳輸給視圖接口,可以立即顯示,也可以先緩存數據,定時進行顯示; 可以幾個設備驅動的數據顯示在一個視圖,也可以全部設備驅動的數據顯示在一個視圖。示意如下圖:
視圖抽象類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; } }
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); }
1.[連載]《C#通訊(串口和網絡)框架的設計與實現》