基于QT的道岔转辙机测试界面系统设计

2016-11-30 20:38朱绪昌罗云龙胡延伟兰州交通大学电子与信息工程学院甘肃兰州730070
中国新技术新产品 2016年3期

朱绪昌 罗云龙 胡延伟(兰州交通大学电子与信息工程学院,甘肃 兰州 730070)



基于QT的道岔转辙机测试界面系统设计

朱绪昌 罗云龙 胡延伟
(兰州交通大学电子与信息工程学院,甘肃 兰州 730070)

摘 要:该设计提出了一种基于QT的便携式道岔转辙机测试仪界面系统的设计方案,完成了对窗口控件、鼠标键盘响应事件等模块的设计和嵌入式Ubuntu系统下的程序移植。经验证,系统界面具有配置灵活、人机界面友好的特点,用户可通过设置转辙机类型、牵引转辙机数量、保护时间等参数,以呼叫应答方式,实现该界面系统对转辙机的实时状态显示、动作过程中道岔控制电路有效数据曲线显示等功能,达到预期效果。

关键词:QT 界面系统;状态显示;曲线显示

本文在以嵌入式Ubuntu的ARM平台上,利用Qt设计了一种与道岔控制电路驱采模块相连接的上位机系统,该系统界面具有运行稳定、配置灵活的特点,主要包括用户主页界面、曲线界面等部分。在设置转辙机类型、牵引转辙机数量、保护时间等参数后,通过呼叫应答方式,实现对多个转辙机的操作及实时状态查询、动作过程中道岔控制电路有效电流及功率曲线显示。

1 系统设计

该设计以Ubuntu为操作系统,以SAMSUNG公司的S3C6410X为硬件平台核心控制芯片。校验装置以标准键盘、鼠标作为输入设备,7英寸800*600分辨率的彩色LCD作为终端现实屏幕.系统界面的开发工具是Qt-4.7.3,Qt相对于其他界面开发工具,具有跨平台、面向对象、丰富的API等优点,界面调试可以在PC机上完成,大大提高了开发效率.该界面系统以RS232通信方式与驱采模块连接,实现对转辙机的操作与状态、数据采集。

2 通信实现

QT中并没有特定的串口控制类,本设计通过第三方qextserialport类实现读写操作。QextSerialBase类继承自QIODevice类,它提供了操作串口所必需的一些变量和函数等,而Posix_QextSerialPort均继承自QextSerialBase类,并类添加了Linux平台下操作串口的一些功能。在本设计中使用Posix_QextSerialPort类对象mycom定义串口,包括串口读写方式、波特率、数据位、数据流控制等串口设置。

本设计采用信号与槽函数关联方式实现读串口缓冲区数据,实现读写操作。其方法为设置定时器,固定时间间隔后读取缓冲区数据。相关代码如下:

connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));

读操作槽函数中,读取串口缓冲区的所有数据给临时变量temp,再对临时变量temp进行处理,根据已定义的数据帧格式采集转辙机状态信息与转辙机动作数据。其读槽函数实现代码如下:

QByteArray temp = myCom->readAll();

写操作槽函数中,以ASCII码形式将行编辑框中的数据写入串口。其读槽函数实现代码如下:

QByteArraysenddata;

mycom->write(senddata);

本设计中通过串口读写操作,建立界面系统与转辙机驱采模块的通信,其通信帧主要分为状态帧与动作数据帧。界面系统向转辙机驱采模块发送状态/动作数据查询帧,当转辙机驱采模块接收到状态/动作数据查询帧后采集转辙机状态/动作数据,并以返回转辙机状态/动作数据数据帧。

3 界面的设计与实现

该界面系统主要包括2个部分:主页界面、曲线界面。系统开机后进入系统初始化状态即主页界面,完成默认选择。由主页界面可通过按键选择可进入曲线界面,由曲线界面可返回主页界面,从而实现界面系统界面之间切换,便于完成对各界面的操作。

3.1主页界面的设计与实现

根据需求,主页界面主要包括界面系统的配置选择部分、转辙机状态显示部分和控制部分。界面系统的配置选择部分包括转辙机机型选择、牵引转辙机数量选择和保护时间选择,并且配置选定后将同步到曲线界面。

3.1.1状态显示部分

QT提供QPainter类绘制从简单的直线到像饼图和弦这样的复杂形状。它也可以绘制排列的文本和像素映射。通常,它在一个“自然的”坐标系统中绘制,但是它也可以在视和世界转换中做到这些。使用QPainter绘制图形时,首先使用QPainter类构造绘图工具,然后定义绘制线、轮廓和文本颜色等,最后设置所画图形参数再结束绘制。

QT提供paintEvent(QPaintEvent*)函数实现图形的重绘,其实现方法如下:

this->repaint();

