智能家居系统的设计与实现(三)

智能家居系统的设计与实现(三)

ID:9680895

大小:65.50 KB

页数:7页

时间:2018-05-05

智能家居系统的设计与实现(三)_第1页
智能家居系统的设计与实现(三)_第2页
智能家居系统的设计与实现(三)_第3页
智能家居系统的设计与实现(三)_第4页
智能家居系统的设计与实现(三)_第5页
资源描述:

《智能家居系统的设计与实现(三)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、智能家居系统的设计与实现(三)  图像采集模块用到的主要函数有:capInitCamera()用来初始化视频设备,并获取当前可用的视频设备数目;capSetVideoFormat()设置视频格式和分辨率。本系统使用的视频格式为RGB24,分辨率为320×240像素;capGetPicture()获取摄像头最近捕捉的一幅位图,存入指定的缓存中capCloseCamera()关闭视频设备  4.5.2视频捕捉和视频信息传送  摄像头工作流程经过了初始化摄像头和捕捉视频和关闭摄像头等流程,详细的流程如图4-25所示:SH

2、APE*MERGEFORMAT图4-25摄像头的工作流程  其中设置视频格式、捕捉图象和发送图象等步骤位于线程CaptureThreadProc中,该线程在点击智能家居系统应用程序界面上的“打开摄像头”按钮后创建,在点击“关闭摄像头”后关闭。  视频数据的分包发送在视频监控功能中是关键的一个步骤。在这个步骤里,系统将摄像头采集到的视频数据存储在一个临时的数组中,通过对这个临时数组的数据分割,完成数据的分包存储。在系统中,每个视频数据包的大小为1440字节。在系统的运行测试中,通过断点调试的方式,知道摄像头通过ca

3、pGetPicture()函数获取到的一帧图象信息的大小大概在4000字节到5000字节之间,所以连续发送四个到五个数据包即可将一幅画面的数据发送到客户端。  4.6以太网通信模块  在智能家居中,嵌入式平台充当服务器的角色,相应的PC视频监控端充当客户端的角色。服务器端与客户端之间的通信基于TCP/IP协议。  4.6.1TCP/IP协议  Inter上使用的一个关键的底层协议是网际协议,通常称IP协议。通过这个共同遵守的协议,可以使Inter成为可以连接不同层次的计算机网络。IP协议是TCP/IP协议的心脏,是

4、计算机网络层中最重要的协议,IP协议用来帮助数据找到通往目的计算机的路径[8]。IP层接收从网络接口层发送过来的数据包,并把该数据包发送到更高层——TCP层;相反的,IP层也将从TCP层发送过来的数据包发送到接口层——网络层的更低层。而IP数据包是不可靠的,因为IP协议并没有做任何事情来确认数据包的顺序和它的完整性。IP数据包中包含了发送数据包的计算机IP地址(源地址)和接收数据包的计算机IP地址(目标地址)。  TCP协议主要是对IP数据包中被封装好的TCP数据包进行排序和错误检查。TCP数据包包括序号与确认,根

5、据这些信息可以将未经过正确排序的数据包进行排序,损坏的包按要求进行重传。处理完以后将数据发送给更高层的应用程序。应用程序轮流将信息发给TCP层,TCP层将数据发送给IP层,最后通过设备驱动和物理介质(网线)等发送到目标计算机。如图4-26所示。应用层协议(HTTP、FTP等)传输控制协议TCP网间协议IP以太网驱动程序硬件以太网接口图4-26IP层与以太网驱动器以及TCP层、应用程序层通信  4.6.2软件实现  所有的TCP通信都发生在两个端点或两个套接字(Socket)之间[8]。每个Socket都有一个端口号

6、与一个IP地址。Socket可以被看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。  在智能家居系统的服务端,TCP编程的流程如下:  (1)TCP服务器声明一SOCKET类型的全局变量m_Socket;  (2)通过bind函数绑定本地地址;  (3)用Listen函数进行监听客户端连接  (4)当有客户端请求时,套接字采用Accept函数接受客户端请求  (5)服务端新添加一个单独的套接字与客户端进

7、行通讯。  若用流程图表示,如图4-27所示。  基于以上流程和原理,在VS2005中新添加两个类——CTCPServer_CE和CTCPCustom_CE。其中CTCPServer_CE类用于开启与关闭TCP服务,以及打开监听套接字事件的线程。CTCPCustom_CE用于打开套接字和关闭套接字,以及向客户端发送数据等。SHAPE*MERGEFORMAT图4-27TCP服务工作流程图  在初始化阶段,调用端的IP地址。namelen为IP地址的长度。  在监听网络部分,ARM服务器端建立一个监听队列来接受客户端

8、的连接请求。listen()函数可以完成这一操作。intPASCALFARlisten(SOCKETs,intbacklog);s为要操作的Socket;backlog为最大连接数,在系统中设置为8。在客户端发出连接请求时,ARM客户端调用accept()函数,从而完成完整的连接操作。在智能家居系统的软件设计中,将监听以太网通过一个线程来实现。SHAPE*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。