基于Qt的嵌入式监控系统

1.引言
1.1编写目的
本需求规格说明书是为了开发视频监控系统而编写,主要面向系统分析员、程序员、测试员、实施员和最终用户。
本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成后系统验收的依据。同时本说明书还是《用户手册》和《测试计划》的编写依据。
1.2项目背景
随着社会的发展信息量日益增加,政府、企业、银行、公司、学校等等一些行业如何管理职工、人员流动、学生活动以及对一些重要部门进行监控,如何灵活的、方便的管理,节省人力资源等等问题也随着出现,因此为解决这些问题我们提供一种方便快捷的系统,来满足企业等等用户的这种需求。
 ● 本软件名称为视频监控系统,可以方便解决对一些重要部门7×24小时不间断的监控,并且能节省大量的人力资源。
● 用户:自测
● 安装本软件的计算机系统:Linux Ubuntu
1.3定义
因项目规模较小,有关数据要求说明书的内容并入本文档。
其中,文档中提到的设备、日志分别做如下解释:
设备分为硬盘录像机,虚拟硬盘录像机,摄像头;日志分为系统日志和操作日志。
2.任务概述
2.1目标
打算设计一个视频监控系统,可以实现以下功能:
1、在Linux的PC端实时查看当前视频
2、把采集到的视频存储到开发板的SD卡中
2.2硬件平台
硬件平台:Tiny6410开发板(或者树莓派3)
传输方式:可以通过有线或者无线传输,如果时间充足将尝试无线的方式实现,现在在Tiny6410上采用有线的方式实现。
3.需求规定
3.1软件功能规定

系统可以分为2个部分,采集端和监控端,分析之后这2个端分别需要实现以下的模块
采集端:

1、USB摄像头采集子系统
2、视频图像存储子系统
3、视频图像压缩子系统
4、传输子系统
5、主程序

监控端
1、传输子系统
2、解压子系统
3、播放子系统
4、主程序
4.系统总体设计
4.1 视频监控系统组成
网络视频监控系统主要包括远程视频采集和本地视频显示2 大部分。远程采集端通过采集到数据后通过网络传递给本地客户端,进行实时的显示和分析报警。

4.2 嵌入式linux 交叉开发环境的建立
交叉开发环境是嵌入式应用软件开发时一个显著特点,由宿主机和目标机实现。这里我们的宿主机使用的是2.6 内核的fedora 13 发行版的linux 系统,目标机开发板中的内核是2.6.31 内核本,之间通过串口相连。使用minicom 做串口控制终端,对开发板进行控制。电脑主机编译的程序要在开发板上运行,还必须使用交叉编译工具,这里使用的是ARM-LINUX-GCC 4.3.1 版本。
4.3 网络视频服务器的编译和移植
系统以现有开源的基于LINUX[3-5]的视频服务软件mjpg-streamer 为基础,这里我们做了一些必要的修改。因为原版的服务器只能采集一个摄像头的图像,我们把源程序的图像采集部分做了一个循环,使之可以采集多个摄像头的图像,并在相应的网络发送部分做了修改,来达到我们多路视频监控的要求。最后进行交叉编译移植到开发板上,就可以使用了。
将生成的可执行文件uvc-streamer 通过NFS 挂载的方式传到开发板上,然后在minicom 运行./ uvc-streamer –h 可以看到选项 来进行服务器端的一些基本参数的设置,这样网络视频服务器就搭建好了。

4.3 基于QT 的视频显示界面的设计
Qt 是一个支持多操作系统平台的应用程序开发框架[6],它的开发语言是C++ 。Qt 与其他图形用户接口(GUI,Graphical User Interface) 最大的不同就在于它提供了“信号与插槽”机制。这一机制提供了对象间的通信机制,它易于理解和使用,并完全被Qt 图形设计器所支持。它完全可以取代原始的回调和消息映射机制;程序员通过建立一个函数(称作一个插槽),然后调用connect()函数把这个插槽和一个信号连接起来,这样就完成了一个事件和响应代码的连接。信号与插槽机制并不要求类之间互相知道细节,这样就可以相对容易的开发出代码可高重用的类。一个对象的信号可以被多个不同的插槽连接,而多个信号也可以被连接到相同的插槽。
系统的QT 视频显示界面主要分2 个部分:①显示视频图像的用户操作界面,②通过TCP 传输的来自远端视频数据的接收。这里我们采用了多线程技术,主线程在主窗口绘图,实时显示监控视频;次线程建立TCP 连接,接收来自服务器的数据,当接收够一帧的数据后发射信号给主线程,让主线程来绘图。

你可能感兴趣的:(基于Qt的嵌入式监控系统)