999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用進(jìn)程通訊技術(shù)實(shí)現(xiàn)純軟件仿真調(diào)試

2010-07-13 06:01:56蔡文齋
電子設(shè)計(jì)工程 2010年2期
關(guān)鍵詞:進(jìn)程設(shè)備方法

蔡文齋

(中國(guó)電子科技集團(tuán)公司 第39研究所,陜西 西安 710065)

監(jiān)控系統(tǒng)通常由若干計(jì)算機(jī)及相關(guān)板卡構(gòu)成系統(tǒng)硬件環(huán)境,通常在Win32環(huán)境下編制相關(guān)的監(jiān)控軟件。開發(fā)全套監(jiān)控系統(tǒng)軟件通常是,開發(fā)人員等買到各種相關(guān)板卡后再逐個(gè)調(diào)試各端口,在設(shè)備都聯(lián)在一起時(shí)統(tǒng)一聯(lián)調(diào),費(fèi)時(shí)費(fèi)力,要求各設(shè)備或分機(jī)配合。為了實(shí)現(xiàn)在已知相關(guān)硬件需求和相應(yīng)軟件通訊協(xié)議,而實(shí)驗(yàn)室內(nèi)無(wú)硬件設(shè)備的情況下,開發(fā)全套監(jiān)控系統(tǒng)軟件[1],本文提出一種利用進(jìn)程通訊技術(shù)實(shí)現(xiàn)純軟件仿真調(diào)試的方法[2]。在實(shí)驗(yàn)室內(nèi)無(wú)需連接各板卡,同樣可以仿真這些硬件設(shè)備開發(fā)整個(gè)監(jiān)控軟件,等各種板卡備齊后,再添加這些板卡的設(shè)備初始化及I/O函數(shù)。這樣,整套監(jiān)控軟件在無(wú)硬件環(huán)境下可以編制完成,將節(jié)約大量聯(lián)試時(shí)間。

1 純軟件仿真設(shè)計(jì)思想

假定不考慮接入計(jì)算機(jī)的板卡接口形式和具體硬件傳感器的特性,僅從抽象的角度考慮,則可將接入的任一硬件傳感器都視為一流設(shè)備,通過(guò)相關(guān)板卡傳送給計(jì)算機(jī)1組十六進(jìn)制碼字,任一硬件讀入形式都相同。使用定長(zhǎng)的仿真硬件緩沖區(qū)代替硬件設(shè)備,這些硬件緩沖區(qū)每一字節(jié)均可編輯。從而仿真任一接入控制系統(tǒng)硬件傳感器的各種數(shù)據(jù)。

任一接入控制計(jì)算機(jī)的硬件設(shè)備與計(jì)算機(jī)通訊即是定長(zhǎng)的十六進(jìn)制字符碼字的雙向信息交流(有的設(shè)備是單向通訊)。監(jiān)控軟件與這些硬件設(shè)備信息交流即為Read與Write函數(shù)[3],任何硬件接口形式其最終抽象的讀寫參數(shù)都相同:設(shè)備號(hào)、讀寫緩沖區(qū)數(shù)據(jù)內(nèi)容、讀寫長(zhǎng)度、實(shí)際讀入或者寫出的長(zhǎng)度、回送的狀態(tài)碼字。先不考慮具體硬件傳感器的初始化及使用方法,一般相關(guān)板卡均帶有驅(qū)動(dòng)程序,在Win32環(huán)境下通常是通過(guò)驅(qū)動(dòng)程序提供的API函數(shù)訪問(wèn)硬件,雖然各硬件的訪問(wèn)形式有差異,但計(jì)算機(jī)訪問(wèn)的機(jī)制是相同的,同監(jiān)控軟件相關(guān)的部分是讀寫緩沖區(qū)及讀寫長(zhǎng)度。只要使用一種方法使監(jiān)控軟件讀寫另一設(shè)定的緩沖區(qū)內(nèi)容,即可實(shí)現(xiàn)仿真。

2 純軟件仿真方法的實(shí)現(xiàn)

無(wú)論監(jiān)控程序使用什么語(yǔ)言編寫,無(wú)論讀入時(shí)序怎樣安排,為了實(shí)現(xiàn)仿真調(diào)試,將監(jiān)控程序稍作調(diào)整,改造如下:設(shè)計(jì)若干讀入完成消息,在每個(gè)硬件傳感器讀入函數(shù)完成后,向前臺(tái)窗口發(fā)送一條用戶制定的消息,告知該設(shè)備讀入已完成;讀入完成消息處理為:對(duì)讀入緩沖區(qū)解碼,將緩沖區(qū)某位置的十六進(jìn)制碼字按照通訊協(xié)議變換為監(jiān)控程序使用的變量,以供監(jiān)控程序使用。

