freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

智能家居安防系統(tǒng)的研究與設(shè)計畢業(yè)論文(參考版)

2025-06-27 17:55本頁面
  

【正文】 。 測試內(nèi)容(1)內(nèi)核移植在前面把內(nèi)核成功移植到嵌入式設(shè)備中后,在啟動嵌入式設(shè)備的同時就會在超級終端中看到內(nèi)核的啟動信息,并可以通過這些啟動信息調(diào)試系統(tǒng)。嵌入式平臺和計算機構(gòu)成一個局域網(wǎng),通過超級終端或者Linux下終端觀察系統(tǒng)運行情況。 PC上訪問服務(wù)器 第六章 系統(tǒng)功能測試第一節(jié) 測試環(huán)境及內(nèi)容測試使用基于Intel Xscale芯片的嵌入式實驗平臺和一臺普通的計算機。在視頻監(jiān)控演示中,通過實現(xiàn)一個普通的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)來讓用戶對系統(tǒng)有一個直觀的印象和感受。使用Macromedia Dreamweaver軟件在PC上設(shè)計網(wǎng)站結(jié)構(gòu),網(wǎng)站包括三大主要內(nèi)容:系統(tǒng)介紹、視頻監(jiān)控演示、系統(tǒng)總結(jié)。最后讓用戶可以實現(xiàn)像訪問普通網(wǎng)絡(luò)設(shè)備一樣訪問嵌入式中的資源。第三節(jié) 建立網(wǎng)站構(gòu)架好一個嵌入式視頻服務(wù)器后,還不能直接使用服務(wù)器中的資源,還需要一個連接用戶和服務(wù)器的統(tǒng)一接口,這就是網(wǎng)站。 Boa視頻服務(wù)器啟動嵌入式Boa視頻服務(wù)器正常運行一段時間后就需要維護(hù)和整理,Boa和一般服務(wù)器一樣,它會自動記載所有訪問記錄和出錯日志。Boa視頻服務(wù)器在啟動后,就可以接受外地的連接申請,客戶端就可以通過網(wǎng)頁訪問嵌入式Boa視頻服務(wù)器網(wǎng)站的資源了。經(jīng)過以上步驟,基本完成了對Boa視頻服務(wù)器的配置和移植,可以在arm中正常使用。這樣還不能直接編譯,把define TIMEZONE_OFFSET(foo) footm_gmtoff修改成define TIMEZONE_OFFSET(foo) (foo)tm_gmtoff,最后執(zhí)行make命令編譯boa視頻服務(wù)器。我們采用的編譯器是armlinuxgcc。至此,我們就完成了對Boa視頻服務(wù)器的配置。則注釋掉,則必須使用AddType application/xdcgi cgi指明文檔重定向路徑Redirect /bar ://elsewhere/feh/bar為路徑加上別名Alias /doc /usr/doc非常重要,指明CGI腳本的虛擬路徑對應(yīng)的實際路徑。如果沒有以/開始,則表示從服務(wù)器的根路徑開始。如果沒有以/開始,則表示從服務(wù)器的根路徑開始。注釋掉則使用UTC時間UseLocaltime是否記錄CGI運行信息,如果沒有注釋掉,則記錄,注釋掉則不記錄VerboseCGILogs服務(wù)器名字ServerName 是否啟動虛擬主機功能,即設(shè)備可以有多個網(wǎng)絡(luò)接口,每個接口都可以擁有一個虛擬的Web服務(wù)器。在下面設(shè)置時,注意一定要建立/var/log/boa目錄AccessLog /var/log/boa/access_log是否使用本地時間。如果沒有以/開始,則表示從服務(wù)器的根路徑開始。如果不需要錯誤日志,則用/dev/null。Boa的配置文件在Boa的安裝目錄下,可以根據(jù)它進(jìn)行修改,下面介紹一下具體配置:監(jiān)聽的端口號,缺省都是80,一般無需修改Port 80 bind調(diào)用的IP地址,一般注釋掉,表明綁定到INADDR_ANY,通配于服務(wù)器的所有IP地址Listen 作為哪個用戶運行,即它擁有該用戶的權(quán)限,一般都是nobody,需要/etc/passwd中有nobody用戶User nobody作為哪個用戶組運行,即它擁有該用戶組的權(quán)限,一般都是nogroup,需要在/etc/group文件中有nogroup組Group nogroup當(dāng)服務(wù)器發(fā)生問題時發(fā)送報警的地址,目前未用,注釋掉ServerAdmin rootlocalhost錯誤日志文件。二、 配置網(wǎng)絡(luò)視頻服務(wù)器Boa網(wǎng)絡(luò)視頻服務(wù)器的配置是非常關(guān)鍵的一個步驟。嵌入式Web服務(wù)器Boa和普通Web服務(wù)器一樣,具有完成接收客戶端請求、分析請求、響應(yīng)請求、向客戶端返回請求結(jié)果等任務(wù)。與其他傳統(tǒng)的Web 服務(wù)器不同的是當(dāng)有連接請求到來時,它并不為每個連接單獨創(chuàng)建進(jìn)程,也不通過復(fù)制自身進(jìn)程來處理多鏈接,而是通過建立HTTP 請求列表來處理多路HTTP 連接請求,同時它只為CGI 程序創(chuàng)建新的進(jìn)程,這樣就在最大程度上節(jié)省了系統(tǒng)資源,這對嵌入式系統(tǒng)來說至關(guān)重要,同時它還具有自動生成目錄、自動解壓文件等功能。借助超文本標(biāo)記語言(HTML)的強大功能,可為用戶提供非常豐富、直觀的數(shù)據(jù)表現(xiàn)形式,提高系統(tǒng)的友好性,增強親和力。在嵌入式系統(tǒng)中實現(xiàn)基于TCP/IP協(xié)議棧的Embedded Web Server應(yīng)用是嵌入式系統(tǒng)智能化、網(wǎng)絡(luò)化的發(fā)展趨勢??墒牵瑢τ谟行┨囟ㄇ闆r來說,不必要也不允許使用這樣強大的服務(wù)器,比如嵌入式設(shè)備。可以在一臺普通的服務(wù)器上架設(shè)視頻服務(wù)器,在視頻服務(wù)器上架設(shè)網(wǎng)站、添加需要的文件,再通過視頻服務(wù)器管理軟件管理和維護(hù)視頻服務(wù)器,保證視頻服務(wù)器的正常、穩(wěn)定運行。視頻服務(wù)器讓我們與網(wǎng)絡(luò)更加緊密的結(jié)合在一起。本系統(tǒng)傳輸中采用的是流式套接字,其中主要的函數(shù)有創(chuàng)建套接字的socket()、指定本地地址的bind()、建立連接的connect()和accept()、監(jiān)聽連接的listen()、負(fù)責(zé)數(shù)據(jù)傳輸?shù)膕end()和recv()、負(fù)責(zé)復(fù)用的select()和關(guān)閉套接字的closesocket()。否則將連接不成功。網(wǎng)域表明一個插口是用于哪一種網(wǎng)絡(luò),類型表明網(wǎng)絡(luò)中通信所遵循的模式,有面向連接的和無連接的兩種模式。所以,Linux就可以通過Socket實現(xiàn)進(jìn)程或者網(wǎng)絡(luò)之間的通信。第二節(jié) SOCKET簡介Socket是一種網(wǎng)絡(luò)接口,可以把它看成網(wǎng)絡(luò)的表現(xiàn)形式。pthread_mutex_unlock (amp。headerframenbframe=frame++。headerframesize= ((jpegsize0)? 0: jpegsize)。headerframew=vdhdrwidth。headerframeseqtimes=ms_time ()。headerframe= (struct frame_t*) vdptframe [vdframe_cour]。temps=ms_time ()。 pthread_mutex_lock (amp。amp。return 0 。if (len0) {if (debug) printf (“v41 read error\n”)。vdpFramebuffer= (unsigned char*) realloc (vdpFramebuffer, (size_t) size)。對于攝像頭設(shè)備的讀取,需要先分配內(nèi)存空間,用來存儲從攝像頭讀取過來的視頻數(shù)據(jù),然后直接調(diào)用read系統(tǒng)調(diào)用讀取視頻數(shù)據(jù),返回值為實際讀取的視頻幀大小,也正是在視頻傳輸過程中發(fā)送的視頻數(shù)據(jù)大小。參數(shù)表為read(fd,(void*)pFramebuff,(size_t) framesizeln)。(2)直接讀取方式直接讀取視頻數(shù)據(jù)是通過read系統(tǒng)調(diào)用函數(shù)來實現(xiàn)。}vd= (vd+1) %vd。if (debug) printf (“cmcapture err \n”)。/*截取視頻幀*/if((ioctl(vdfd,VIDIOCMCAPTURE,amp。pthread_mutex_unlock (amp。headerframeformat=vdformatln。headerframeh=vdhdrheight。 headerframedeltatimes= (int) (headerframeseqtimestimecourant)。snprintf (headerframeheader, 5,”%s”.”SPCA”)。 jpegsize=convertframe(vdptframe[vdframe_cour]+sizeof(struct frame_t),vdpFramebuffer+vd[vd],vdhdrwidth,vdhdrheight,vdformatln,vdframesizeIn)。vdgrabmutex)。vdsignalquit)usleep (1000)。}while ((vdframelock [vdframe_cour]! =0) amp。vd)0){perror (‘’cvsync err\n)。vd=vdformatln。vd=vdhdrheight。mmap()成功調(diào)用后返回系統(tǒng)實際分配的起始地址。第四個參數(shù)可以是MAP_SHARED或者M(jìn)AP_PRIVATE。第二個參數(shù)為映射到調(diào)用進(jìn)程地址空間的字節(jié)數(shù),它從被映射文件開頭offset個字節(jié)開始算起。(vdvideombuf),0,sizeof(vdvideombuf)來清零緩沖區(qū)。首先,使用ioctl系統(tǒng)調(diào)用的VIDIOCSFBUF命令獲得攝像頭存儲緩沖區(qū)的幀信息,之后初始化video_mbuf,修改video_mmap中的設(shè)置,重新設(shè)置圖像信息,如幀的垂直及水平分辨率、彩色顯示格式等。mmap系統(tǒng)調(diào)用使得進(jìn)程之間通過映射同一個普通文件實現(xiàn)共享內(nèi)存。嵌入式Linux系統(tǒng)支持兩種視頻數(shù)據(jù)采集的方式:內(nèi)存映射、直接讀取視頻。vdgrabmutex)。 if (debug) printf (freeing output buffer %d\n, i)。 vdptframe[i] = NULL。 i OUTFRMNUMB。 vdcameraname = NULL。 vdvideodevice = NULL。 close (vdfd)。 vdpFramebuffer = NULL。 munmap (vdpFramebuffer, vdmmapsize)。int close_v4l (struct vdIn *vd){ int i。同樣道理,如果采用的是直接讀取,則在任務(wù)完成后關(guān)閉直接讀取,然后在關(guān)閉攝像頭設(shè)備。(5) 關(guān)閉攝像頭在Linux編程過程中,必須養(yǎng)成一個好的編程習(xí)慣,就是在開啟一個設(shè)備后一定要關(guān)閉它,這樣可以避免很多諸如內(nèi)存泄露等嚴(yán)重的問題。return 1 。然后通過ioctl函數(shù)的VIDIOCSPICT來設(shè)置,如if(ioctl(vdfd,VIDIOCSPICT,amp。}(4) 設(shè)置攝像頭參數(shù)在對攝像頭參數(shù)進(jìn)行設(shè)置的時候,應(yīng)該按照以下步驟:比如更改圖像信息,首先,先給video_picture結(jié)構(gòu)中所要修改的變量賦值,如vd=vdformaIn。(vdvideowin))==1) { printf (“Fail to get video_window! /n”)。return 1 。} 讀取video_picture中的圖像信息 if (ioctl (vdfd, VIDIOCGPICT, amp。 (vdvideocap)) ==1) {printf (“Fail to get video_capability! /n”)。其中,cmd包括VIDIOCGCAP(獲得video_capbility中有關(guān)攝像頭的信息)、VIDIOCGPICT(獲取圖像信息)、VIDIOCSPICT(改變圖像信息)、VIDIOCGMBUF(獲取攝像頭存儲緩沖區(qū)幀信息)、VIDIOCAMCAPTURE(獲取視頻圖像)、VIDIOSYNC(判斷攝像頭是否截取成功)等。}(3)獲取攝像頭參數(shù)成功打開攝像頭后,需要獲取攝像頭的一些參數(shù),利用ioctl函數(shù)控制I/O通道來實現(xiàn)。 return 1 。 return 1 。Open函數(shù)執(zhí)行結(jié)束后會返回攝像頭的文件描述符,如果返回值為1,則說明打開設(shè)備出錯。我們可以使用open函數(shù)來對設(shè)備進(jìn)行打開操作,open帶有兩個參數(shù),第一個為設(shè)備文件名稱,本實驗的攝像頭設(shè)備名稱是/dev/video0,第二個則是打開的類型。 return err。 pthread_mutex_init (amp。 vdframelock[i] = 0。 i++) { vdptframe[i] = NULL。 for (i = 0。 vdpFramebuffer = NULL。 vdbppIn = GetDepth (vdformatIn)。 vdhdrheight = height。 vdsignalquit = 1。 memset (vdcameraname, 0, sizeof (vdcameraname))。 snprintf (vdvideodevice, 12, %s, device)。 vdvideodevice = (char *) realloc (vdvideodevice, 16)。 vdcameraname = NULL。 //read by default。 if (width == 0 || height == 0) return 1。 int i。使用init_videoIn 函數(shù)。struct video_channal videochan :關(guān)于信號源的屬性。struct video_picture videopict :攝像頭采集圖像的屬性,如亮度、色調(diào)、對比度、色度、深度等。struct video_capability videocap :描述攝像頭基本信息,如設(shè)備名稱、支持的最大分辨率、信號源信息、信道數(shù)等。int fd :打開攝像頭時,open函數(shù)返回的文件描述符,其他函數(shù)使用這個描述符對攝像頭進(jìn)行操作。 int signalquit。 int hdrheight。 int bppIn。 int framesizeIn。 int f
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1