基于Virtools 和串口通信的界面交互性的设计与实现
- 格式:doc
- 大小:137.00 KB
- 文档页数:6
交互式多媒体软件的设计与开发摘要:作为多媒体技术和虚拟现实技术的杰出产物,交互式多媒体软件在商业、教学等领域发挥着日益突出的作用。
介绍了交互式多媒体软件的相关概念,并以摄像机交互演示软件为例,提出了一种基于Virtools的交互式多媒体软件的设计与开发方法。
关键词:交互式多媒体软件;多媒体技术;Virtools1交互式多媒体软件概述交互式多媒体软件是指在多种软硬件平台的支撑下,将文本、图形、图像等多种形式的信息进行合理化整合,形成具有双向交互功能的软件产品。
交互式多媒体软件最根本的特征是交互性。
这一特征使用户由被动接收信息变为主动去控制信息的流向以及速度等,满足了用户的参与意识,体现了用户的主体性,给予人们参与、互动、创造的体验。
非线性是交互式多媒体软件的另一个重要特征。
交互式多媒体软件突破了线性限制,用户可以根据自己的个人情况选择先了解什么,后了解什么,使信息的获取更灵活。
交互式多媒体软件的应用极其广泛,现已渗透到教育教学、商业展示、电子出版等多种领域。
教育教学领域是交互式多媒体技术应用最为成熟的领域之一,交互式多媒体课件、交互式教学平台都得到广泛应用,日益成为计算机辅助教学、远程教育的重要手段。
在商业展示领域,传统的产品展示多使用实物图片或视频的方式,虽然画面可能更为真实,但无法让购买者根据自己意愿了解产品,产生更强的购买欲望,而交互式多媒体软件突破了这一瓶颈,使用户可以自由随意地了解产品的细节。
2交互式多媒体软件的设计在设计交互式多媒体软件的界面时除考虑美观以外,更重要的是要注意界面的组件、布局要能保障交互行为的顺利进行。
就该软件而言,交互界面可以尽量简洁大方,不能仅为追求界面的美观性,引入较多干扰信息,造成界面污染。
在进行内容设计之前首先要对产品的用户需求进行大致分析。
摄像机交互演示软件的功能主要有:一是在教育教学领域作为摄像机学习的虚拟实验器材;二是在新型摄像机即将面世时,作为产品展示和体验的工具。
基于oop的gui交互的设计与实现python -回复“基于oop的gui交互的设计与实现python”主题下的文章。
引言:在当今的信息化社会中,图形用户界面(GUI)已经成为人机交互的主要方式之一。
而在实现GUI交互功能时,使用面向对象编程(OOP)的方法,能够使得界面设计更加灵活和易于扩展。
本文将结合Python语言,详细介绍基于OOP的GUI交互的设计与实现的步骤与技巧。
1. 界面设计首先,我们需要考虑设计界面的基本元素和布局。
常见的GUI界面元素包括窗口、标签、按钮、输入框等。
在基于OOP的思想下,我们可以将这些界面元素抽象成类,并且使用继承机制来实现界面元素的层次结构。
例如,可以创建一个名为“Widget”的基类,然后再创建派生类如“Window”、“Button”等来继承基类,并分别实现它们的具体功能。
2. 事件处理GUI界面的交互主要通过事件触发来实现。
当用户对界面进行操作时(如点击按钮),就会触发相应的事件。
在基于OOP的设计中,我们可以利用事件处理机制来管理和处理界面中的各种事件。
为了实现这一点,可以为每个界面元素定义一个事件处理方法,并在触发事件时调用相应的方法来处理。
例如,可以创建一个名为“onClick”的方法,并在按钮被点击时调用该方法来执行相应的操作。
3. 界面逻辑与业务逻辑的分离在实际的应用中,GUI界面往往是与其他系统组件进行交互的载体。
为了使得界面设计更加清晰和可维护,我们通常需要将界面逻辑与业务逻辑进行分离。
在基于OOP的设计中,可以通过引入控制器(Controller)的概念来实现这一点。
控制器负责管理界面的事件处理,并将事件传递给相应的业务逻辑模块进行处理。
这样,界面与业务逻辑之间的耦合度将大大降低,使得代码更加易于维护和扩展。
4. GUI库的选择在实际的开发中,我们可以选择使用不同的GUI库来实现基于OOP的GUI交互。
Python语言有诸多优秀的GUI库可供选择,如Tkinter、PyQt、wxPython等。
基于Virtools的电子技术虚拟实验系统及其在项目式教学中的实现张志田;刘云芳【摘要】当前的虚拟实验教学软件大多数是演示性的,它们主要的不足是缺乏人与系统的交互性,致使在进行模拟实验过程中缺乏真实性[1].本文针对当前虚拟实验系统存在的不足,根据实验实际的需要,开发了基于Virtools平台的电子技术虚拟实验系统,用户可以在系统中模拟真实实验及电路设计仿真,得到仿真数据结果,既达到了逼真的实验效果,又能满足实验教学的目的与要求.【期刊名称】《湖南工业职业技术学院学报》【年(卷),期】2013(013)001【总页数】2页(P11-12)【关键词】Virtools;虚拟实验;仿真【作者】张志田;刘云芳【作者单位】湖南工业职业技术学院,湖南长沙,410208;湖南工业职业技术学院,湖南长沙,410208【正文语种】中文【中图分类】N451 Virtools的电子技术虚拟实验系统虚拟实验系统将所有虚拟场景、虚拟仪器及实验者集成于一个系统中,使用标准的统一命令来实现功能服务;与真实实验室不同的是,虚拟实验室是通过网络技术由虚拟技术实现的。
它是一个能够完成实验效果的系统。
其最大的优点就是能够再现真实实验室的实验效果,通过3D效果使在虚拟实验室平台中的实验者有逼真的效果,仿佛就在现场操作实验一样,同时用户之间还可以交流信息。
所以说,虚拟实验室应该具备可操作性、开放性和仿真性的特点[2] 。
也能象真实的实验室一样,添加、修改和删除仪器和实验,甚至可以设置虚拟线路仪器故障,以使虚拟室验系统能够更加适应教学验目标及能力目标。
图1 实验室构成示意图1.1 虚拟实验室原理本着“技术为教学服务”的原则,提出了3D-Virtools-Moodle构建虚拟实验室的架构方案。
虚拟实验室主要由实验用户识别系统、网络系统、虚拟验室管理系统、虚拟实验系统、效果评估系统、互动系统等组成,其中虚拟实验系统中包括了EWB、Protel软件。
基于Virtools和串口通信的界面交互性的设计与实现
滕英岩;张福艳
【期刊名称】《微计算机信息》
【年(卷),期】2010(026)017
【摘要】本文介绍了一种采用Virtools和串口通信实现人机界面交互的设计方法.下位机通过串口通信的方式将采集的数据传给上位机,上位机通过Virtools的行为模组对这些数据进行处理,并根据处理结果做出响应,从而实现人机界面的交互.【总页数】3页(P88-90)
【作者】滕英岩;张福艳
【作者单位】116023,大连,大连东软信息学院计算机科学与技术系;116023,大连,大连东软信息学院计算机科学与技术系
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于UI设计的交互性与界面视觉设计研究 [J], 王锐
2.基于Virtools的路由交换技术虚拟实验室设计与实现 [J], 刘云朋; 邓小飞
3.基于Virtools的路由交换技术虚拟实验室设计与实现 [J], 刘云朋; 邓小飞
4.基于Virtools的三维虚拟实验系统设计与实现——以摄像机操作三维虚拟实验为例 [J], 曾令菊
5.基于Virtools的三维虚拟实验系统设计与实现——以摄像机操作三维虚拟实验为例 [J], 曾令菊
因版权原因,仅展示原文概要,查看原文内容请购买。
串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。
论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友方便使用.首先补充一个比较重要的问题,就是在LabVIEW中使用串口的话一定要先安装VISA这个驱动,然后生成的EXE运行时也需要在目标机上安装VISA Runtime Engine,可以在打包时一起打包。
1.串口扩展的问题:先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB—RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。
PCI—RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大.PCI—RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8—16个,一堆线和接头。
转接线和扩展卡一般是要装驱动的。
2。
串口功能的确认:在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的.检查的方法很简单,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。
电脑上的串口软件一般是用串口调试助手,很出名的,也好用.如下图所示:图1串口调试助手打开软件,选择已经短接好的串口号,点击“手动发送”,如果串口是好的,2、3脚又短接起来了,马上就可以在上面的接收框里看到接收的数据就是发送的数据。
稍微要注意一下的是有些电脑的COM1和COM2的位置是反过来的,所以要确定好串口调试助手左上角的串口上择的是已经短接的那一个,如果COM1没接收到,可以再先COM2再发一次看一下。
Labview实现串口通信步骤1.在程序面板上添加VISA配置接口2.添加后,开启帮助文档的显示。
菜单的Help->showcontexthelp,如下图鼠标选择目标则会显示帮助框。
如下图所示。
3.创建相应的配置在程序面板中鼠标移动到对应的引脚上,点击鼠标右键->create->control,创建后,界面面板上会出现对应的控制框。
如下图所示,创建个VISAresourcename。
图-创建窗口选择控件前面板显示如下:图-前面板显示控件选择4依次创建,波特率、停止位、数据位等如下图所示。
5.创建个while循环,用于放置发送的程序鼠标移动到循环条件控制的引脚上,创建个control。
用于调试,不对条件处理,会报错。
6前面板放置个按钮,用于控制数据的发送7.创建个事件,用于响应发送按钮鼠标移动到timeout的位置,鼠标右键选择editevents…如下图所示。
操作上面后,出现如下界面:选择需要响应的控件,这里选择“okbutton”,选择鼠标按下。
点击ok后,事件的名称也变化了。
如下图所示。
如果鼠标点击按键,则会进入事件处理。
8创建VISA写函数9连接端口和写函数10添加个关闭函数11.创建字符串控件,传递给写函数,用于发送选中VISAWrite的writebuffer,右键create->control,12界面如下所示13.安装虚拟串口,提供一个下载地址用虚拟串口配置两个端口,配置好后,这两个串口之间是自动连接上,模拟硬件上两个串口对接上的。
如上图,指定好端口,点击Addpair。
14运行串口工具,提供一个下载地址15.运行串口工具,打开串口,运行VI,发送数据我的电脑配置的是COM12和COM13,vi选择COM12.运行VI,在writebuffer里面填写test,点击OK发送。
每点击一次,发送一次。
16.建立接收模块添加个while循环,创建while循环,用于接收。
基于Ubuntu13.04系统下QT串口通信设计【摘要】本文主要介绍了基于嵌入式linux系统的QT串口通信界面的接收系统。
本文主要研究一种基于ARM处理器的硬件平台,在Linux嵌入式操作系统Ubuntu13.04下采用QTCreater设计QT界面进行串口通信,实现收发送字符的功能。
【关键词】嵌入式系统;ARM处理器;QT;串口通信1.引言嵌入式系统是一种以应用为目的,软硬件可裁减,适应应用系统对功能、成本、体积、功耗严格要求的专用计算机系统。
随着计算机的发展和应用的普及,嵌入式系统取得了迅猛的发展,嵌入式产品已经渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐等各个领域,掀起了一场数字化革命。
本文主要研究一种基于ARM处理器的硬件平台,采用Linux嵌入式操作系统,串口通信,实现收发送字符的功能,设计以ARM为控制芯片,移植linux 操作系统,借助于linux与ARM处理器通过QT界面串口通信发送字符。
对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含4个层面:设备驱动层、实时操作系统RTOS、应用程序接口API层、实际应用程序。
2.QT/Qt Creator简介Qt Creator 是一款跨平台的集成开发环境,特别针对Qt开发者,是Qt SDK 组成的一部分,可运行于Windows,Linux/X11及Mac OS X等桌面操作系统,允许开发者为多桌面环境及移动设备平台创建应用程序。
它包括一个可视化调试工具和集成的GUI 版面和外形设计师。
这个编辑器的功能包括语法高亮度显示和自动完成。
Qt Creator 在Linux 上,使用GCC 的C++ 编译器。
本文在Qt/Embedded基础上介绍了使用Qt/Embedded进行程序设计。
3.基于linux的QT4的界面通信设计及测试3.1 QT4 开发环境搭建Qt/Embedded(简称QtE)是一个专门为嵌入式系统设计图形用户界面的工具包。
基于Virtools的交互式机械手运动仿真设计与实现符莎【摘要】基于虚拟现实技术,以Virtools为开发工具,设计与实现了一种可以在网络环境中交互式操作的三维机械手运动仿真系统.该实现方法具有较好的可拓展性和普遍性,能够广泛应用于基于Virtools开发的各种机构的运动仿真.【期刊名称】《机电产品开发与创新》【年(卷),期】2012(025)002【总页数】3页(P113-114,106)【关键词】Virtools;交互;仿真【作者】符莎【作者单位】中山市技师学院,广东中山 528403【正文语种】中文【中图分类】TP3910 引言随着虚拟现实技术(简称VR)的迅速发展和应用,虚拟实验室、产品虚拟装配、虚拟电子仪器等虚拟环境互动的虚拟现实系统应用日益广泛,机械设备与仪器等虚拟运动仿真也成为比较主流的技术之一。
由于很多机械设备结构复杂,价格昂贵,将实际设备投入操作、维修、装配等训练不仅危险系数大,且训练成本高,而虚拟系统不仅能使受训人员沉浸式地进行虚拟训练,并能全面地模拟设备在使用中可能出现的所有情况,使受训人员全面了解设备,从而达到训练的目的。
而采用基于网络的虚拟训练,不再受时间与空间的限制,可大大提高培训效率,节省培训成本[1]。
构建基于网络的机械虚拟运动仿真是一个较为复杂的过程,目前的虚拟现实技术多为基于VRML语言实现。
VRML是基于语言文本的虚拟场景生成工具,其语言复杂、交互性较差、不易实现。
本文基于虚拟现实技术,采用3ds Max与Virtools平台相结合的虚拟运动仿真实现方法,具有真实性、实时交互性、脚本简单和易于实现等优点,以传统机械手为虚拟对象,使用Solid-Works和3DS MAX对虚拟运动物体和场景进行制作,并应用交互虚拟平台Virtools构建交互仿真运动过程,开发出可应用于网络环境的三维交互式机械手运动仿真程序。
本实例具有普遍性,可以应用在各种机构的运动仿真中。
1 Virtools简介Virtools是一套非沉浸式虚拟现实[2]产品开发工具,其以功能较为全面、编程可视化、人机交互强大等优势,得到越来越广泛的研究和应用。
1 引言
用户界面设计是屏幕产品的重要组成部分,它为人机交互构建了一个沟通环境。
其中交互性设计是用户界面设计中的重要内容之一。
交互设计的目的是让用户能够简单方便地使用产品,任何产品功能的实现都是通过人机交互完成的。
现以单片机为核心的嵌入式应用中界面交互性设计为例具体介绍其实现方法。
2 总体设计方案
总体设计方案如图1 所示
3 串口通信设计与实现
串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通信方式。
这种通信方式使用的数据线少。
本文的串口通信设计包括下位机端的串口通信模块和上位机端的串口通信模块。
3.1 下位机的串口通信模块
下位机的串口通信模块通过串口完成与上位机的通信,在接到上位机数据请求后将采集的数据信息发送给上位机。
在设计中首先设定定时器T1 为串口波特率发生器,设定波特率为19200bps;上位机发送数据请求后触发下位机串口中断,为了能够快速的响应上位机的请求,减少上位机的等待,将串口中断的优先级设置为最高;下位机会优先调用通信模块响应该中断,通信模块首先判断请求消息是否正确,在确定是正确的请求消息后,从缓冲区中取出数据,封装成一条消息M 消息码R(如M01R),通过串口发送给上位机。
通信模块具备一定过滤及容错能力。
下面重点介绍一下串口通信模块的处理方式。
串口通信模块采用中断处理方式,每完整地接收到一个字符或发送完一个字符都会触发该中断,进入到相应的中断处理函数中。
中断处理函数涉及到接收和发送两个部分,因此在中断处理函数开始的部分就判断是接收引发的中断,还是发送引发的中断。
如果是接收中断,在接收中断中每接收一个字符都要判断,确定是否为上位机发送过来的请求消息,如果不是放弃当前接收到的内容,从头开始接收;如果是,则响应上位机的数据请求,将接收态改为发送态,然后向上位机发送通信缓冲区中的第一个字符,每发送一个字符会产生中断,在下次中断中再发送下一字符,按此过程直到发送完毕。
3.2 上位机的串口通信模块
上位机的串口通信模块通过串口向下位机发送请求信息,处理下位机返回的数据信息,并将其发送给处理这些信息的行为模组。
这一过程是循环执行的。
该程序是与下位机协同工作的唯一接口,是联系界面和下位机的桥梁。
它的处理流程如图2 所示。
图2 上位机串口通信模块处理流程图
上位机的串口通信程序是通过调用Windows 提供的有关串口操作的API 函数完成的。
首先创建了基础串口类_base_com,在其中实现基本信息配置、打开、关闭串口等基础功能。
为了实现异步发送和异步接收,在_base_com 类的基础上派生出异步串口通信类_sync_com 完成异步的数据传输。
基类_base_com 的声明如下。
class _base_com //虚基类基本串口接口
{
protected:
volaTIle int _PORT; //串口号
volatile HANDLE _com_handle;//串口句柄
DCB _dcb; //波特率,停止位,等
int _in_buf, _out_buf; // 缓冲区
COMMTIMEOUTS _co; // 超时时间
//虚函数,用于不同方式的串口打开
virtual bool open_PORT() = 0;
void init(); //初始化
public:
_base_com()
{
init();
}
virtual ~_base_com();
/*基本参数设置*/
//设置串口参数:波特率,停止位,等
inline bool set_para();
//支持设置字符串"9600, 8, n, 1"
bool set_dcb(char *set_STr);
//设置内置结构串口参数:波特率,停止位
bool set_dcb(int BaudRate, int ByteSize = 8, int Parity = NOPARITY, int StopBits =
ONESTOPBIT);
//设置缓冲区大小
inline bool set_buf(int in_buf, int out_buf);
//打开串口缺省9600, 8, n, 1
inline bool open(int PORT);
//打开串口缺省baud_rate, 8, n, 1
inline bool open(int PORT, int baud_rate);
//打开串口
inline bool open(int PORT, char *set_str);
//关闭串口
inline virtual void close();
//判断串口是或打开
inline bool is_open();
//获得串口句炳
HANDLE get_handle();
};
异步串口通信类_sync_com 的声明如下。
class _sync_com : public _base_com
{
protected:
//打开串口
virtual bool open_PORT();
public:
_sync_com();
//同步读
int read(char *buf, int buf_len);
//同步写
int write(char *buf, int buf_len)
//同步写
inline int write(char *buf)
{
assert(buf);
return write(buf, strlen(buf));
}
};
4 Virtools 中行为模组的设计与实现
下位机通过串口传输的数据,经过上位机串口通信程序转换成Virtools 可以识别的消息,然后交由Virtools 中的行为模组进行处理,从而达到利用外部采集数据控制界面显示的目的。
4.1Virtools 消息发送行为模组
Virtools 消息发送行为模组对串口通信模块处理得到的数据信息进行重新封装,然后发送给消息解释执行行为模组。
消息发送行为模组是使用Virtools 提供的开发工具包中相关类的方法实现对信息的重新封装。
具体实现如下:
CKBeObject *beo = beh->GetTarget(); //获取消息发送目标
if(!beo)
return CKBR_OWNERERROR;
int *tab = (int *)beh->GetLocalParameterReadDataPtr(0); //获得本地变量操作句柄
CKMessageManager *mm = BehContext.MessageManager; //消息管理对象
int temp = GetMessage(BehContext) - '0'; //调用串口通信模块读取串口消息
mm->SendMessageSingle(tab[temp],beo); //调用消息发送函数发送已经封装好的动作消息
activeOutput_0 = TRUE;
4.2 消息解释执行行为模组
消息解释执行行为模组首先从当前的消息列表中获取消息类型,根据消息类型属性中指定的特定消息类型来判断当前到达的消息是否为该特定消息,并根据判断结果调用不同的处理模块。
具体的处理流程如图3 所示。
图3 消息解释执行行为模组流程图
利用Virtools 中行为模组的回调机制,循环调用该行为模组。
在界面切换时检测一下消息,判断是否与属性中设定的动作消息一致。
如果一致,则向动作控制行为模组发送激活消息。
4.3 动作控制行为模组
动作控制行为模组主要使用Virtools 自带的行为模组,像按键响应行为模组、脚本的控制行为模组等。
另外为了控制外部媒体文件的播放,还利用了Virtools 中加载资源文件、播放资源文件的行为模组。
动作控制行为模组接收到消息解释执行行为模组发送的激活信息,就会调用相应的行为模组完成界面的输出。
5 结论
本文从工程应用的角度,给出了基于Virtools 和串口通信的界面交互性的设计方法,并给出关键部分的设计思路和方法。
该设计方法具有一定的通用性,可应用于其它需要用户界面交互设计的应用系统中。
本文作者创新点:串口通信下,采集下位机(单片机)传递的信息,运用Virtools 的行为模组进行实时处理,实现了人机界面的交互。
这一设计也为其他人机界面交互性的实现提供了一种新的思路。