設(shè)監(jiān)控程序?yàn)锳進(jìn)程,仿真硬件程序?yàn)锽進(jìn)程。A進(jìn)程要接收B進(jìn)程數(shù)據(jù),并且B進(jìn)程數(shù)據(jù)變化時(shí)應(yīng)立即通知A進(jìn)程,則問(wèn)題變?yōu)椋和ㄖ?fù)制變化數(shù)據(jù)。A進(jìn)程的調(diào)試方法:假設(shè)要調(diào)試串行端口5,首先假定已編寫com口讀寫線程(注意此時(shí)無(wú)硬件,com5打不開,無(wú)法跟蹤[4]),由于每個(gè)硬件傳感器讀完成都會(huì)發(fā)一讀完后的信息。因此只要在某處發(fā)出該消息,就表明已經(jīng)讀入該硬件數(shù)據(jù)。假定使用剪切板通訊方法,在A進(jìn)程中設(shè)計(jì)一剪切板讀入用戶消息,該消息由B進(jìn)程發(fā)出。在A進(jìn)程的剪切板消息中,將剪切板的內(nèi)容復(fù)制到com5讀入緩沖區(qū)中,再發(fā)一com5讀完成消息給前臺(tái)窗口,則會(huì)誤認(rèn)為是硬件緩沖內(nèi)容變化,已讀到硬件內(nèi)容。任一接入的硬件都可用這種技術(shù)實(shí)現(xiàn)仿真。如果讀入緩沖區(qū)的每一位都可控制輸入,那么在實(shí)驗(yàn)室內(nèi)就能仿真所有實(shí)際的通訊情況,將節(jié)約大量時(shí)間在設(shè)備聯(lián)調(diào)階段。

3 硬件緩沖產(chǎn)生器設(shè)計(jì)(B進(jìn)程)

設(shè)計(jì)一可編輯的十六進(jìn)制緩沖區(qū),使用進(jìn)程通訊方法發(fā)出數(shù)據(jù)。采用Delphi 2009編寫仿真器,界面上設(shè)計(jì)StringGird組件,用于十六進(jìn)制輸入,格子列數(shù)為1 024,行數(shù)為2,設(shè)計(jì)若干按鈕用于實(shí)現(xiàn)各種進(jìn)程通訊方法。使用集合類型檢查輸入的是否為十六進(jìn)制碼字,使用Drawcell方法限制每個(gè)格子的字符數(shù) (每個(gè)格子僅能輸入0A、3E等類型的十六進(jìn)制數(shù)據(jù))[5]。該硬件仿真器的機(jī)理為使用WIN32 API內(nèi)核對(duì)象通訊技術(shù)傳遞緩沖區(qū)內(nèi)容,再用其他技術(shù)傳輸通知信息。其實(shí)現(xiàn)方法為:1)文件映像+事件通知;2)文件映像+用戶自定制消息。若使用文件映像+廣播消息方法,必須在收發(fā)進(jìn)程中注冊(cè)同樣的消息。而使用文件映像+廣播WM_WININICHANGE消息方法,無(wú)需注冊(cè)消息,SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,0);3)有名管道技術(shù)+消息通知。 將B進(jìn)程設(shè)計(jì)為有名管道客戶端,將A進(jìn)程設(shè)計(jì)為管道服務(wù)。4)CopyDATA 方法;5)全局原子方法;6)剪切板技術(shù)+用戶消息方法。

其中,CopyDATA方法為:

如果使用DELPHI或者C++BUILDER開發(fā)應(yīng)用軟件,使用CODESITE工具在讀消息中寫入調(diào)試代碼[6],可以動(dòng)態(tài)調(diào)試出任何讀入緩沖區(qū)內(nèi)容。

4 監(jiān)控應(yīng)用程序的改造(A進(jìn)程)

硬件緩沖區(qū)產(chǎn)生器用不同的進(jìn)程通訊方法產(chǎn)生一組需要的數(shù)據(jù),并使用不同的通知機(jī)制輸出通知消息,因此需相應(yīng)修改接收端,使用剪切板和全局原子方法時(shí)緩沖區(qū)長(zhǎng)度只能為256字節(jié),其他方法可輸出更長(zhǎng)的數(shù)據(jù)。如果使用廣播消息傳輸通知,A進(jìn)程也必須注冊(cè)同樣的消息。注冊(cè)廣播消息:BROADCAST_Message BROADCAST_NUM:=RegisterWindowMessage(‘BROADCAST_comm’);并且A進(jìn)程需重載WndProc函數(shù):procedure WndProc(var Message:TMessage);override;用于讀注冊(cè)的廣播消息,判斷廣播消息是哪一個(gè)。監(jiān)控程序需通過(guò)某種方法接收數(shù)據(jù)即可,所以修改的代碼很少。

