如何基于嵌入式Linux设计家居监控系统?
3) 清空发送/ 接收缓冲区
为了避免以前的数据的干扰,必须对缓冲区的数据进行清空之后才能把数据读入缓冲区,这样做的目的是为了避免不必要的数据干扰。
4) 从串口读写数据
串口的数据读/写使用的是标准的读/写函数(read()和write())。
5)关闭串口
关闭串口为下次再使用串口提供方便。关闭串口的函数是close()函数。
2.6彩信的发送
Linux系统中的视频子系统为Video4Linux,他为应用程序提供了一个完整、统一的API函数,视频应用程序只要调用这些API就能完成对视频捕捉设备的操作。设备的节点文件在#mknod/dev/videoc810
1)打开设备
用open()函数来打开设备。
fVideo=open(“dev/video”,O_RDWR);
2)获得设备参数
Ioctl(fVideo,VIDIOCGCAP,vcap);
3)设置图像采集参数
Ioctl(fVideo,VIDIOCGPICT,vcap);
4)图像采集
Ioctl(fVideo,VIDIOCMCAPTURE,mem);
5)等待采集结束,由于采集需要一段时间,所以应用程序需要有一个相应的等待期
Ioctl(fVideo,VIDIOCSYNC,mem,frame);
6)将采集的图像数据写入文件
Write_jpeg(buf++mb.offsets[0],mem);
7)清空内存映射
Munmap(but,mb.size);
8)关闭设备
Close(fVideo);
得到图像数据后,再把数据进行MMS的封装,首先是加上MMS头部分的数据封装,再对SMIL部分封装,这里主要是指定显示MMS的相关信息,最后对每个输入的多媒体信息进行编码。最后通过GPRS模块把信息发送出去。
3系统功能的测试结果
本文测试基于jpeg格式标准的视频数据的采集、传输以及显示。由摄像头完成视频数据的采集,通过由GPRS封装后把图像数据传输到手机。红外感应到有人进入时,摄像头取下的图像照片,并再通过GPRS模块把图像发到用户的手机上,从而完成了有效的监控动作。
评论