亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[連載]《C#通訊(串口和網絡)框架的設計與實現》-11.調試器的設計

2019-11-14 13:40:26
字體:
來源:轉載
供稿:網友

目       錄

第十一章     調試器設計... 2

11.1         調試接口... 2

11.2         界面方式調試... 3

11.3         命令行方式調試... 5

11.4         小結... 6

 

第十一章      調試器設計

    SuperIO 框架平臺設計、開發完畢后,想把代碼編譯成程序集(DLL),二次開發都通過引用DLL實現接口、繼承類庫來實現驅動和插件的開發,SuperIO框架的代碼不會輕易去改變。這是框架設計最終要達到的效果,但是在二次開發過程中還是很不方便,主要涉及到兩方面的問題:1.開發好驅動后,如何驗證驅動的最終效果?例如:原始數據的解析、數據的處理流程和功能的實現等等,所以要在Debug模式下能夠調試驅動的源代碼,而不是調試SuperIO本身的代碼。不可能把開發好驅動反復掛載到配置文件中,反復啟動軟件來驗證驅動開發的效果,那將是耗時耗力的一件事。2.在Debug模式下,也就是在調試過程中,SuperIO框架是要有選擇性的與配置文件信息進行交互,盡管只是調試驅動模塊的源代碼,但是整個框架平臺是處于調試模式,例如:在調試模式下,不加載配制文件中驅動;在調試模式下,不把設備驅動的信息寫到配制文件中等等。

     基于現實應用情況,在框架平臺中增加了調試器的功能。這塊代碼的實現并不復雜,但是在框架平臺的體系中是必要的一部分。就像人缺少了一部分后,總顯得不那么完美。

11.1     調試接口

   IDebugDevice接口定義了4個調試接口函數,主要用于對設備驅動、界面視圖、數據導出和服務組件進行源代碼調試。接口定義如下圖:

 

11.2     界面方式調試

    二次開發者可以繼承SuperIO.UI.MainForm窗體類來創建自己的宿主程序,可以在此基礎上進行擴展。SuperIO.UI.MainForm類本身繼承了IDebugDevice接口,并實現了每個調試接口。實現調試接口,本質上是對控制器(SuperIO.DeviceController)的操作,接口實現代碼如下:

/// <summary>/// 調試設備,傳入IRunSCLDevice接口/// </summary>/// <param name="dev"></param>public void DebugDevice(IRunDevice dev){       this._DeviceController.AddDevice(dev);}/// <summary>/// 調試視圖窗體,該窗體必須繼承SuperIO.Show.IRTDataShow接口/// </summary>/// <param name="rtdataform"></param>public void DebugGraphiCSShow(SuperIO.Show.IGraphicsShow show){       if (show is System.Windows.Forms.Form)       {              System.Windows.Forms.Form from = show as System.Windows.Forms.Form;              from.Mdiparent = this;              from.Show();              this._DeviceController.AddGraphicsShow(show);       }       else       {              MessageBox.Show("實現IGraphicsShow的同時,實例必須還得是Form類型");       }}/// <summary>/// 調試導出數據接口,該類接口必須繼承SuperIO.MiddleData.IExportData/// </summary>/// <param name="export"></param>public void DebugExportData(IExportData export){       this._DeviceController.AddExportData(new List<IExportData>(new IExportData[] { export }));}/// <summary>////// </summary>/// <param name="appService"></param>public void DebugAppService(IAppService appService){       if (appService.ServiceType == ServiceType.Show)       {              BarButtonItem bt = new BarButtonItem(this.barManager1, appService.ThisName);              Font font = new Font("Tahoma", 12);              bt.ItemAppearance.SetFont(font);              bt.Tag = appService.ThisKey;              bt.ItemClick += new ItemClickEventHandler(ServiceItem_ItemClick);              barServices.AddItem(bt);       }       _DeviceController.AddAppService(new List<IAppService>(new IAppService[]{appService}));}

    有界面方式的調試需要與配置文件進行交互,所以需要設置當前是否處于調試模式,可以通過SuperIO.Device.DebugDevice靜態類的IsDebug屬性進行標識。

    建議使用這種方式對二次開發的組件進行調試。

11.3     命令行方式調試

   也可以通過命令行的方式對二次開發的組件進行調試,實際上是SuperIO.Device.DebugDevice靜態類用單例的模式創建了SuperIO.UI.MainForm窗體實例,并返回了IDebugDevice接口實例。簡單的驅動和插件調試工作可以采用這種調試模式,快捷高效。代碼定義如下:

namespace SuperIO.Device{    public class DebugDevice    {        PRivate static object _LockObj = new object();        private static SuperIO.Device.IDebugDevice _DebugInstance = null;        /// <summary>        /// 獲得調試設備實例        /// </summary>        /// <returns></returns>        public static SuperIO.Device.IDebugDevice GetDebugInstance()        {            if (_DebugInstance == null)            {                lock (_LockObj)                {                    if (_DebugInstance == null)                    {                        _DebugInstance = (new SuperIO.UI.MainForm()) as SuperIO.Device.IDebugDevice;                    }                }            }            return _DebugInstance;        }        private static bool _IsDebug = false;        /// <summary>        /// 是否是調試模式,如果是否不調用配制文件的信息        /// </summary>        public static bool IsDebug        {            get { return _IsDebug; }            set { _IsDebug = value; }        }    }}

   使用這種調試模式,不需要通過SuperIO.Device.DebugDevice. IsDebug屬性設置為調試模式。

11.4     小結