5 結(jié)束語(yǔ)

使用該方法開發(fā)的綜合調(diào)試器可徹底拋開硬件環(huán)境,對(duì)應(yīng)用軟件稍作調(diào)整即可與純軟件調(diào)試器通訊。在開發(fā)應(yīng)用軟件時(shí),當(dāng)硬件板卡備齊后,只需添加相應(yīng)的讀寫部分,就能夠在試驗(yàn)室內(nèi)仿真現(xiàn)場(chǎng)通信情形,將節(jié)約大量時(shí)間。該方法已應(yīng)用于多個(gè)航天控制項(xiàng)目,并取得良好效果。

[1]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2003.

[2]Jeffrey Richter.Window高級(jí)編程指南[M].王書洪,劉光明,譯.北京:清華大學(xué)出版社,1999.

[3]Mickey Williams.Programming microsoft windows 2000 unleashed[M].前導(dǎo)工作室,譯.北京:機(jī)械工業(yè)出版社,1999.

[4]趙蘭濤,蘇彥華.DELPHI串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2004.

[5]吳天準(zhǔn).Delphi 7程序設(shè)計(jì)技巧與實(shí)例[M].北京:中國(guó)鐵道出版社,2003.

[6]譚 燕,趙 磊,李之明.Delphi高級(jí)輔助工具精解[M].北京:中國(guó)鐵道出版社,2003.

猜你喜歡
進(jìn)程設(shè)備方法
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
可能是方法不對(duì)
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
原來(lái)他們都是可穿戴設(shè)備
社會(huì)進(jìn)程中的新聞學(xué)探尋
主站蜘蛛池模板: 久久国产香蕉| 91小视频在线播放| 日韩专区第一页| 国产人前露出系列视频| 国产亚洲一区二区三区在线| 国产亚洲精久久久久久久91| 久久久黄色片| 操美女免费网站| 欧美人人干| 国产精品 欧美激情 在线播放| 亚洲第一页在线观看| 制服丝袜在线视频香蕉| 久久精品国产999大香线焦| 凹凸精品免费精品视频| 一级毛片在线播放免费| 日本久久网站| 亚洲国产日韩在线成人蜜芽| 亚洲精品动漫在线观看| 亚洲无限乱码| 日韩不卡高清视频| 97一区二区在线播放| 99re这里只有国产中文精品国产精品 | 成人免费午间影院在线观看| 蜜臀AV在线播放| 天天婬欲婬香婬色婬视频播放| 婷婷五月在线| 国产真实乱子伦精品视手机观看| 亚洲 欧美 偷自乱 图片 | 日本一区高清| 亚洲欧美综合另类图片小说区| 国产主播福利在线观看| 精久久久久无码区中文字幕| 亚洲男人在线天堂| 色婷婷天天综合在线| 国产96在线 | 欧美亚洲国产一区| 亚洲日产2021三区在线| 国产综合精品日本亚洲777| 亚洲成人网在线播放| 伊人久久综在合线亚洲91| 69精品在线观看| 亚洲第一中文字幕| 国产综合精品日本亚洲777| 亚洲爱婷婷色69堂| 国产免费一级精品视频| 欧美激情福利| 中日韩一区二区三区中文免费视频| 国产手机在线ΑⅤ片无码观看| 国产精品成人AⅤ在线一二三四 | 日韩在线1| 欧美成人日韩| 99久久精品免费观看国产| 亚洲无码日韩一区| 97人人做人人爽香蕉精品| 六月婷婷激情综合| 日本欧美视频在线观看| 波多野结衣视频网站| 欧美成人区| 亚洲欧美精品一中文字幕| 久久伊人色| 国产伦精品一区二区三区视频优播 | 中文字幕佐山爱一区二区免费| 免费一级大毛片a一观看不卡| 99久久精品国产综合婷婷| 亚洲天堂首页| 影音先锋丝袜制服| 尤物国产在线| 亚洲成人黄色网址| 国产亚洲高清视频| 久久国产精品麻豆系列| 香蕉综合在线视频91| 三区在线视频| 日韩区欧美国产区在线观看| 亚洲区第一页| 激情视频综合网| 午夜影院a级片| 欧美日韩精品一区二区视频| 欧美日韩中文国产| 国产激情无码一区二区免费| 熟女成人国产精品视频| 国产爽爽视频| 国产成人精品高清不卡在线 |