基于Qt的远程监测系统客户端设计与实现

2015-12-18 13:17王珍珍张庆磊王传刚
电子科技 2015年8期
关键词:云台串口波形

王珍珍,张庆磊,王传刚,杨 亮

(西安电子科技大学电子工程学院,陕西西安 710071)

远程监测系统是智能监控系统向智能化发展的一项重要研究内容,也是物联网技术的一个重要应用[1]。近年来,其在环境监测和视频监控领域发挥着越来越重要的作用。为了满足跨平台、多样化的应用需要,设计采用Qt作为系统软件开发框架。Qt以其友好的图形界面、跨平台的特性以及良好的信号槽机制,成为工控领域GUI设计的最佳选择[2]。

1 客户端界面设计

设计中,客户端采用灰度渐变的主题风格、自适应的布局管理器及模拟真实仪器的显示界面。用户界面的整体布局包括两大块,即显示区和控制面板区。其中,显示区采用Qt的Frame组件,控制面板采用Qt的TabWidget组件。多功能GUI用户界面如图1所示。

图1 多功能GUI用户界面

2 整体架构

设计中,客户端不仅为用户提供了一个友好的显示界面,还提供了灵活的控制面板和配置选项。

显示终端和用户交互主要完成两个工作:(1)将数据呈现出来,对内部信号进行实时显示,对外部数据进行定制化显示。(2)方便用户交互式控制,实现对摄像机云台的控制,以达到调整摄像头的俯仰角、视角和焦距的作用[3]。本设计采用MVC设计模式,将数据和视图分离[4]。

视图部分主要由Display模块完成,根据不同的数据自动生成相应的显示视图。其中,波形数据,以虚拟示波器的外观来动态显示输入波形信号;视频图像信号,以图像方框的外观实时刷新每一帧图片;传感数据,可实现多通道环境参数的显示,且自动适应屏幕大小,调整显示栅格。

控制部分主要由WorkPannel模块来完成,通过接收用户指令和输入数据,切换到不同的工作模式,在Display模块中实时输出用户信息。此外,WorkPannel模块需要协调不同接口数据的传输速率,以保证数据既能实时更新又能稳定显示。显示交互和用户界面整体结构如图2所示。

图2 显示终端和用户交互整体结构

3 模块设计

显示终端主要负责数据的传递、数据的显示和用户交互。Qt提供了一种信号槽机制,可实现不同组件对象之间无缝通信[5]。内部数据的产生、外部数据的传输、用户数据的获取及显示区数据的推送,均是以类的形式封装于具体模块中。

3.1 GUI设计主要模块

为满足对环境参数和视频图像的实时显示,在显示终端部分设计了5大模块,每个模块由一个类来实现。

图3 显示终端的几个重要模块类图

3.1.1 Camera模块

Camera模块主要对USB传输的视频图像进行按帧分割、处理、优化,以适应Display显示模块的标准。设计采用OpenCV图像框架来实现摄像头视频图像的读取控制。为了达到良好的视频显示效果,设计将获取的每帧图片均转换为jpg格式,且设定定时器,每33 s读取一帧。

3.1.2 Display模块

Display模块主要负责对不同模型数据的显示。设计使用Qt独有的双缓冲重绘机制,实现动态曲线和视频图像的稳定显示。设计中,Display显示区的刷新频率是通过定时器来控制的,具体函数调用关系如图4所示。

图4 Display模块工作流程

为了实现数据的更好显示,设计定义了scaleData()函数来对输入数据进行规范化处理,包括数据点数的约束和数据大小的归一化处理。其中,数据点数约束在800内,保证适应大多数桌面屏幕。

(1)SerialComms模块。SerialComms模块是对串口接口数据的封装,包括串口的识别、初始化配置、数据的读写和规范化处理等。(2)SigGenerator模块。SigGenerator模块主要用于内部信号发生器,方便演示和测试。

(3)WorkPannel模块。WorkPannel模块是最重要的部分,主要完成3方面的工作:1)协调各模块接口数据的传输。2)实现用户界面的交互。3)对显示终端、控制面板以及工作流程的管理和控制。

为了实现更好的用户交互界面和丰富的功能,设计提供了多种槽函数,以响应用户界面的控制和参数设置,如工作模式的切换、波形幅度周期的调整、数据源的选择、数据类型的选择、传输模式的切换等。

3.2 GUI设计主要模式

为了方便不同工作模式的快速切换,在设计中使用枚举数据类型和模式切换方法,提高了程序的鲁棒性和可读性[6]。

图5 数据交互中用到的主要模式

ChnMode模式负责波形信号的显示通道切换,包括CH1、CH2、Dual和Sleep的4种状态,分别表示工作于通道1、通道2、双通道和睡眠状态。

DataSource模式负责选择不同的数据源,包括None、Inner和Exter 3种状态,分别表示无数据、内部数据和外部数据。

DispMode模式负责切换横屏和竖屏显示。这种模式切换主要是为了适应手机、平板、嵌入式终端等可移动设备。

DataType模式负责接收3种不同模型的外部数据,包括Monitor、Video和Sensor,分别表示波形数据、视频图像和传感数据。这种模式只有在DataSource模式处于Exter状态才有效。

CommsMode模式负责切合串口工作方式,包括Terminal、Transfer和 Control,分别表示调试终端、数据传输和云台控制3种状态。

WorkMode负责整个显示终端和用户交互的工作状态,包括 Started、Closed、Paused和 Normal的4种状态,分别表示启动、关闭、暂停和正常模式。一旦WorkMode处于关闭模式,显示器Display和串口SerialComms均将关闭。

4 系统功能测试

4.1 测试方法

