基于LinuxQt的地铁人机界面的设计与实现

来源 :数字化用户 | 被引量 : 0次 | 上传用户:as16188
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】设计一种基于Linux Qt平台的国内某型地铁人机界面方案,综合考虑列车运行的环境,系统采用性能优越的X86架构作为硬件平台、稳定性强的Linux系统作为软件平台,在此基础上利用开源的图形界面库Qt开发界面程序。通过在硬件平台上的实际应用,验证了方案的可靠性与稳定性。
  【关键词】人机界面,Qt,x86架构,Linux系统
  一、引言
  车辆人机界面(Human Machine Interface,HMI)是列车网络控制与监控系统的一个重要组成部分,是列车驾驶员和维护人员操作列车的窗口。它不同于传统司机室以模拟仪表和指示灯为主的显示方式[1],这种基于平板显示器和微机结合构成的智能终端,具有信息显示、参数设定、功能测试和数据转存等功能,它为驾驶人员实现对车辆各子系统状态的实时监测与控制,提供了一个更加友好、简洁、标准化的界面。
  基于上述原因,本文提出了一种城市地铁车辆的人机界面设计方案,方案采用Intel X86处理器作为硬件平台,以嵌入式Linux系统作为软件平台,在此基础上采用开源的图形界面库Qt开发HMI应用程序。通过在硬件平台上的实际应用,验证了方案的可靠性与稳定性。
  二、系统方案
  (一)硬件平台的选择
  当下的硬件平台主要有x86架构和ARM架构两种选择。ARM架构的硬件平台相较于x86架构,具有功耗低的特点,但在硬件资源方面,x86架构具有明显的优势[2],列车对功耗的要求并不像手机等移动设备那么苛刻,反而在人机界面的性能方面要求比较高,因此X86架构的硬件平台更适合做车载人机界面的开发。另外,行车过程中复杂的电磁环境和强烈的机械振动,要求显示器硬件有很好的电磁兼容性和抗振能力,有比较大的存储能力。综合上述因素,选择了基于Intel X86平台的PIXY INC90系列显示屏作为硬件平台。
  (二)软件平台的选择
  Linux操作系统完全沿袭了Unix系统的架构,在网络通信方面的效率和功能都很突出[3];Linux是开源的操作系统,设计者可以根据自己的开发需求在此系统上进行二次开发,且免费使用;列车人机界面可使用的硬件资源相对较少并且要求上电时间短,综合上述因素此处操作系统选择了嵌人式Linux。
  (三)编程语言的选择
  Qt是一个跨平台的C++图形用户界面库,由挪威TroUTeeh公司出品,它支持绝大部分类Unix系统和Windows平台,拥有良好的跨平台特性[4]。Qt/Embedded Linux,为嵌入式系统的开发人员搭建了一套完善的窗口系统和开发平台。 Qt还提供了一种称为signal/slot(信号/槽)的机制替代了一般Gui库中所使用的回调函数机制。
  三、开发环境搭建
  硬件平台选择PIXY INC-90显示器,显示器搭载Linux操作系统,以Oracle VM VirtualBox和Qt creater作为软件仿真、编译和开发平台,开发的应用程序经过交叉编译生成可执行文件后,通过Win Scp软件导入显示器,再用SSH服务软件远程控制显示屏,执行目标程序[5]。
  四、人机界面设计
  (一)设计流程
  控制电源DC110V接通后,两个司机室的HMI同时开启。激活端司机室的HMI正常显示,非激活端司机室的HMI显示黑屏,主显示界面根据用户操作需求分为运行模式与检修模式,运行模式主要面对司机,检修模式主要面对检修技术人员,运行模式切换至检修模式需输入密码。设计流程如图1所示。
  (二) 界面绘制实现
  总程序采取顺序执行的方式,在参数初始化之前,首先执行MVB通讯模块、亮度传感器检测,以及判断串口配置文件是否读取成功程序,若成功,则进行参数初始化,若失败,则弹出故障提示界面,提示驾驶员或维护人员按故障提示进行操作。部分检测程序代码如下:
  if (engine->init(0x12, 5) != PIXYMVB_OK) //判断MVB通讯模块是否正常
  { FaultReason = 1; //故障原因为1
  showFaultHintScreen(JudgeFaultReason); //失败,根据故障原因,显示故障提示界面
  }
  QFileInfo fileInfo(“/dev/ttyUSB_SC”); //读取显示器亮度硬件配置文件
  if (!fileInfo.exists()) //判断硬件是否存在
  { FaultReason =2; //故障原因为2
  showFaultHintScreen(JudgeFaultReason); //失败,显示故障提示界面
  }
  图1 设计流程图
  1.信号/槽(signal/slot)机制
  本文提出的人机界面设计方案采用多级界面呈现的形式,界面之间的切换通过信号/槽机制实现,切换功能实现部分代码如下:
  Class QPushButton; //定义按键类
  QPushButton* Button; //声明一个按键指针
  Button –>setGeometry(x,y,width,height); //定义按键的坐标、长宽参数
  Button->setText(QString); //设置按键显示文本
  Private signals:
  Void SwitchScreen(); //声明切换界面的信号
  Private slots:
  Void JumpToTargetScreen(); //声明跳转槽函数   Connect(Button,released(),this, SwitchScreen ()); //按键被点击且松开时,触发信号
  Connect(screen, SwitchScreen (),this, JumpToTargetScreen ()); //信号调用槽函数,实现跳转到目标界面
  2.静态界面绘制
  显示器启动后进入主显示界面,主界面主要分为三部分:最上端的页眉,最下端的页脚,以及显示区域最大,位于中部的显示画面。其中,页眉、页脚的显示内容基本固定,不因界面切换而改变;显示界面的内容会随界面切换而变化。
  页眉绘制的部分代码如下:
  class Controller : public QWidget //继承自Qt基础类 QWidget
  Controller::init()
  {
  topHeader = new PTopHeader(this); //在内存中new一个空间
  topHeader->setGeometry(x,y,width,height);//设置坐标、长宽参数
  topHeader->show();//初始化为显示状态
  }
  页眉显示车号、画面号及时间信息,在进行页面切换时,保持页眉一直处于Show()状态;显示画面主要包括车辆当前站,终点站,速度,网压以及子系统状态。
  (三)MVB通信
  MVB是用于在一个固定编组的几个车辆内连接各种可编程设备的车辆总线。显示器作为车辆总线的一个子系统,通过MVB总线实现同VCU的通信,通讯程序部分代码如下:
  Void GetCommData() //获取宿端口数据
  Map.insert(); //把端口地址和获取的数据作为键值对插入容器中
  void GetOnePortData( wantPortAddress); //通过端口地址读取容器中的数据用于显示
  五、结束语
  结合公司的实际项目,本文设计了一种城市地铁车辆的人机界面方案。本文对软硬件的选择及系统平台的搭建等方面进行了阐述,并且着重描述了软件系统的开发流程。以PIXY INC-90系列显示器为应用平台,利用功能强大的开源图形库Qt进行系统开发设计,最终实现了地铁列车人机界面系统。通过在显示器上实际应用,验证了本文方案的可靠与稳定。
  参考文献
  [1] 客金坤,梅樱,郭红卫,等.基于图形化编程语言的列车人机界面设计[J].都市快轨交通,2011,24(1).
  [2] 任亚飞,唐涛.基于嵌入式Linux的列控系统车载人机界面的实现[J].铁路计算机应用,2005,14(12).
  [3] 杨志伟,曾艳姗.基于Linux的ACM在线评测系统研究[J].计算机与现代化,2010(6).
  [4] Jasmin Blanchette, Mark Summerfield. C++ GUI Programming with Qt 4, 2nd edition. 2008.8
  [5] 刘超,周纪超,张红星. 基于Linux Qt的列车人机界面设计与实现[J].计算机与现代化。2013,4.
