图形界面及显示相关的应用和开发
《基于海思H3520DV400和QT5.9设计的车载终端DVR控制平台》
主要涉及到音视频应用中的:实时视频预览;录像设置;录像查询;设备状态查询;触发设置;系统设置六大功能模块。
1.由于系统资源的有限性,并且为了软件的更加稳定可靠,将QT界面程序与海思音视频数据实际操作的模块区分开来,分开到两个独立的进程中去实现,海思程序主要处理硬件和海思平台相关的内容,QT程序主要处理界面显示和参数查询设置等内容。它们之间可以通过进程间通信(IPC)来交换信息。
2.视频预览和视频回放功能:由于在嵌入式设备中,系统资源有限,设备运行能力有限,所以将视频显示类的放到嵌入式设备中去实现。这海思平台,可以直接使用海思的硬件编解码来处理视频图像的显示。
3.参数设置和保存:视频编码和视频预览存储等等的这些参数,在海思程序中进行保存,QT界面需要显示的时候再去向海思程序查询这些参数的值,这样可以确保查询到的参数与实际使用的参数相同,如果要修改某些参数,也是通过QT界面进行设置,然后再将参数传回海思程序中保存。
1.海思程序,在设备上电之后,根据各种参数自动开始检测设备状态,状态正常后自动开始视频录制,存储设备存满之后,根据设置的条件,自动按条件进行覆盖操作。
2.QT程序,主界面按功能模块分成实时视频预览,录像设置,录像查询,设备状态,触发设置,系统设置这6大模块,实际也就是6个按钮,用户通过鼠标或是触摸屏进行选择操作。
3.QT程序主界面程序启动后,在后台建立一个线程,用来监听和接收海思模块发送过来的数据和命令(该项目使用的是在IPC队列基础上封装了一层协议的IPCP消息队列)。
4.QT程序中,每个Qt功能模块就是一个独立的线程,也就是一个子菜单就是一个线程,只有在选中的时候才运行,子菜单关闭线程退出。
5.QT程序里,各线程各对象之间的通信使用QT的信号和槽函数来实现。