界面系统与转辙机驱采模块通信过程中,界面系统会向转辙机驱采模块发送状态查询数据帧,转辙机驱采模块接收到该数据帧后处理接收到的数据帧,然后由驱采模块采集转辙机状态数据并返回转辙机状态数据。界面显示系统接收到返回的状态数据帧后进行处理并实现图形重绘以显示转辙机状态。

3.1.2转辙机控制部分

本设计采用信号与槽函数关联方式实现发送定操、反操和急停命令。在发送转辙机操作命令前需关闭状态数据帧的发送,点击对应的操作按键。点击触发后,槽函数实现发送对应的操作命令帧。其槽函数重要代码为:

timer_wucao->stop();

t i m e r _ f a n c a o _ d e l a y - > s t a r t (DELAY);

第一行代码需停止转辙机状态查询帧发送;第二行开启发送反操命令帧定时器。由于操作多台转辙机,故需要设定各台转辙机反操操作间隔时间DELAY,以便在完成所操转辙机后间隔时间DELAY后操作下一台所操转辙机。其定时器槽函数重要代码如下:

QStringbuf_fancao=”FB FB 31 00 00 00 00 A6 00 00 00 00 00 00 00 00 FC FC”;

com_sendcommand.send_datas(buf_ fancao);

代码第一行是发送反操操作数据帧;第二行是调用串口通信发送函数发送该数据帧。在发送转辙机操作数据后,继续发送状态数据帧的发送,驱采模块对接收到的数据帧进行处理,转辙机进行动作,并由转辙机驱采模块采集转辙机状态反馈给界面系统进行状态显示。

3.2曲线界面

本设计中曲线界面用于显示转辙机动作过程中有效电流曲线、电压曲线和功率曲线。在转辙机动作后,上位机发送要数据命令帧,转辙机驱采模块接收到命令后返回转辙机动作数据。可根据需求,选择所需曲线类型并显示。

QWt是一个基于Qt的扩展类库,包含了大量用于工程开发编程的GUI部件和辅助工具。除了二维绘图控件类外,它还提供了诸如刻度,滑块,转盘等控件类供开发使用。本设计中首先实例化一个QwtPlot,设置x轴坐标轴及其显示范围、y轴标轴及其显示范围其相关代码如下:

u i - > q w t P l o t - > s e t A x i s S c a l e (QwtPlot::xBottom, 0, CURVE_DATAS);

u i - > q w t P l o t - > s e t A x i s S c a l e (QwtPlot::yLeft, 0, 300);

代码第一行设置了所画曲线X坐标轴的原点及坐标轴显示范围参数;代码第二行设置了所画曲线Y轴坐标轴的原点及坐标轴显示范围参数。

在设置完坐标轴后,需设置画布背景,也可添加滚轮缩放功能、鼠标拖动功能、添加网格等。在设置好曲线显示坐标轴及环境后,通过界面系统和转辙机驱采模块采集转辙机有效动作数据并显示,以采集转辙机动作数据。

在曲线显示界面设置有click()触发信号与相关槽函数的要对应转辙机动作数据的按键,当按下对应按键后,触发对应的槽函数,相关代码如下:

QStringbuf_a_datas=”FB FB 32 00 00 00 00 00 00 00 00 00 00 00 00 00 FC FC”;

com_sendcommand.send_datas(buf_ a_datas);

代码第一行为要转辙机动作数据帧;第二行是调用串口通信发送函数发送该数据帧。转辙机驱采模块接收该数据帧,采集转辙机动作数据并反馈给界面系统。界面系统接收到转辙机动作数据并显示,曲线显示相关代码如下:

double *x=new double[CURVE_ DATAS];

double *y=new double[CURVE_ DATAS];

curve->setSamples(x, y, CURVE_ DATAS);

ui->qwtPlot->replot();

曲线界面设置有对应动作要数据按键,当转辙机动作完成后,可根据需求点击要数据按键。转辙机驱采模块采集转辙机动作数据,并将数据传送至曲线界面直观显示。

结语

该界面系统采用ubuntu操作系统,具有很好的移植性,同时也具有很好的便携性,方便供平时转辙机的测试维修使用。其功能能够即时显示道岔的定位、反位、四开等状态,同时可以通过与转辙机驱采模块相连接以触屏按键方式实现对转辙机定操、反操等驱动功能的操控。界面系统可以曲线形式显示所需转辙机动作数据,可对转辙机性能进行判断,为道岔的维修提供依据。

参考文献

[1]李宇丽.基于ARM的嵌入式Linux系统的研究及应用[D].西安电子科技大学,2007.

[2]谭永锋.嵌入式Linux移植与应用程序开发[D].长安大学,2007.

[3]李艳民.基于Qt跨平台的人机交互界面的研究和应用[D].重庆大学,2007.

[4]张春艳.基于Qt的嵌入式图形用户界面研究与实现[D].大连海事大学,2008.

基金项目:中国铁路总公司科技研究开发计划课题(合同编号:2014X008-D)

中图分类号:U213

文献标识码:A