【正文】
OVEABLE,cb); LPVOID pvData=NULL; if(hGlobal !=NULL) { pvData=GlobalLock(hGlobal); if (pvData != NULL) { (pvData,cb); GlobalUnlock(hGlobal); CreateStreamOnHGlobal(hGlobal,TRUE,amp。hmHeight); // 取得 圖片 高度 double fX,fY; fX =(double)pDCGetDeviceCaps(HORZRES)*(double)hmWidth/ ((double)pDCGetDeviceCaps(HORZSIZE)*); fY =(double)pDCGetDeviceCaps(VERTRES)*(double)hmHeight/ ((double)pDCGetDeviceCaps(VERTSIZE)*); if(FAILED(pPicRender(*pDC,0,0,(DWORD)fX,(DWORD)fY,0, 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 22 hmHeight,hmWidth,hmHeight,NULL))) { pPicRelease(); //釋放 picture return false; //返回 false } pPicRelease(); //釋放 picture } else { return false; } return true; } 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 23 第 3 章 系統(tǒng)調(diào)試與 運(yùn)行 測試環(huán)境 測試環(huán)境包括兩個(gè)部分,系統(tǒng)的硬件環(huán)境和系統(tǒng)的軟件環(huán)境。上位機(jī)和下位機(jī)雖通過網(wǎng)線連接在同一個(gè)局域網(wǎng)內(nèi),上位機(jī)通過 WEB 瀏覽器啟動(dòng)下位機(jī)開始視頻采集,下位機(jī)將采集來的圖像進(jìn)行處理然后傳輸?shù)竭h(yuǎn)程 PC 機(jī), PC 機(jī)客戶端解碼播放獲得的監(jiān)控視頻。 自動(dòng)語法:用高亮度和不同顏色的字來顯示不同的語法成分。 拖放編輯:能夠用鼠標(biāo)選擇文本并自由拖動(dòng)到任意位置。如果選擇用其他編輯洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 24 器編輯源文件,必須將它以純文本的方式保存并規(guī)定文件的擴(kuò)展名為 .cpp。在默認(rèn)情況下,調(diào)試器處理的是由當(dāng)前項(xiàng)目創(chuàng)建的調(diào)試版目標(biāo)應(yīng)用程序。 Go:從當(dāng)前語句開始執(zhí)行程序,直至遇到一個(gè)斷點(diǎn)或程序結(jié)束。這相當(dāng)于在當(dāng)前光標(biāo)處設(shè)置了一個(gè)臨時(shí)斷點(diǎn)。如果調(diào)試工具欄沒有出現(xiàn),可在任意一個(gè)工具欄上右擊,從彈出的快捷菜單中選擇 Debug,打開調(diào)試工具欄。 Restart 命令(快捷鍵: Ctrl+Shift+F5):終止當(dāng)前的調(diào)試過程,重新開始執(zhí)行程序,并在程序的第一條語句處暫停下來。 Show Next Statement 命令:顯示當(dāng)前命令指針?biāo)赶虻脑创a行。不同的是,如果執(zhí)行的下一條語句是函數(shù)調(diào)用,則調(diào)試器直接執(zhí)行完該函數(shù),并在函數(shù)調(diào)用的下一條語句處暫時(shí)停止下來。在 Debug 工具欄第 3 區(qū)和第 4 區(qū)中提供的命令按鈕就是為了滿足用戶這方面的要求而設(shè)計(jì)的。方法是:選中某個(gè)選項(xiàng)卡中的一個(gè)空白矩形框,在左邊的 Name 域中輸洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 26 入變量或表達(dá)式,按回車鍵后相應(yīng)的值出現(xiàn)在右邊的 Value 域中。它的 3 個(gè)選項(xiàng)卡如下。 Variables 窗口中的變量是由調(diào)試器自動(dòng)輸入和調(diào)整的,而前面介紹的 Watch 窗口中的變量是由用戶手工輸入的,刪除這些變量也必須由用戶自己完成。調(diào)用棧給出了從嵌套函數(shù)調(diào)用一直到斷點(diǎn)位置的執(zhí)行路徑。網(wǎng)內(nèi)另一臺 PC主機(jī) (口地址為 )作為客戶端.主機(jī)上安裝的是 Windows操作系統(tǒng), 瀏覽器是 Windows自帶的Inter Explorer。 圖 33 系統(tǒng)測試結(jié)果圖 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 29 測試結(jié)果 綜合整個(gè)測試過程,整個(gè)系統(tǒng)運(yùn)行良好,實(shí)現(xiàn)了穩(wěn)定的視頻采集,較高的數(shù)據(jù)傳輸率,客戶端播放穩(wěn)定。 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 30 結(jié) 論 在本次的課題研究過程中,完成了 基于 ARM 的視頻監(jiān)控 系統(tǒng)的方案設(shè)計(jì),整個(gè)系統(tǒng)能夠正常、穩(wěn)定的工作,達(dá)到了預(yù)期的目標(biāo)。在視頻傳輸中采用了專門用于多媒體傳輸?shù)腞TP/RTCP 傳輸協(xié)議,保障了視頻傳輸?shù)膶?shí)時(shí)性與可靠性。經(jīng)過驗(yàn)證,該系統(tǒng)能夠穩(wěn)定的完成監(jiān)控功能,用戶能夠通過 WEB 網(wǎng)頁來控制服務(wù)器的 工作,并且通過客戶端 能夠?qū)崟r(shí)、流暢的播放采集到的視頻信息。需要改進(jìn)的目標(biāo)是能夠?qū)崿F(xiàn)多個(gè)用戶同時(shí)得到實(shí)時(shí)的視頻監(jiān)控信息。 ,沒有實(shí)現(xiàn)聲音同步傳輸。在此 ,謹(jǐn)向 姚 老師表示最誠摯的感謝 。 Hennessy J L. Computer anization and design: The hardware/software interface. San Francisco: Man Kaufmann, 1994 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)論文 35 外文資料翻譯 INTELLIGENT CONTROL Intelligence and intelligent systems can be characterized in a number of ways and along a number of dimensions. There are certain attributes of intelligent systems, mon in many definitions, which are of particular interest to the control munity. In the following, several alternative definitions and certain essential characteristics of intelligent systems are first discussed. A brief working definition of intelligent systems that captures their mon characteristics is then presented. In more detail, we start with a rather general definition of intelligent systems, we discuss levels of intelligence, and we explain the role of control in intelligent systems and outline several alternative definitions. We then discuss adaptation and learning, autonomy and the necessity for efficient putational structures in intelligent systems, to deal with plexity. We conclude with a brief working characterization of intelligent (control) systems. We start with a general characterization of intelligent systems: An intelligent system has the ability to act appropriately in an uncertain environment, where an appropriate action is that which incr。 感謝一起走過 四 年的全體同學(xué)的幫助,特別是同寢室的 于歡,在做畢業(yè)設(shè)計(jì)這一段時(shí)間我們互相幫助,互相鼓勵(lì),解決了很多問題和困難,成功的完成了這篇論文 。 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 31 洛陽理工學(xué)院畢業(yè)設(shè)計(jì)論文 32 謝 辭 時(shí)光荏苒,四年的大學(xué)生活就要結(jié)束了,我要特地感謝在這段難忘的日子中 給予我?guī)椭睦蠋?、朋友和家人。需要改進(jìn)的目標(biāo)是用戶能夠獲取最近一段 時(shí)間中任意時(shí)刻的視頻信息。 ,不能滿足一對多的通訊。通過協(xié)議棧能夠?qū)崿F(xiàn)微型的嵌入式 WEB 服務(wù)器,實(shí)現(xiàn)客戶端與服務(wù)器之間的互動(dòng)。同時(shí)該 ARM 芯片內(nèi)嵌快速網(wǎng)口節(jié)省了硬件外圍空間。客戶端能夠?qū)邮盏降脭?shù)據(jù)解碼顯示,畫面實(shí)時(shí)、清晰、流暢。 客戶端的工作過程如下:在瀏覽器的地址欄,輸入作為服務(wù)器端的嵌入式 Linux平臺的 IP地址,通過局域網(wǎng)網(wǎng)絡(luò)訪問嵌入式平臺中制作的主頁(: //),顯示出監(jiān)控畫面如圖 32。 在 VC++環(huán)境中進(jìn)行程序調(diào)試,調(diào)試圖如下所示:洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 27 圖 31視頻接收程序調(diào)試圖 圖 32 視頻顯示程序調(diào)試圖 系統(tǒng)測試 在實(shí)驗(yàn)室局域網(wǎng)內(nèi), 在客戶端對系統(tǒng)功能進(jìn)行了測試。 Memory(內(nèi)存)窗口:用于觀察指定內(nèi)存地址的內(nèi)存單元內(nèi)容。 ( 2) Locals 選項(xiàng)卡:用于顯示當(dāng)前函數(shù)中局部變量的值。單擊這個(gè) “ +”號,可展開顯示數(shù)組的數(shù)組元素或結(jié)構(gòu)變量的成員。這 6個(gè)調(diào)試窗口的作用分別如下 : Watch(觀察)窗口 :此窗口用于 觀察指定變量或表達(dá)式的值。 Run to Cursor 命令(快捷鍵: Ctrl+F10):使程序運(yùn)行到當(dāng)前光標(biāo)所在處暫停下來。如果執(zhí)行的下一條語句是函數(shù)調(diào)用,則進(jìn)入函數(shù)單步執(zhí)行狀態(tài),即下一步執(zhí)行的是函數(shù)的第一條語句。 Break Execution 命令:暫停程序的運(yùn)行進(jìn)入調(diào)試狀態(tài),多在程序進(jìn)入死循環(huán)時(shí)使用。其中,第 1 區(qū)和第 2 區(qū)中包含的是一些最常用的調(diào)試命令。 當(dāng)被調(diào)試的程序停在某個(gè)斷點(diǎn)上時(shí),文本編輯窗口左邊框的對應(yīng)位置上會出現(xiàn)一個(gè)指示停止位置的黃色箭頭此時(shí), VC++系統(tǒng)的版面布置也會發(fā)生變化。 Step Into:單步執(zhí)行程序中的每條語句,并在遇到函數(shù)調(diào)用時(shí)進(jìn)入函數(shù)體內(nèi)單步執(zhí)行。所謂斷點(diǎn)是在源程序的某個(gè)代碼行前加的一個(gè)標(biāo)記,設(shè)置斷點(diǎn)的目的是告訴調(diào)試器運(yùn)行到這行代碼時(shí)暫時(shí)停止下來,以使程序員能夠觀察程序中的變量、表達(dá)式、調(diào)試輸出信息以及內(nèi)存、寄存器和堆棧的值,進(jìn)而了解程序的運(yùn)行情況,并決定下一步如何跟蹤 程序的運(yùn)行。 ++調(diào)試器 調(diào)試器是 VC++6 系統(tǒng)中最出色的組件之一,它幾乎可以幫助找到程序開發(fā)中可能產(chǎn)生的 所有錯(cuò)誤,正確熟練地使用調(diào)試器,是每一個(gè)程序開發(fā)人員必須掌握的方法。 當(dāng)打開一個(gè)源代碼文件時(shí),可以利用編輯器對其進(jìn)行編輯。 參數(shù)幫助:在編輯時(shí)用到預(yù)定義的 Windows 函數(shù)時(shí),可以自動(dòng)顯示函數(shù)參數(shù)。這個(gè)編輯器有點(diǎn)像字處理器,但是沒有字處理器具備的復(fù)雜的排版、文本格式等功能,它注重的是如何幫助程序員快速高效地編制程序。系統(tǒng)的軟件環(huán)境主要由 PC 上運(yùn)行的操作系統(tǒng)和 Linux 系統(tǒng)構(gòu)成。pPic))) // OleLoadPicture 從流中加載圖像并創(chuàng)建一個(gè)可用來顯示圖像的新 pic對象 { OLE_XSIZE_HIMETRIC hmWidth: //圖片的真實(shí)寬度 OLE_YSIZE_HIMETRIC hmHeight; //圖片的真實(shí)高度 pPicget_Width(amp。 (strPath,fstatus)amp。程序員要做的只是向 IPicture中裝載圖片數(shù)據(jù) ,然后調(diào)用其 Render函數(shù)進(jìn)行顯示 ,函數(shù)OleLoadPicture是從包含有圖像數(shù)據(jù)的流中裝載圖像。圖像對象為位圖、圖標(biāo)和圖元提供了一個(gè)語言無關(guān)的抽象 ,與標(biāo)準(zhǔn)的字體對象一樣 ,系統(tǒng)提供了對圖像對象的標(biāo)準(zhǔn)實(shí)現(xiàn)。因此,本文結(jié)合 VC++提供的 IPicture實(shí)現(xiàn) JPEG、 GIF圖像的顯示,為服務(wù)器端顯示 JPEG圖像提供基礎(chǔ) 。 采用這樣的一種重組方法,當(dāng) RTP 數(shù)據(jù)在傳輸中發(fā)生亂序時(shí),可以在一定范 圍內(nèi)恢復(fù) RTP 數(shù)據(jù)包的原有順序,降低數(shù)據(jù)包丟失與亂序?qū)?碼器的影響。 在拷貝過程中如果發(fā)現(xiàn)了數(shù)據(jù)包丟失,比如序號 或時(shí)間戳不連續(xù),分兩種情況處理: 第一種情況,缺失的數(shù)據(jù)包是單獨(dú)的一個(gè) VOP。 重組程序以 5 個(gè) VOP 為一個(gè)單位從 RTP 數(shù)據(jù)包還原數(shù)據(jù)。 為了方便對數(shù)據(jù)進(jìn)行重組,在數(shù)據(jù)包接收緩沖區(qū)之外又設(shè)立了一個(gè)數(shù)據(jù)重組緩沖區(qū),數(shù)據(jù)包的重組過程就在這個(gè)緩沖區(qū)中進(jìn)行。 (3) 通過 recvfrom()接受 RTP 數(shù)據(jù)包。 Socket還有兩個(gè)重要的屬性,即所用協(xié)議族 (選用 TPC/IP 協(xié)議 )和協(xié)議狀態(tài) (設(shè)定使用的協(xié)議是 TCP 還是 UDP),對應(yīng)的設(shè)置在 Socket 類的建立是給以初始化。這樣,服務(wù)器程序就可洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文) 17 以用 SendData 方法發(fā)送數(shù)據(jù)了。 上位機(jī)服務(wù)器網(wǎng)絡(luò)連接和數(shù)據(jù)接收的實(shí)現(xiàn) 服務(wù)器程序必須設(shè)置好 sin. port 屬性,作為偵聽端口,該值為一個(gè)整數(shù) (只要是一個(gè)其它 TCP/IP 應(yīng)用程序沒有使用過的值即可 )。而不涉及其他諸如視頻數(shù)據(jù)的發(fā)送,介于發(fā)送的數(shù)據(jù)