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

正文內(nèi)容

基于cortex-a8遠(yuǎn)程實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)-資料下載頁(yè)

2025-06-18 14:11本頁(yè)面
  

【正文】 括5個(gè)組件接口函數(shù),這些組件接口函數(shù)是各個(gè)組件提供給外部使用的接口。int input_init(input_parameter*param)這個(gè)函數(shù)是輸入組件的初始化函數(shù),它的主要工作是初始化相關(guān)參數(shù),為之分配內(nèi)存空間,并打開(kāi)視頻設(shè)備。初始化函數(shù)工作流程圖如圖12所示。為視頻設(shè)備數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存空間解析參數(shù)把單一的參數(shù)字符串轉(zhuǎn)換為一個(gè)字符串?dāng)?shù)組打開(kāi)視頻設(shè)備并且初始化數(shù)據(jù)結(jié)構(gòu)初始化互斥鎖變量 圖12初始化函數(shù)工作流程圖int input_run(void)使用pthread_create函數(shù)創(chuàng)建工作線程。并使用pthread_detach函數(shù)將該線程設(shè)置為分離狀態(tài)。在input_uvc組件 中,該線程負(fù)責(zé)抓取攝像頭采集的一幀圖像并進(jìn)行格式轉(zhuǎn)換,采用的是V4L2視頻設(shè)備開(kāi)發(fā)框架。int input_stop(void)該函數(shù)通過(guò)調(diào)用pthread_CANcel(pthread_t tid)函數(shù)實(shí)現(xiàn)主線程取消cain_thread線程(抓取數(shù)據(jù)幀的工作線程),這兩個(gè)線程在同一個(gè)進(jìn)程內(nèi),共享該進(jìn)程的地址空間。主線程通過(guò)內(nèi)核發(fā)送信號(hào)以取消工作線程。Tid是要取消線程的線程ID。int input_cmd(int in_cmd_type cmd,int value)該函數(shù)的主要功能是對(duì)網(wǎng)絡(luò)攝像頭鏡頭的控制,例如對(duì)色彩、飽和度、對(duì)焦等功能的控制。In_cmd_type結(jié)構(gòu)體定義了對(duì)輸入組件進(jìn)行控制的命令類型,把對(duì)鏡頭的控制命令類型和參數(shù)值傳入此函數(shù)。函數(shù)內(nèi)進(jìn)行匹配,以完成對(duì)鏡頭的控制操作。ouput_LCD輸出組件意圖將攝像頭獲取的圖像數(shù)據(jù)轉(zhuǎn)發(fā)到本地LCD上顯示,主要思路是,在MJPGstreamer中輸入組件input_uvc已經(jīng)將原始的圖像數(shù)據(jù)從內(nèi)核空間圖像BUFFER映射至了用戶空間,而LCD是幀緩沖設(shè)備,要想在LCD上顯示實(shí)時(shí)獲取的視頻,需將映射后的全局BUFFER和內(nèi)核為L(zhǎng)CD分配的BUFFER聯(lián)系至一起,在經(jīng)過(guò)大小裁剪后,LCD上能顯示實(shí)時(shí)的監(jiān)控視頻,根據(jù)MJPGstreamer原有的架構(gòu),編寫(xiě)了ouput_LCD輸出組件。Int init_lcd(){ int framebuffer_fd。 /**/ framebuffer_fd =open(“/dev/fb1”,O_RDWR)。 /**/ ioctl(framebuffer_fd,FBIOGET_FSCREENINFO,amp。finfo) /**/ ioctl(framebuffer_fd,FBIOGET_VSCREENINFO,amp。vinfo)) /**/ =2。 =41。 =2。 =2。 =2。 =10。 ioctl(framebuffer_fd,FBIOPUT_VSCREENINFO,amp。vinfo)) /**/ framebuffer_ptr =(char *)mmap( NULL,screensize, PROT_READ|PROT_WRITE, MAP_SHARED, }/* read buffer */// frame_size = pglobalsize。//一行一行的拷貝,總共是272行,每一行拷貝的大小為480個(gè)像素點(diǎn)。For(i=0。i272。i++)memcpy(framebuffer_ptr +320*2*I , (char *)(frame) + 640*2*I, 320*2)/*此處獲取的frame為jpeg格式*/frame_size = pglobalsize。memcpy(frame, pglobalbuf, frame_size)。pthread_mutex_unlock( amp。pglobaldb )。char *bmpfilename。bmpfilename = (char *) malloc(1024*768*2 + 54)。 //bmp格式的圖片bufLoadJpegFile(frame, bmpfilename) 。 //將gpeg轉(zhuǎn)換成bmpdraw_bmp(bmpfilename,(unsigned short *) framebuffer_ptr)。 //此函數(shù)中將bmp轉(zhuǎn)換成RGB/*此處添加顯示LCD的代碼*/pthread_cleanup_pop(1)。int output_init(output_parameter *param) {init_lcd()。 /*初始化lcd*//* convert the single parameterstring to an array of strings */argv[0] = OUTPUT_PLUGIN_NAME。c = getopt_long_only(argc, argv, “”, long_options, amp。option_index)。/* no more options to parse */if (c == 1) break。/* unrecognized option */if (c == ‘?’){ help()。 return 1。}switch (option_index) { /* h, help */ case 0: case 1: DBG(“case 0,1\n”)。 help()。 break。 /* d, delay */ case 2: case 3: DBG(“case 4,5\n”)。 delay = atoi(optarg)。 break。} } pglobal = paramglobal。 //獲取到全局結(jié)構(gòu)體 OPRINT(“delay after save..: %d\n”, delay)。 return 0。}Input Value.: Return Value: always 0int output_stop(int id) { DBG(“will cancel worker thread\n”)。 pthread_cancel(lcd_worker)。 return 0。}Description.: calling this function creates and starts the worker threadInput Value.: Return Value: always 0int output_run(int id) { DBG(“l(fā)aunching worker thread\n”)。 pthread_create(amp。lcd_worker, 0, lcd_worker_thread, NULL)。 pthread_detach(lcd_worker)。 return 0。}4主程序的設(shè)計(jì) 總體要求在各個(gè)子模塊程序都完成的情況下,主程序主要是在服務(wù)板上電時(shí),自動(dòng)調(diào)用應(yīng)用程序,以及響應(yīng)客戶端要求。程序清單如下: 主程序include “”include “”static struct fb_var_screeninfo vinfo。static struct fb_fix_screeninfo finfo。static struct fb_fillrect rect。static struct fb_copyarea area。extern unsigned long screensize。 extern char *framebuffer_ptr。unsigned int bpp =16。unsigned int xsize =unsigned int ysize =272。int init_lcd(){ int framebuffer_fd。 /**/ framebuffer_fd =open(“/dev/fb0”,O_RDWR)。 /**/ ioctl(framebuffer_fd,FBIOGET_FSCREENINFO,amp。finfo) /**/ ioctl(framebuffer_fd,FBIOGET_VSCREENINFO,amp。vinfo)) screensize =( **)。 printf(“screensize =%ld\n”,screensize)。 /**/ =20。 =30。 =12。 =38。 =15。 =3。 ioctl(framebuffer_fd,FBIOPUT_VSCREENINFO,amp。vinfo) {/**/ framebuffer_ptr =(char *)mmap( NULL,screensize, PROT_READ|PROT_WRITE, MAP_SHARED, framebuffer_fd, 0)。 memset(framebuffer_ptr,0,screensize)。void Display_character(unsigned int x,unsigned int y,unsigned int len,unsigned char *string){ int k, xx。 unsigned char qh,wh。 const unsigned char *mould。 unsigned int length =len。 for(k=0,xx=x。klength1。k++) { if(string[k]amp。0x80) //中文字符 { qh =string[k]0xa0。 //區(qū)號(hào) wh =string[k+1]0xa0。 //位號(hào) mould =amp。__CHS[((qh1)*94+wh1)*32]。 Draw_Text16(4+xx,y,0xff0000,mould)。 xx+=16。 k++。 } else { mould =amp。__ASCII[string[k]*16]。 Draw_ASCII(4+xx,y,0xff0000,mould)。 xx+=8。 } }}經(jīng)過(guò)運(yùn)行主程序,在網(wǎng)頁(yè)端發(fā)出打開(kāi)視頻指令時(shí),實(shí)際效果圖如圖13所示。圖13 實(shí)際效果圖參考文獻(xiàn)[1].[M].人民郵電出版社,[2].[M].科學(xué)出版社,.[3].[M].電子工業(yè)出版社,.[4].[J].計(jì)算機(jī)工程,.[5] Linux嵌入式系統(tǒng)開(kāi)發(fā).[M].電子工業(yè)出版社,.[6].[M].機(jī)械工業(yè)出版社,.[7].[M].北京交通大學(xué)出版社,.[8].[J].鄂州大學(xué)學(xué)報(bào),.[9]王慶有. 圖像傳感器應(yīng)用技術(shù)[M]. 電子工業(yè)出版社,.[10].[M].北京理工大學(xué)出版社,.[11]Alihanka J,Vaahtoranta K. A new method for longterm monitoring of the ballistocar diogram,heart rate,and respiration[J].AMJ Physiol 1981,240(5): 384392.[12]Claudia Salzberg Rodiguez Gordon Fischer Steven linux kernel primer[M]. Machinery Industry Press,.致 謝歷時(shí)將近兩個(gè)月的時(shí)間,此次畢業(yè)論文終于完成,謹(jǐn)向悉心指導(dǎo)我的老師、無(wú)私幫助我的同學(xué)、不斷鼓勵(lì)我的朋友和家人,表達(dá)我最誠(chéng)摯的謝意。從論文的選題、思考、撰寫(xiě)到修改成稿的整個(gè)過(guò)程中,潘老師親切指導(dǎo)、諄諄教誨,傾注了大量的心血和汗水,他不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)使我能順利完成撰寫(xiě)工作。他淵博的知識(shí)、豐富的實(shí)踐經(jīng)驗(yàn)和深入淺出的教學(xué)能力使我深深為之敬佩,他高度的責(zé)任心、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,忘我的工作作風(fēng)以及樂(lè)觀樸實(shí)的處世態(tài)度給予我潛移默化的熏陶,必將使我終身受益。在此,再次向我的導(dǎo)師潘海軍老師表示深深的感
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1