鉴于远程监测系统完整的设计方案包括云台终端、数据中心和显示终端,本设计是显示终端方面,故只测试显示终端。使用虚拟串口、串口调试助手和Monitor用户界面来搭建测试上位机测试平台。

4.2 测试结果

设计的主要部分集中于多终端跨平台的GUI设计,即以定制化的方式对传感数据和视频数据进行实时显示,同时为用户提供参数配置和云台控制。故本设计对GUI的测试主要有3方面:1)对波形数据的测试,包括内部波形和外部输入波形。2)对传感数据的测试,可通过虚拟调试助手进行模拟。3)对视频图像数据的测试,可通过USB直接连接摄像头[7]。

4.2.1 波形数据的测试

Virtual Monitor用户界面主要包括两部分:Display显示区和用户控制面板。在波形数据模式下,通过模拟传统示波器的显示特点,可实现对2通道波形数据的显示。同时,在控制面板中,用户可通过Dial旋钮分别对每个通道的幅度和位移进行设置[8]。

为了测试波形数据的显示,设计选择数据源为内部数据,并选择双通道模式。然后启动内部数据选项卡,分别选择矩形波和正弦波,如图6所示。

图6 内部波形的显示情况

从图6可看出,Virtual Monitor用户界面可在Windows平台下对波形信号实现稳定的显示。且用户可灵活地切换不同通道,根据需要调整波形的相关参数,如周期、幅度和偏移等。

4.2.2 传感数据测试

Virtual Monitor用户界面在传感数据显示模式下,可多达对10个通道数据的实时显示,并自动以不同的颜色进行区分。由于传感数据是通过串口传输的数据,因此要测试此功能,用户需进行3个操作[9]:(1)在显示设置页面下,打开显示器,并选择数据源为外部数据。(2)在高级设置页面下,选择需要传输的传感数据通道数。(3)在外部数据页面下,选择合适串口和波特率,并点击Transfer数据模式。

图7 多通道传感数据显示情况

通过搭建虚拟测试平台,来完成对传感数据显示的测试。虚拟测试平台包括虚拟串口VSPD、串口调试助手和 Virtual Monitor界面[10-12]。

4.2.3 视频数据的测试

Virtual Monitor用户GUI界面可提供对3种外部数据的显示,要想获取视频图像数据,必须打开Video数据模式。当没有接入视频数据时,显示区会呈现如图所示画面“请插入摄像头”;当有视频数据输入时,系统会自动检测,并按帧提取图像实时显示,视频图像的显示结果如图8所示。

图8 视频图像显示界面

4.2.4 云台运转控制测试

设计在串口通信方面,提供了3种数据模式,即Terminal、Transfer和 Control,分别表示串口调试模式、数据传输模式和云台控制模式。选择Control进入云台控制模式,用户可对云台终端的摄像头参数和云台运转姿态进行控制。其中,摄像头可控制参数有光圈和焦距,用以调节摄像的视角。云台控制包括基本的启动、暂停控制和水平、垂直旋转控制。云台控制和摄像头参数设置如图9所示。

图9 云台控制和摄像头参数控制

5 结束语

通过实验测试效果可看出,Virtual Monitor用户GUI界面基本可实现对波形数据、传感数据和视频数据的显示,以及对云台工作和摄像头参数的控制。同时,在测试过程中,也发现了以下问题:(1)客户端界面设计仍有待改进,需进一步优化以提高界面的友好程度。(2)系统性能也有待提高,系统构架可能造成性能瓶颈。

[1] 高璐,张鹰峰.基于Qt的远程监控系统设计[J].电子世界,2013,22(7):783 -788.

[2] 石沙.基于Qt的跨平台视频监控客户端的设计与实现[D].西安:西安电子科技大学,2013.

[3] Sun Tong,Xia Yongquan,Gan Yong.Procedia engineering[C].Shanghai,China:Discussion on Integration of Urban Video Surveillance System,2011.

[4] 栗新雨.MVC设计模式中的“视图模型”与“视图”[J].计算机光盘软件与应用,2013,20(3):178-179.

[5] 汪小闯,任远.基于 Qt的 EMS图形系统的研究[C].南京:第十届全国保护和控制学术研讨会,2005.

[6] 曾剑元.ARM9平台上基于Qt/Embedded的嵌入式GUI的研究与实现[D].长春:吉林大学,2010.

[7] 邱建东.基于STM32的远程智能测控单元设计[D].兰州:兰州交通大学,2013.

[8] 黄清江,蒋强,任高星.基于RealView MDK软件的嵌入式系统仿真研究[J].电子测试,2009,3(1):63 -66.

[9] Song Qiang,Lv Chenguang.Data acquisition system for electric vehicle's driving motor test bench based on VC[J].Physics Procedia,2012(3):110 -114.

[10]农伟,侯俊丞,胡睿南.构架在OBD系统的远程汽车监测新方案[J].电子科技,2012,25(1):61-64.

[11]代治国,李兴霞.基于ARM的智能小区远程视频监控系统[J].电了设计工程,2013,21(3):70 -72.

[12]杜晓婷,李美莲.基于GPRS的远程监控系统[J].现代电子技术,2011,34(17):205 -207,210.

猜你喜欢
云台串口波形
云上之家——万科·郡西云台
龙门山·卧云台
浅谈AB PLC串口跟RFID传感器的通讯应用
帮我买云台
基于STM32的无线FPV云台设计
基于LFM波形的灵巧干扰效能分析
用于SAR与通信一体化系统的滤波器组多载波波形
数字电源内部数据传输的串口通信方法实现
基于ARM的任意波形电源设计
USB接口的多串口数据并行接收方法探索