其他文献
【摘 要】腾讯QQ,已经成为当今学生使用频率较高的网络工具,其功能齐全、操作简单。现在的学生多为独生子女,平时在学校可以和同学交流。但是到了节假日,他们在作业完成后的日子则基本上是网络上度过。本文结合自身班主任工作实践,谈谈腾讯QQ在班级德育工作中应用。  【关键词】QQ ;德育工作 ; 师生  现在的学生,谁没有自己的QQ号?在对笔者任所传授的六(1)班的调查中,笔者发现这样一个事实:68%的学
期刊
【摘 要】改革开放以来,中国的学前教育也在刻不容缓的追随着开放的脚步迈开,肩负着教育这个使命的新教师也感觉到了压力的重大,特别是学前这一特殊幼儿园教育,他不属于义务阶段教育,这更是在这个巨大的担子上又加了一大重担!本文将笔者入伍新教师队伍谈谈如何正确面对新教师工作压力以及应对策略等问题进行论述!  【关键词】新教师 压力 工作压力  幼儿园新教师工作压力是一个带有全球性的普遍问题。调查表明,有76
期刊
【摘 要】针对移动互联网数字版权保护问题,设计一种移动互联网数字版权保护安全授权模型,支持在Android、iOS和Windows Phone等移动智能终端上使用数字内容,并且支持多媒体内容在线、离线环境下授权分发和使用。与现有的数字版权保护方案相比,该方案在保护内容安全和用户隐私的同时,在移动互联网中具有较好的实用性。  【关键词】移动互联网;数字版权管理;授权  一、引言  随着互联网的同益普
期刊
【摘 要】研讨课是国外广泛采取的一种教学方式,国内的普通高等院校也逐渐采纳、应用。研讨课具有很强的实践性,有利于培养学生创新能力、思辨能力,突出了学生在教学中的主导地位,激发了学生的学习兴趣。我国的民办大学正处在迅速发展阶段,但由于生源、师资等各方面的问题,学生整体英语水平较低,传统的教学方式不能充分调动学生学习的积极性,教学效果不理想。为了提高学生学习英语的兴趣,达到相对理想的教学效果,我们可以
期刊
【摘 要】让游戏走进数学课堂,是符合新课程教学理念的,更是符合小学生的年龄特征和认知规律的。在课堂教学中,我们将数学知识融入游戏中,能使原本枯燥乏味的数学课堂变得生动有趣,能很快地激起学生学习兴趣,使学生由被动学习变为积极自主探索,能轻松、愉快地掌握重点和难点,使数学课堂优化,提高学生学习效率,培养学生的解决问题能力。  【关键词】游戏 数学课堂  学习和游戏是小学生生活的两大主题。游戏对于小学生
期刊
【摘 要】土石坝填筑是中小型水利水电工程中施工中的主要部分,是决定大坝使用寿命的关键部分。坝体爆破填筑料开挖,由于工程量较大,受场地限制局限性小,清废、爆破、开挖、运输、堆料等一系列工艺较繁琐,本文结合工程实例,主要探讨了中小型水库土坝的填筑施工技术.,现对水利枢纽工程坝体填筑爆破料开挖及料场规划施工工艺作一总结。  【关键词】料场;规划 爆破 开采;水利枢纽工程  1. 工程简介  吉音水利枢纽
期刊
【摘 要】学生安全责任重于泰山,作为教师每天担负着全班学生的安全重任,可见压力之大,责任之重。所以提高学生的安全防范意识,培养学生的自我安全保护能力就显得尤为重要。本文结合笔者担任学校大队辅导员及班主任期间颇有收获的案例就如何进行切实有效的安全教育作一些阐述。  【关键词】安全防范意识 自我安全保护能力 教育  常听家长说:“我的孩子在学校里可以成绩不好,可以不够优秀,但是不可以不安全,不可以出事
期刊
一、初中体育课堂中的问题行为  我们常说的课堂问题行为是指,由学生发出的影响教学活动正常进行的一切言行和举止[1]。体育课堂问题行为也就是指学生在体育课堂中所发出的影响教学活动正常进行的一切言行和举止。 在体育课堂教学过程中,由于课堂教学环境是一个相对开放的操场或者球场或者体操馆之类的场地,外界事物对课堂教学与学习的干扰性强。加之体育课堂本身具有实践性的特点,学生人数众多,学生活动范围小,授课情况
期刊
【摘 要】提高中医人才培养质量,临床实践这一环节至关重要,它是理论与实践联系的纽带和桥梁,也是检查和补充理论教学质量的重要手段。文章就中医教学过程的质量监控进行探索,结合临床教学过程中存在的时间、效果、质量之间的关系问题进行分析,并就学生临床培养模式提出一些见解和体会。  【关键词】中医 教学 培育模式  在中医教学阶段,如何实施以学生为中心的培养计划,使其尽快完成专业理论到实践能力之间的跨越,为
期刊
新颁布的《英语课程标准》对“写”的目标描述明确要求:“小学生能模仿范例写句子;能写出简单的问候语;能根据要求为图片、实物等写出简短的标题或描述;能基本正确地使用大小写字母和标点符号。”  在现实的小学英语教学中,教师却苦于如何结合教材开展有效写作训练,提高学生写作水平。小学阶段的高年级正是英语知识积累最高的阶段,他们具备了一定的写作能力但同时又集中暴露出写作的一些问题。本文将针对小学英语高年级学生
期刊