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