    任何組件的設計可能并不復雜,但是給工作帶來很大方便。調試器更多的是一個概念,并沒有太多的實際代碼,但是在二次開發過程中確實方便了很多。

    下一章介紹《第12章 二次開發及應用》。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线视频免费看| 色老头一区二区三区| 国产成人精品一区二区在线| 久久精品国产综合| 国产丝袜精品第一页| 91精品久久久久久久久久| 中文字幕久热精品在线视频| 九九热精品视频国产| 欧美日本在线视频中文字字幕| 日韩欧美中文第一页| 亚洲成在人线av| 神马久久久久久| 国产精品人人做人人爽| 亚洲在线观看视频| 日韩国产欧美精品一区二区三区| 日韩视频亚洲视频| 久久久久久久久网站| 9.1国产丝袜在线观看| 国产精品久久999| 亚洲成人网在线观看| 日韩美女av在线免费观看| 欧美性猛交xxxxx水多| 亚洲日韩欧美视频| 亚洲人成人99网站| 亚洲人成亚洲人成在线观看| 亚洲性日韩精品一区二区| 久久97久久97精品免视看| 亚洲欧美在线免费| 97视频在线播放| 欧美壮男野外gaytube| 69av在线播放| 久久久天堂国产精品女人| 亚洲xxxx妇黄裸体| 2019国产精品自在线拍国产不卡| 中文字幕精品网| 国产精品日日摸夜夜添夜夜av| 国产91露脸中文字幕在线| 日本高清久久天堂| 亚洲自拍偷拍在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲人成网7777777国产| 国产精品男人爽免费视频1| 日韩精品日韩在线观看| 欧美性videos高清精品| 91老司机精品视频| 国产精品青青在线观看爽香蕉| 91成人性视频| 日韩av中文在线| 亚洲日韩欧美视频| 午夜精品久久久久久久99黑人| 亚洲精品xxx| 成人情趣片在线观看免费| 97精品视频在线观看| 国产综合视频在线观看| 日韩欧美精品在线观看| 日韩高清av在线| 亚洲第一页在线| 91高清视频免费观看| 欧美日韩国产中文精品字幕自在自线| 美女精品久久久| 久久成人亚洲精品| 国产成人一区二区| 91极品视频在线| 欧美日韩国产va另类| 中文字幕日韩专区| 欧美成人精品在线观看| 国产欧美日韩91| 国产精品美女av| 国产一区二区免费| 91av中文字幕| 精品在线欧美视频| 亚洲大尺度美女在线| 亚洲第一网站免费视频| 欧美精品制服第一页| 日韩电影视频免费| 亚洲成av人影院在线观看| 日日骚久久av| 91亚洲精品久久久| 一区二区三区日韩在线| 成人观看高清在线观看免费| 亚洲天堂男人天堂女人天堂| 91精品国产成人| 精品爽片免费看久久| 韩国国内大量揄拍精品视频| 福利视频第一区| 日韩美女视频免费看| 久久这里有精品视频| 国产成人综合亚洲| 欧美午夜电影在线| 国内偷自视频区视频综合| 中文字幕精品www乱入免费视频| 国产成人jvid在线播放| 亚洲在线观看视频网站| 国内精品免费午夜毛片| 亚洲成人av资源网| 久久99久国产精品黄毛片入口| 国产在线精品自拍| 欧美视频在线观看 亚洲欧| 欧美丰满少妇xxxx| 国产精品久久久久久影视| 国产精品久久久久影院日本| 国产香蕉精品视频一区二区三区| 在线播放日韩精品| 欧美激情第一页xxx| 91黑丝高跟在线| 欧美日韩国产一区二区| 亚洲精品之草原avav久久| 国产欧美精品va在线观看| 欧美精品久久久久久久久久| 国产91在线播放| 国产精品揄拍一区二区| 国产亚洲欧美一区| 岛国av一区二区三区| 另类专区欧美制服同性| 亚洲免费视频一区二区| 日韩久久午夜影院| 欧美尺度大的性做爰视频| 亚洲国产成人爱av在线播放| 久久激情五月丁香伊人| 国产精品第一区| 亚洲欧美三级伦理| 亚洲免费一级电影| 亚洲日本成人女熟在线观看| 中文字幕一区二区三区电影| 日韩精品极品在线观看| 成人免费高清完整版在线观看| 欧美在线视频一区| 午夜伦理精品一区| 在线视频欧美日韩精品| 中文字幕一区二区三区电影| 不卡伊人av在线播放| 国内揄拍国内精品少妇国语| 国产成人在线亚洲欧美| 亚洲国产精品人人爽夜夜爽| 亚洲wwwav| 91精品国产亚洲| 国产性色av一区二区| 亚洲一区二区久久久久久| 成人在线激情视频| 国产午夜精品麻豆| 欧美在线观看网站| 福利视频导航一区| 中国人与牲禽动交精品| 亚洲欧美日韩在线高清直播| 国产精品成人一区二区三区吃奶| 夜夜嗨av色综合久久久综合网| 国内免费久久久久久久久久久| 国产成人精品久久二区二区91| 国产精品丝袜白浆摸在线| 91精品久久久久久久久久久久久久| 久久99视频精品| 亚洲午夜av电影| 日韩欧美国产网站| 国产一区视频在线| 日本精品免费一区二区三区| 亚洲女人天堂成人av在线| 中文字幕一区二区三区电影| 日本中文字幕久久看| 国产精品美女久久久久av超清| 国产精品青草久久久久福利99| 欧美日韩第一视频| 亚洲男人天堂古典| 国产人妖伪娘一区91| 国产视频精品自拍|