如何基于嵌入式Linux設計家居監(jiān)控系統(tǒng)?
3) 清空發(fā)送/ 接收緩沖區(qū)
為了避免以前的數(shù)據(jù)的干擾,必須對緩沖區(qū)的數(shù)據(jù)進行清空之后才能把數(shù)據(jù)讀入緩沖區(qū),這樣做的目的是為了避免不必要的數(shù)據(jù)干擾。
4) 從串口讀寫數(shù)據(jù)
串口的數(shù)據(jù)讀/寫使用的是標準的讀/寫函數(shù)(read()和write())。
5)關閉串口
關閉串口為下次再使用串口提供方便。關閉串口的函數(shù)是close()函數(shù)。
2.6彩信的發(fā)送
Linux系統(tǒng)中的視頻子系統(tǒng)為Video4Linux,他為應用程序提供了一個完整、統(tǒng)一的API函數(shù),視頻應用程序只要調(diào)用這些API就能完成對視頻捕捉設備的操作。設備的節(jié)點文件在#mknod/dev/videoc810
1)打開設備
用open()函數(shù)來打開設備。
fVideo=open(“dev/video”,O_RDWR);
2)獲得設備參數(shù)
Ioctl(fVideo,VIDIOCGCAP,vcap);
3)設置圖像采集參數(shù)
Ioctl(fVideo,VIDIOCGPICT,vcap);
4)圖像采集
Ioctl(fVideo,VIDIOCMCAPTURE,mem);
5)等待采集結束,由于采集需要一段時間,所以應用程序需要有一個相應的等待期
Ioctl(fVideo,VIDIOCSYNC,mem,frame);
6)將采集的圖像數(shù)據(jù)寫入文件
Write_jpeg(buf++mb.offsets[0],mem);
7)清空內(nèi)存映射
Munmap(but,mb.size);
8)關閉設備
Close(fVideo);
得到圖像數(shù)據(jù)后,再把數(shù)據(jù)進行MMS的封裝,首先是加上MMS頭部分的數(shù)據(jù)封裝,再對SMIL部分封裝,這里主要是指定顯示MMS的相關信息,最后對每個輸入的多媒體信息進行編碼。最后通過GPRS模塊把信息發(fā)送出去。
3系統(tǒng)功能的測試結果
本文測試基于jpeg格式標準的視頻數(shù)據(jù)的采集、傳輸以及顯示。由攝像頭完成視頻數(shù)據(jù)的采集,通過由GPRS封裝后把圖像數(shù)據(jù)傳輸?shù)绞謾C。紅外感應到有人進入時,攝像頭取下的圖像照片,并再通過GPRS模塊把圖像發(fā)到用戶的手機上,從而完成了有效的監(jiān)控動作。
評論