GUI设计范文

2024-05-06

GUI设计范文(精选12篇)

GUI设计 第1篇

图形用户界面,简称为GUI,是指采用图形方式显示的计算机操作环境用户接口。它借助菜单、按钮等标准界面元素和鼠标操作,帮助用户和计算机之间进行交互[1]。GUI的出现使用户摆脱了命令,使得操作更为直观、形象。在现代计算机软件的开发过程中,GUI设计的占了整个软件开发工作量的大部分,同时GUI设计的好坏直接影响产品的市场竞争力。GUI自出现之日起就吸引了各大操作系统生产商的大力投入,随后的GUI产品展现出百家争鸣的局面。可惜由于种种原因,在竞争中生存下来并且取得发展的GUI操作系统却只有少数,微软的Windows系列和起源于UNIX的X Window便是其中的代表。

2 W2LGUI转换系统

一般来说,GUI应用程序依赖于某种特定的操作平台,目前也出现了一些跨平台的开发工具,可以忽略操作系统平台的差异,实现程序的多平台使用,大大提高了代码的复用性和可移植性。但是仍然有大量的GUI程序代码是基于Windows平台下特有的MFC类库等编写的。而在Linux平台下GUI程序大多基于Xlib以及一些X Toolkit,如GTK,QT,Wx Widgets等第三方GUI库工具。本文目标就是实现这些既有的MFC GUI程序向Linux下Wx Widgets环境的代码转换,并在Linux平台进行编译运行。本文设计了一个转换工具,命名为W2LGUI(Windows to Linux Graphical User Interface),用以实现代码转换的目的[2]。

W2LGUI是在Visual C++6.0环境下开发的,可以运行于Windows平台,在Windows平台下进行代码的转换工作。经过转换后的目标代码,原封不动或者经过很少的修改,就可以在Linux上重新编译,避免了跨平台代码移植造成的人力、物力上的浪费,能够带来很大的经济效益。同时由于GUI程序开发者不再需要学习其他跨平台开发工具的使用,也减少了程序开发者的负担。

W2LGUI转换后的代码可以能够提供本地外观。经过W2LGUI转换的代码不止可以运行于Linux平台下的Wx Widgets环境,还可以运行于Visual C++与Wx Widgets(Windows版)绑定后的开发环境,用户可以在同一平台上转换并预览界面。

本W2LGUII程序包括以下主要部分[3]:

(1)应用程序对象——即CW2LGUIApp类的实例。

(2)框架窗口对象——采用五个模态CDialog对话框。分别是一个CW2LGUIDlg类的实例,一个TRSCPPDlg类的实例,一个TRSHDlg类的实例,一个TRSRESDlg类的实例,一个Other Add Dlg类的实例。它们分别包括文本、按钮等控件。

W2LGUI所采用的体系结构如图1所示。

W2LGUI主要包含两大类:W2LGUIApp类和5个对话框类。重点阐述CW2LGUIDlg类、TRSCPPDlg类、TRSHDlg类、TRSRESDlg类和Other Add Dlg类。具体内容在模块部分介绍。

主窗口是CW2LGUIDlg类的实例,主要实现的功能是调用其他模块进行工作和退出程序的运行。Cfile Example Dlg类使用4个调用函数:On Button Cpp(),On Button H(),On ButtonRes()和On Button Addother(),它们分别对应着按钮“CPP源代码转换窗口”,“H源代码转换窗口”,“资源文件转换窗口”和“添加其他文件支持”。

Cfile Example Dlg的5个调用函数均使用对话框类的DoModal()功能实现各自对话框的调用。

此窗口是TRSCPPDlg类的实例,主要实现CPP源码的代码转换。TRSCPPDlg类有3个调用函数和1个Edit Box控件成员。其中3个调用函数分别是On Read(),On Write()和On Button Trs()。On Read()用以读取CPP源文件,并显示到Edit Box控件中;On Write()用来保存Edit Box控件中显示文件;On Button Trs()用来进行代码转换并将目标代码显示到Edit Box控件中。三者之中On Button Trs()函数是关键部分。

由前面MFC视图/文档结构可知,源MFC单文档应用程序的CPP文件一般有(以下*表示GUI程序名):*.cpp,Main Frm.cpp,*Doc.cpp,*View.cpp和Std Afx.cpp。下面针对这些CPP源文件来阐述On Button Trs()的功能。

Std Afx.cpp中只有一行代码:

而stdafx.h定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。而目标代码需要的是在linux平台的参数,Wx Widgets的wx.h文件正好可以取代stdafx.h的作用。在处理Std Afx.cpp的时候On Button Trs()只是实现以下功能:

#include"stdafx.h"转换成:#include"wx.h"

在这里以*表示主程序的名称,主程序源文件即为*.cpp。在*.cpp的预处理语句部分,前文提到目标代码需要一个额外的wx Text Ctrl派生的文本控件提供窗口的编辑功能和文本控制,所以需要一个My Text Ctrl.h。

关于new操作符的定义部分“#ifdef_DEBUG…”可以删除掉,因为Wx Widgets的库函数中也有自己的new和delete操作符。

接下来是定义消息映射表的宏[4]:

而在Wx Widgets中也有类似的事件映射宏来实现相应的功能:

然后是应用程序的入口点,在前面提到过,源代码使用:

余下的源代码就是C*App类的构造函数和初始化函数。目标代码需要wx Doc Manager属性来处理在初始化方法On Init()中创建的模板,所以目标代码的构造函数需要使用语句:

而且要增加一个函数:

至于初始化函数部分在上一章中已经有阐述,主要要注意其中使用的MFC类要转换成相应的Wx Widgets,具体实现方法这里就不赘述了。

在Windows平台的Visual C++环境中,不需要任何的更改就可以直接运行转换后的目标代码。但是在Linux下编译则不同,因为Linux下没有工程文件,所以某些配置需要在预定义头文件中用代码加上[5]。还有就是所有的代码文件必须在文件结尾有一个空行。这是Linux编译器的要求。

接下来进行编译的时候需要一个Makefile文件。写好makefile后放到目标代码目录下,然后在此目录下运行make命令就可以了。

3 W2LGUI容错性设计

容错是指在发生硬件故障或存在软件错误的情况下,仍能继续正确完成指定的任务。设计与分析容错系统的各种技术称为容错技术。有关计算机容错技术的各种理论及研究已经发展成为计算机学科的一个重要分支,称为容错计算(Fault-tolerant Computing)。设计容错系统的指导思想是:系统发生故障时能自动检出并使系统自动恢复正常运行[6]。

代码转换系统的操作不当可能引发生成目标代码的错误,导致目标GUI程序不能跨平台编译。为保证系统具有高可靠、长寿命和响应迅速的特点,必须采用容错技术。一般来讲,容错系统并非是独立于各子模块之外的又一模块,而是在各子模块的代码都有故障或错误检测模块。故障检测模块对用户的操作进行检测,检测到故障后由故障处理模块对用户的操作错误进行提示,引导用户正确进行操作。

为了提高软件的健壮性,有效地预防错误,把握住软件的“入口”是一个有效的途径,在用户输入界面设计采用以下容错原则预防错误:

(1)输入界面的标题要有意义,含义准确并易于理解;界面设计所用的词法、语法前后保持一致,尽可能使用相同的动作序列、分隔符和缩写符。

(2)尽可能减少用户输入,能够通过下拉菜单或者下拉框尽量选择下拉输入,同时封闭键盘的操作。程序运行过程中,有些数据是固定的或有个默认值,系统应提供默认确认缺省值,减少用户输入。

(3)用户的操作应有提示,必要时提供相应的模板;高亮显示当前的输入字段,并有字段长度限制,必须输入的字段应有标识提示。

4 实验分析

本软件使用的是Visual C++6.0开发平台。Visual C++6.0是Microsoft公司开发的基于C/C++的集成开发工具,它是Visual Studio中功能最为强大。代码效率最高的开发工具。根据通用跨平台代码转换的实现方法,通过用一个基于MFC单文档视图程序为例展示工具的功能[7]:首先是针对源代码进行Windows平台下的代码转换工作。源程序也是在VC 6.0环境下开发的,命名为“Portme”,源文件列表和运行结果如图2和图3。

然后再到Linux平台下进行编译,在Windows平台的Visual C++环境中,不需要任何的更改就可以直接运行转换后的目标代码。然后将写好的makefile放到目标代码目录下,然后在此目录下运行make命令就可以了。运行结果如图4所示。

5 结语

介绍了开发跨平台转换工具的的硬件和软件环境,并对软件开发平台做了详细的介绍,最后以一个单文档视图程序为例使用该工具进行代码转换,并在Linux操作系统中编译运行。主要从理论和具体实现两个方面进行了阐述,首先分析了Windows和Linux两个不同平台的GUI结构差异;然后对比了一些主流的跨平台开发、移植方法;随后基于代码重构的思想,以GUI结构差异为切入点,提出一种GUI代码转换工具W2LGUI的设计方案,并详细介绍了W2LGUI的一些具体的代码转换功能。

参考文献

[1]熊凯.C++语言开发跨平台程序的研究与实现[A].电脑知识与技术,2005,12:127-128.

[2]李文强.MFC框架应用软件跨平台方案[A].计算机工程与应用,2005,11:83-85.

[3]RICHARD N T.A Component and Message-Based Architec-tural Style for GUI Software[J].IEEE Trans on Software Engineering,1996,22(8):390-406.

[4]ROHIT M,BEN S.Visual and Textual Consistency Checking Tools for Graphical User Interface[J].IEEE Trans on Soft-ware Engineering,1997,23(11):722-735.

[5]Julian Smart,Kevin Hock,Stefan Csomor.Cross-Platform GUI Programming.

[6]Plamen Paskalev,Vladimir Nikolov.Multi-Platform,script-based user interface.International.

GUI设计 第2篇

摘 要:GUI设计在嵌入式系统设计中占据着举足轻重的地位,MiniGUI为一种适合于嵌入式系统的、功能强大的GUI,本文介绍了基于ARM和Linux的MiniGUI移植方法以及在ARM开发板上实现普通手机操作界面的设计过程,并提出了相应功能的实现方法,给出了设计的效果。

关键词:嵌入式系统;ARM;Linux;MiniGUI

1、引言

目前,嵌入式应用非常广泛。嵌入式系统由硬件和软件两大部分组成。硬件方面的主要核心是嵌入式处理器,以ARM为核的32位RISC处理器是中高端嵌入式应用的代表。软件方面一般由嵌入式操作系统和应用软件组成。嵌入式操作系统种类众多,比如Linux、uCLinux,其具有开放源码、免费授权和资源丰富等优点,备受开发者的青睐。应用软件根据产品需求会用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能,其中,GUI对于提高人机交互友好性,易操作性具有很好的效果,而随着图形显示设备的广泛应用,目标产品对GUI的需求越来越多。

2、系统环境和构架

系统实现环境采用SmartARM2200开发板及运行在ARM上的uCLinux操作系统。

SmartARM2200开发板:CPU型号为LPC2210,内核规格为ARM7TDMI-S,60M,支持uCLinux操作系统[1] [2];上面带有充足的存储资源(PSRAM,NAND FLASH,NOR FLASH和E2EPRORM等)和丰富的接口(以太网接口、CF卡和SD卡接口,串口接口等),可使用2.2英寸240*320 TFT液晶屏,可使用JTAG仿真调试[3];

嵌入式Linux内核[4]:uCLinux嵌入式操作系统;

uCLinux开发平台的构建:

基于Linux嵌入式系统的设计,其开发流程为如图1所示:

图1 Linux嵌入式系统开发流程

图中,依次建立开发环境arm-elf-gcc,安装uCLinux内核,下载ZLG/BOOT,下载uCLinux内核和文件系统,为了调试uCLinux应用程序,将宿主机的共享目录加到开发板的/mnt目录下,并启动NFS服务。MagicARM2200-S主芯片为LPC2210,LPC2210芯片没有内部Flash,无法进行ISP下载,需要额外的DownLoad程序。

3、MiniGUI移植

在宿主机上安装MiniGUI:将MiniGUI函数库源代码和资源文件(MiniGUI-STR压缩包)复制到PC机的RedHat 9.0特定目录上,解压,编译。

在目标板的uCLinux操作系统上运行MiniGUI应用程序[3],需要:

1)由于不同目标机的图形显示设备与输入设备不一致,所以需要为MiniGUI编写相应的GAL和IAL(驱动程序),再于MiniGUI的源代码一起交叉编译生成MiniGUI的静态链接库文件(uCLinux不支持共享库,只能使用静态连接库); 2)MiniGUI应用程序也在宿主机上进行交叉编译,并与MiniGUI静态链接库生成目标板可执行的FLAT格式文件,交叉编译如图2所示; 图2 MiniGUI应用程序的交叉编译

3)在目标板的uCLinux操作系统上搭建MiniGUI运行环境(安装MiniGUI的资源文件res和运行的配置文件MiniGUI.cfg),将MiniGUI应用程序(FLAT格式)下载和运行。

根据系统要求,需安装MiniGUI资源文件,并修改运行时的配置文件MiniGUI.cfg。

4、系统设计与实现 4.1系统总体框架

基于SmartARM2200开发板,进行MiniGUI系统,并模拟手机显示部分主要功能:首页,图标选择界面,电话本,信息,游戏,其他等六大模块,系统总体框架如图3.1所示:

1)首页:具有显示静态封面图片,更改、显示时间等功能;

2)图形选择界面:提供一个以图标加标签文字的方式供用户浏览选择条目的界面;

3)电话本管理:提供记录姓名、手机、电话、地址等信息,并且可以添加、修改、设计适合手机键盘输入的拼音输入法程序,满足中文姓名,中文短信等汉字输入的需要,键盘布局如图3.2所示;

4)信息管理:提供编写新信息,浏览收信箱和发信箱等的操作界面; 5)游戏:提供一到两个单机游戏,比如贪吃蛇,俄罗斯方块; 6)其他:利用GUI绘图函数绘制几幅优美的图像,制作闹钟等;

图3.1系统整体框图图

图3.2键盘布局图

注:在主界面下,可以通过按左右键来进入图形选择界面,电话本管理和短信管理;在图形选择界面下可以通过选择不同的图标来进入不同的操作界面。

4.2 系统模块设计

4.2.1主界面功能的实现如下:

1)主窗口的创建部分[5]

InitMainWindow();

// 设置各项属性,并建立主窗口

ShowWindow(hMainWnd,SW_SHOWNORMAL);

// 显示主窗口

2)消息循环

while(GetMessage(&Msg,hMainWnd))

{ TranslateMessage(&Msg); DispatchMessage(&Msg);}

3)填充背景色和显示汉字

LoadBitmapFromFile(HDC_SCREEN,&mainskin,“res/skin2.bmp”);

FillBoxWithBitmap(hdc,0,0,MWINDOW_RX,283,&mainskin);

TextOut(hdc,30,295,“信息”); // 显示文字

其中资源图片一般在MiniGUI建立主窗口的过程中发送MSG_CREATE消息时加载(逻辑字体也在此时创建),而背景色的填充和汉字的显示则是在窗口初始显示,发送MSG_PAINT消息时绘制,而且必须在指定的设备上下文中操作:

hdc = BeginPaint(hWnd);

// 获得设备hdc

EndPaint(hWnd,hdc);

// 释放设备hdc

4)时间操作

在MSG_CREATE消息时,启动1s的定时器:SetTimer(hWnd,ID_TIME,100);在定时器消息MSG_TIMER中获取当前时间,并显示出来。

4.2.2图形选择界面的功能实现

当有键盘按下时,系统会发送MSG_KEYDOWN,处理此消息时,通过判断按键方向,确定当前选择的图标,当选择图标发生变化时,即用背景色重绘原有边框,用另一种颜色绘制新的边框,并将标签文字重写在右下角的位置。

4.2.3电话本管理模块完成的功能:

1)显示电话本名单,通过上下键移动可选中不同的名单,同时显示其电话号码;

2)选中一个名单时,可以查看其详细信息(姓名,手机,固话,住址,排序,类型等),并且可以编辑修改;

3)当选中“新建”时,可以创建一个新的电话名单和其详细信息;

4)姓名和住址的编辑支持中文拼音输入法,通过2~9按键上标注的26个字母组合,可以输入常见的汉字。

电话本管理模块的实现方法如下:

1)电话本列表框实现:

{CTRL_LISTBOX,//列表框控件定义:

WS_VISIBLE WS_VSCROLL WS_BORDER LBS_NOTIFY,//LBS_SORT,//

L

BS_AUTOCHECKBOX,1,0,238,263,ID_PhoneList,”“,0,}

在初始化和更新条目时需要填充列表框,清空列表框和填充函数分别为:

SendDlgItemMessage(hWnd,ID,LB_RESETCONTENT,0,0);

SendDlgItemMessage(hWnd,ID,LB_ADDSTRING,0,(LPARAM)myphonenote[i].name);

更改选择条目字符串和更改反白条位置的函数分别为:

SendDlgItemMessage(hwnd, ID, LB_SETTEXT,index,buff),SendDlgItemMessage(hwnd,ID,LB_SETCURSEL,index,0L);

2)条目明细——查看框

分别创建相应的静态框和编辑框,列表框,并填充相应的值即可。

3)条目明细——编辑框

初始化时把光标赋予姓名框,备份当前的条目信息。

SendMessage(hwnd,EM_LIMITTEXT,10,0L);

4)拼音输入框

拼音输入法实现了手机电话本的修改维护和信息的编写,它不仅窗口比较多,切换频繁,而且需要汉字字库和键盘编码译码的支持,显示界面实现的难度比较大,其实现框架图如图4所示:

图4 拼音输入法界面

5、系统实现

经过交叉编译,通过FTP或NFS,和MiniGUI的资源文件、配置文件一起下载到构架好uCLinux操作平台的ARM板,重启运行,程序在开发板上运行时部分界面效果比较理想,如图5所示:

图5 运行结果

参考文献:

GUI外观设计保护现状各国要览 第3篇

在数字时代,随着全球经济一体化的加剧以及网络技术的发达,通讯工具以及其相关的数码技术产品在全球具有广泛的受众。对电子产品用户界面(GUI)进行外观设计保护在近年已成为一种趋势,IT业相对发达的国家和地区,如美国、欧盟、日本、韩国,不管是通过单独的外观设计立法,或将传统的专利法重新阐述,不管是对外观设计授权进行实质审查,或仅仅是形式审查,都先后建立了产品界面外观设计保护制度,并逐渐将静态的计算机图标的保护扩大到动态的动画图案。 中国的专利法具体条文中没有涉及电子产品的GUI的外观设计保护问题。不过,中国的实务部门在审查实践中已经意识到这一问题的重要性,2006年出台的《专利审查指南》明确地把电子产品通电后的图标排除在保护范围之外。2010年又再次沿袭了这样的一个规定。这与国际潮流不符。本文下面对美国、欧盟、日本、韩国等国家电子产品外观设计的知识产权保护问题进行了比较研究,以期对中国将来的立法有所帮助。 美国 美国主要以专利法的方式对外观设计进行保护。与中国不同,美国对外观设计进行实质审查,并允许对同一客体进行可能的多种知识产权的重叠保护。对于外观设计的保护体现在现行专利法的第16章下的第171到173条。 美国对计算机用户界面的外观设计保护可以追溯到上世纪80年代中期。其动力来源于企业需求。当时Xerox公司就几项计算机软件图标进行了外观设计申请,并且获得了成功。下图中关于电话图形的外观设计申请及授权(授权号为D295764)即为一例。 图为美国专利局授权的D295764专利 这一新的保护模式受到了美国专利代理律师的普遍关注,但并非一帆风顺。美国专利局很快收到了意见和反馈,尽管大多数人对于专利局的做法表示支持,但也有人认为用外观设计对计算机图标进行保护是对于传统的著作权保护专有领域的侵蚀。基于这种疑虑,专利局开始对于类似的计算机图标的外观设计申请拒绝受理。1989年,美国专利局局长明确地表示由于不属于外观设计专利保护客体,软件的图标不能受到外观设计的保护。之后,Xerox公司的几项申请受到驳回。其中包括1989年1月26日提出的申请序列号为07/303608的一个关于计算机程序的屏幕图标的申请。Xerox公司提起复审。专利复审委员会于1992年1月听审之后,4月份做出了对于美国GUI保护产生深远影响的Ex parte Strijland裁定。 在这一裁定中,专利复审委员会认为,Xerox公司的申请没有指出特定的工业产品,因而不符合专利法的171条的规定;而且对于申请的说明不够清楚和明确,从而也不符合美国专利法第112条的要求。反过来说,这一裁定的重要意义在于专利局事实上肯定了计算机程序的屏幕图标,如果进行了准确地描述,是可以作为与计算机硬件不可分离的一部分,作为计算机的外观设计而受到外观设计专利保护的。 此后,美国专利局对于计算机图标申请外观设计的态度发生转变。1996年7月颁布的美国《专利审查指南》第2次修改版中在外观设计的客体部分,专门增加了“计算机生成图标的审查指南”一节。并且在这一段内容之后指出,1996年4月之前还没有被确权的所有的类似的申请,都依据新的审查指南来进行。尽管“计算机图标”与“用户界面”并不是同一个概念,但“计算机图标”是用户界面的基本组成元素。“图标”受到外观设计法的保护,意味着“用户界面”受到外观设计保护的大门已经打开。 不仅如此,在审查指南中明确保护静态的屏幕图标约10年之后,美国在专利审查指南中再度确定动态图形也可以受到外观设计专利保护。下图授权号为D530339的外观申请专利即为一例(这是一个动态的表明手机接到电话的图标)。 美国现行专利指南中对计算机生成图标(Computer-Generated Icons)的外观设计申请给出了专门的指引。指南首先指出了满足专利法第171条下“工业产品”要求的一般审查原则。根据美国专利复审委员会的在先判定,“单纯的计算机生成图标本身只是平面装饰”,但是体现在工业产品中的计算机生成图标构成171条下的外观设计的保护客体。因此,如果外观设计申请中的计算机图标是显示在计算机屏幕,显示器,其它显示平台上,或者显示在其中的一部分上,那么这样的申请就满足了第171条下的工业产品的要求。由于授权的外观设计必须和其适用的工业产品不可分离,而且不能作为一个平面装饰的设计而单独存在,因此计算机生成图标必须体现在计算机屏幕、显示器,其它显示设备中或者这些设备的一部分中,以满足第171条的规定。 美国2006年7月份修订的专利审查指南中增加了“可变的计算机生成图标”(changeable computer generated icons)。根据这一规定,即使在观察过程中外观有变化的计算机生成图标,也能够受到外观设计的保护。这样的申请的权利要求可以显示在两个甚至多个的视图中,只要这些视图应该按照显示的顺序排列,并且从一个视图到下一视图的过程中没有包含装饰性的特征。 有专家指出,Verison通讯公司以及微软等公司申请的动态图标外观设计申请可能是美国专利局支持这一改变的动因。事实上,在美国专利局允许动态图标成为外观设计保护的客体之后,这些公司也是最为积极的申请者。截至2009年的数据表明,在近百个专利局授权的动态图标外观设计申请中,有70多个申请来自微软公司。可以认为,美国对GUI的外观设计保护迎合了企业的需求。 对GUI,除了以外观设计进行保护外,美国并不排除其可能的收到著作权、商标权、商业外观等知识产权重叠保护的可能。因而同样的GUI,在美国有得到多方位更全面保护的可能。当然,美国现实的问题是,由于把外观设计保护涵盖在专利法之下,而且以专利授权标准来看待外观设计授权,多少与外观设计的本质背离。这在一定程度上会造成“GUI保护重在其美感的那一面,还是与技术结合的功能性相关的那一面?”的困惑。 欧盟 为使欧盟成员国之间进行人员与货物的自由流动,欧盟一直在尝试进行知识产权立法领域的统一。1998年,欧盟出台《欧共体外观设计保护指令》。2001年,欧共体委员会颁布了《欧共体外观设计保护条例》。该条例创立了“共同体外观设计权”,并引入了非注册式共同体外观设计(Unregistered Community Design,UCD)和注册式共同体外观设计(Registered Community Design,RCD)。根据该条例,申请人提交一份申请就可以在整个共同体内获得外观设计保护,并且在所有成员国具有同等权利。 欧盟的《外观设计条例》对于外观设计(Design)和产品(Product)给出了明确的定义,其中第3条a款规定:“外观设计”是指产品的整体或者部分外观,这些外观是由产品的线条、轮廓、颜色、形状、质地和/或者由产品本身的材料和/或产品装饰等特征构成。 第3条b款规定,“产品”是指任何工业或手工制品,其中包括将组合成复合型产品的包装、装订、图表符号以及印刷字体,但不包括计算机程序。 从该定义可以看出:欧盟的外观设计强调保护的是“设计”,而不是产品本身;其次,图表符号(graphical symbol)被明确列为可受保护的产品范围,这为GUI得以获得外观设计的保护提供了立法上的支持。 欧盟《外观设计条例》规定,只有当外观设计符合新颖性(Novelty)和独特性(Individual character)时才能受到保护。根据其第5条,“新颖性”是指,没有完全相同的外观设计为公众所知晓。根据其第6条,“独特性”是指,如果见多识广的用户在浏览外观设计时的整体印象明显地不同于其在浏览任何公之于众的外观设计时的整体印象,则该外观设计被视为具有个性特征。 尽管欧盟在《外观设计指令》和《外观设计条例》中均明确了“产品”的定义,且具体指出了不予保护的产品类型,但并没有将对外观设计的保护扩张至对产品的保护上。也就是说,审查部门在审查申请注册人提交的外观设计申请时,关注的重点在于设计本身,而不关心其具体运用在哪种特定的产品上,外观设计是否能通过审查与作为承载其的载体是什么产品无关。《条例》第19条规定,注册式外观设计赋予权利人的权利并不局限于其申请时所附着的产品。 不过,产品的概念对于外观设计的独特性有影响。在判断独特性所要求的“整体印象”时,除了考虑设计者在设计时自由发挥的程度,还要考虑该项设计所应用产品的属性以及所属的产业类别。同时,《共同体外观设计审查指南》指出,“申请文件中还应当说明应用该外观设计的产品。申请人必须明确说明产品的性质,并将其按照洛迦诺分类法进行分类。”但该指南也同时声明,“审查员应当牢记,产品分类仅仅用于管理目的,并不影响共同体外观设计的保护范围。” 欧盟的外观设计的单独立法,而且对外观设计不进行实质审查,无疑是该制度最大的优势。但是,其对产品非常宽泛的定义的同时,明确将电脑程序排除在外。其目的何在,却引发诸多争议。如果其仅仅认为是已经有了专门的欧盟《软件保护指令》,而刻意要排斥重叠保护的话。显然以现行的立法不够简明,难免引发歧义。 日本 日本保护外观设计的专门法是《意匠法》。它独立于日本《专利法》,采取实质审查注册制度。获得注册的外观设计被称为“注册意匠”,申请人由此获得“意匠权”。这一法律成为日本外观设计保护制度的核心,沿用至今。 日本对于GUI的保护完全是国家对电子产业扶持的结果。自1980年代开始,日本的半导体产业在全球领先。随着带有液晶显示设备的家电产品逐渐普及,日本专利局制定了《对与产品屏幕显示图案有关之意匠的审查指南》,保护符合特定条件的图形用户界面(GUI)设计。1998年,日本对意匠法进行修改,引入了对产品部分外观设计的保护。如下图所示的电子表与手机界面都能受到意匠法保护。 根据日本专利局的解释,“显示屏上显示的图形设计”要想通过审查,得到意匠保护,需要满足三个要件: (1)该设计显示的是产品实现其功能所必需的内容。这要求设计与产品功能之间存在直接联系。如对图1的手表来说,显示时间与日期是实现其功能必需之内容;对图2的手机而言,这一控制面板所显示的,也是实现手机各项功能所必需的内容。 (2)该设计必须通过产品自身的显示功能进行显示。如果这一界面设计是通过外接显示设备显示出来,则无法落入保护范围内。排除了对如录像机、DVD机或其他必须外接显示设备,进行工作的产品之GUI的意匠保护。 (3)在显示的设计存在变化时,该变化必需遵循特定规律。如图1例中手表显示内容的变化形态,申请人在说明中,描述为“潮位、时刻与星期中的日子之变化显示”。 这三个要件极大地限缩了GUI的保护范围。事实上,专利局将过去能得到意匠保护的GUI归纳为:“通过产品自带显示设备显示出来的,与产品功能密切相关之初始选单的设计。”这一保护范围十分狭窄。 在21世纪的最初数年之中,日本政府就是否应当将GUI纳入外观设计保护范围的问题进行了多次讨论。知识财产研究所在平成13年(2001年)与平成15年(2003年)两次大型研讨后,认为应当修订意匠法,将显示图像纳入意匠制度的保护范围之中。平成14年(2002年)7月3日,日本“知识产权战略会议”发布了“知识产权战略大纲”,将修订意匠制度的任务提上了日程;并确定了“加强外观设计保护”的基本方针。2003年经济产业省主办的“设计活用战略研究会”中,也提议在意匠法中加入对“图像设计”的保护。在其领导和主持下,日本“意匠制度小委员会”召开了10次会议,对意匠制度的修订进行了讨论。最终整理出“关于意匠制度的理想状态”报告,对法律修订提出了具体建议;其中包括对保护客体“意匠”进行重新定义,将GUI纳入《意匠法》的保护范围之内。 这一提议最终得到了立法机关的承认。平成18年(2006年),日本《意匠法》修订,在原有保护范围的基础上,增加了对“含有图像的外观设计”之保护。 根据日本专利局最新版的《意匠审查指南》,能够落入这一保护范围的外观设计需要满足几个要件: 显示该GUI的产品必须符合日本《意匠法》的“物品”定义。 显示在产品上的GUI,必须是为使产品实现其功能的图像。 该图像必须预先储存在产品之中。排除了如电视节目、通过网络传输的图像、与产品共同使用的其他产品所输入的图像中所包含的GUI;事实上一切储存在外部存储介质,或在产品生产后才储存进产品中的图案都被排除在外。同时,还明示排除了与计算机独立创作的软件之GUI,以及与游戏机独立创作的游戏软件之GUI。 该图像必须与产品共同使用。与产品共同使用的范围,包括通过产品自带的显示功能进行显示,以及通过与该产品共同使用的显示设备进行显示。前者的范围与日本自80年代末以来一直给予保护的范围相同。后者则将保护范围扩大到了如影碟机等,必须要依靠外接显示设备才能发挥功能的产品,通过共同使用的显示设备所显示出来的GUI;但受保护的图像依然以发挥产品功能的图像为限。例如: 由此可见,相对美国与欧盟,日本对GUI的保护限制严格。并非所有的GUI都能受到意匠法的保护。只有符合“意匠”定义的,对实现产品功能起作用的,与产品紧密结合在一起的GUI才能受到保护。这与其产业战略的实施紧密相关。 韩国 韩国对于外观设计的保护也是单独立法。90年代,韩国电子产业在消化吸收国外先进技术的基础上迅猛发展,并逐步具备了自主研发的能力。为保持其在电子通讯等相关产业的技术优势,韩国逐步加强了知识产权的保护。其中包括2003年对外观设计法进行修正,用外观设计来保护显像设计(包括GUI)。 韩国的显像外观设计的保护范围包括: 1、图形用户界面(GUI),例如: (1)韩国特许厅网页、仁川机场网页等的 Web Site GUI。 (2)文字输入软件、Windows Media Player等的应用软件的S/W GUI。 (3)体现于移动电话、PDA、Web Pad等的 Mobile GUI。 2、插图(ICON) (1)文字图标、Internet Explorer图标等的Application Icon。 (2)作为单物品或组套的工具的Icon。 (3)作为图形用户界面的组成要件的GUI Icon。 (4)非编码图形(graphic image):A、Character的图示设计;B、电脑显示屏保护器;C、Character;D、构成Abata的Item组套;E、3D动画片; F、为了表示各种机能的状态的表示(表示电池的剩余量,表示接收状态,表示各种dipstick等)。 在审查过程中,GUI应该表现在实际物品上,局部或整体均可;应与产品使用相关;此外,动态的GUI在韩国也受到保护。可见,韩国对于GUI的保护范围远超过日本。对门户网页进行外观设计保护在全球范围内也罕见。 韩国保护显像设计是意识到其在数字时代的重要性。韩国官方认为,第一,显像设计能提高信息传达的效率。显像外观设计是为了表示多功能单一产品的操作以及操作状态,在有限的空间里将大量信息传达给用户并有效使用。 第二,能简化操作方法。其代表性的有显像外观设计要素之一GUI,各功能的命令或程序从现有的文本输入方式正转换为利用显像外观设计的一次、二次结构的单纯选择方式。 第三,能提高展示形象的审美性。考虑利用形象的受众,表达普通消费群共识的审美意识,现在的显像外观设计显示的是设计师的主观审美意识以及在形象中导入的产品个性。 韩国对于GUI的保护完全是产业利益驱动。其保护模式并非以法律来带动产业发展,而是产业发展到一定阶段,甚至是在全球具有优势之后,寻求政府进一步扶持,而用法律巩固其既有优势的结果。韩国的这一做法在现实中成效明显。三星,LG等韩国企业在全球的市场份额逐渐做大,已经成为全球知名的跨国企业。韩国企业的崛起引发了美国竞争对手的忧虑。去年底以来的苹果和三星之间就智能终端的外观设计仿冒之战就是一个最好的明证。

nlc202309021848

GUI设计 第4篇

关键词:跳频OFDM,图形用户界面,仿真设计,误码率

0引言

跳频技术具有良好的抗干扰、抗截获、抗衰落性能, 特别是在军事无线战术通信领域有着广泛的应用。传统的跳频系统一般采用非相干解调的MFSK作为数字基带调制方式, 优点就是能够通过降低对硬件速度的要求来降低硬件复杂度, 但是这种调制方式的致命缺点就是频谱利用率低, 难以实现高速的数据传输速率, 这一缺点使得跳频技术很难适应未来的信息化、数字化高速数据传输的要求。

OFDM调制是一种高效的数据传输方式, 通过串/并变换将高速数据流分散到多个正交的子载波上传输, 一方面使各个子载波的符号率大幅降低, 相应的符号持续时间变大, 减少符号间干扰的影响, 有较强的抗时延扩展能力;另一方面信号的并行传输分散了信道衰落引起的突发性错误, 提高了系统的抗干扰错误的能力。由于各子载波的相互正交, 因此允许子载波频谱混叠, 充分利用有限的资源, 使得其频带利用率高于传统的FDM (频分复用) 调制方式。

图形用户界面 (Graphical User Interface, GUI) 是由窗口、光标、按键、菜单、文字等对象 (Objects) 构成的一个用户界面, 可以简单、便捷地设计出美观、方便的菜单化和控件式的人机交互界面。

本文基于Matlab中的GUI设计了跳频OFDM系统, 界面设计友好, 能够动态地改变系统参数进行仿真, 结果显示该设计系统能够很好地进行实时仿真, 实用性较强。

1跳频OFDM系统原理

跳频OFDM系统原理框图如图1所示。

在发射端, 输入数据首先经过信源编码, 将输入s (t) 变换成二进制数据s (k) , 将得到的二进制数据进行MASK调制, 得到sMASK (k) , 然后进行OFDM调制。

在进行OFDM调制时, 先对sMASK (k) 进行数字映射, 变换成dn, 然后进行串/并变换, 进行IFFT变换得到:

sk=i=0Ν-1diej2πikΝ, k=0, 1, 2, Ν-1

式中:N是子载波数。然后进行跳频调制, 主要由跳频序列产生器、频率合成器和混频器组成, 假设在一个跳频点发送一个OFDM调制符号, 则经过混频后的输出为:

s (kΤ) =skcos (ωikΤ)

式中, ωi为跳变频率, T为OFDM符号周期。

最后经发射端发射。

在接收端, 经过与发射端相反的过程恢复原始信号, 同时要考虑系统的同步[1], 首先是进行跳频解调, 然后是OFDM解调, 最后是信源解码, 输出接收信号。文献[2]中指出, 在跳频系统中应用OFDM技术, 如果在一个跳频点上发送一个OFDM符号时, 只存在ICI和高斯噪声, 不存在ISI, 所以不需要加入保护间隔就可以保证信号功率不受损失, 信息传输速率不受影响。

2跳频OFDM系统的仿真设计

用Matlab中的GUI来设计跳频OFDM通信系统, 最基本的一点就是要明白Matlab系统中图形对象的树形结构。Matlab系统内部使用对象语言描述各种图形单元, 并将这些图形单元按照树形结构组织起来进行管理和实施各种操作。计算机屏幕作为该结构的根, 它的一级树节点是图形窗口对象;二级节点同样是图形窗口对象;三级节点即图形窗口的子对象用户界面控制元和用户界面菜单等[3]。本系统主要包括两个界面:开始界面和仿真界面, 由开始界面进入仿真界面, 仿真界面可以根据不同的需求通过动态地设置参数来进行仿真, 操作简单、方便, 为操作者提供了一个良好的人机交互方式, 单击帮助可以查看相关的内容和操作说明, 并且已经编译成.exe的可执行文件, 在没有Matlab的情况下, 也可运行。仿真界面如图2所示。

本系统仿真界面可以大致分为3部分:参数设置部分、仿真演示部分和系统操作部分。参数设置部分主要是用来设置跳频OFDM的相关参数, 点击每个按钮都会出现相应的参数设置图形, 部分参数设置如图3所示, 可以通过直接输入参数来改变系统的状态, 每个参数设置图形都有默认值, 可以不输入任何信息, 系统也可以按默认的设置来进行仿真。系统操作部分主要是进行系统的仿真运行、结果分析、信息帮助、返回上一级菜单和退出系统等。

仿真演示部分是本系统的主要部分, 用来演示跳频OFDM系统, 将参数设置好以后, 点击运行, 仿真开始, 用红色显示运行的进度, 当所用的模块都成红色后, 系统就运行结束了。可以通过点击每个按钮来查看各个模块相应的输出信号。

3系统仿真及分析

鉴于上面所述, 本文对跳频OFDM进行了仿真, 参数设置如下:时间为0~2π, 信源输入信号为sin t+cos 2t-cos 3t+sin 4t, 信道编码采用差分脉冲编码, 设置k=3, OFDM的子载波数N=128, IFFT变换点数为1 024, 跳频序列产生器的初始状态设为[1 0 0 1 0], 反馈系数设为75, 可以产生31个跳频点, 频率合成器采用间接式频率合成, 设压控振荡器的频率为1 000 Hz, 固定分频系数为100, 信道中加入高斯白噪声, 信噪比为5 dB, 假设系统接收时跳频序列, OFDM解调均与发射时同步, 运行系统, 可以得到仿真结果如图4~图9所示。

从结果可以看出, 跳频OFDM的仿真系统对于给定的输入信号, 可以很好地经过OFDM调制和跳频调制来传输, 而且从误比特率曲线可以看出, 该系统的性能也较好, 在低信噪比的情况下, 误比特率不是很高, 随着信噪比的增加, 误比特率下降很明显, 当信噪比在10 dB时, 就很接近于零了。

4结论

本文通过Matlab中的GUI设计了跳频OFDM通信系统, 能够直观地显示出信号在通信系统中各部分的时域波形, 有利于理解和掌握完整的跳频OFDM通信系统概念。由于实际的通信系统是一个功能结构相当复杂的系统, 对系统做出的任何改变 (如改变某个参数的设置、改变系统的结构等) 都可能影响到整个系统的性能和稳定。因此, 在对实际的通信系统做出改进或建立一个新系统之前, 通常需要对这个系统进行建模和仿真。通信仿真是研究通信系统的重要方法之一。通信仿真的设计方法灵活多变, 掌握了其设计方法, 对通信系统的仿真研究能够打下一个坚实的基础。

参考文献

[1]畅志贤, 张海林.FH-OFDM通信系统的同步[J].山西电子技术, 2006 (1) :34-35.

[2]冯红勇.OFDM技术在跳频通信系统中的应用研究[D].西安:空军工程大学, 2007.

[3]文化锋, 李斌, 曾兴斌.基于Matlab的FHSS通信系统设计与实现[J].实验室研究与探索, 2006 (10) :1246-1247.

[4]刘嘉, 冯红勇, 李彦.一种基于OFDM技术的跳频通信系统[J].微计算机信息, 2008, 24 (2) :176-177.

[5]刘耀宇, 张海林, 郭勇, 等.一种用于FH-OFDM通信的基带调制方式[J].山西电子技术, 2006 (6) :7-8.

[6]曾菊玲, 金力军.OFDM跳频通信系统设计[J].移动通信, 2004 (7) :155-158.

[7]唐向突, 岳恒立, 郑雪峰.Matlab及在电子信息类课程中的应用[M].北京:电子工业出版社, 2006.

[8]陈垚光, 毛涛涛, 王正林, 等.精通Matlab GUI设计[M].北京:电子工业出版社, 2008.

[9]李显宏.Matlab 7.x界面设计与编程技巧[M].北京:电子工业出版社, 2006.

GUI设计 第5篇

图形化界面基本设置:

设置窗体大小:setSize(长,宽);

设置窗体位置:setLocation(距离左,距离上);setBounds(长,宽,距离左,距离上);设置布局:setLayout(new FlowLayout()); 使窗体可见:setVisible(true); 事件监听机制:

事件监听机制的特点: 1,事件源。2,事件。3,监听器。4,事件处理。

事件源:就是awt包或者swing包中的那些图形界面组件。事件:每一个事件源都有自己特有的对应事件和共性事件。

监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。

以上三者,在java中都已经定义好了。直接获取其对象来用就可以了。

我们要做的事情是,就是对产生的动作进行处理

Eg:编写程序,练习图形化界面编程!import java.awt.*;import java.awt.event.*;import java.io.*;class MyWindowDemo { private Frame f;private TextField tf;private Button but;private TextArea ta;

private Dialog d;private Label lab;private Button okBut;

MyWindowDemo(){ init();} public void init(){ f = new Frame(“my window”);f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());tf = new TextField(60);but = new Button(“转到”);ta = new TextArea(25,70);d = new Dialog(f,“提示信息-self”,true);d.setBounds(400,200,240,150);d.setLayout(new FlowLayout());lab = new Label();okBut = new Button(“确定”);d.add(lab);d.add(okBut);f.add(tf);f.add(but);f.add(ta);myEvent();f.setVisible(true);} private void myEvent(){

okBut.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

d.setVisible(false);} });d.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

d.setVisible(false);} });

tf.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){

if(e.getKeyCode()==KeyEvent.VK_ENTER)

showDir();} });

} but.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

showDir();

} });f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);

} });private void showDir(){ String dirPath = tf.getText();

File dir = new File(dirPath);

if(dir.exists()&& dir.isDirectory()){ ta.setText(“");String[] names = dir.list();for(String name : names){

ta.append(name+”rn“);} } else

{

String info = ”您输入的信息:“+dirPath+”是错误的。请重输“;

lab.setText(info);

d.setVisible(true);

} }

public static void main(String[] args){

new MyWindowDemo();} }

菜单:

MenuBar 菜单整体;Menu 包含于MenuBar中;MenuItem包含于Menu中!以上3个关系添加用add();

将MenuBar放进Frame中用setMenuBar();

FileDialog.LOAD:打开的mode FileDialog.Save:保存的mode 练习:一个简易的记事本 /** 写一个关于记事本的小程序 @author田建 @version v1.1 */

import java.awt.*;import java.awt.event.*;import java.io.*;class MyMenuDemo { private Frame f;private TextArea ta;private MenuBar mb;private Menu me;private MenuItem miNew,miSave,miLoad;private File file;

private FileDialog openDia,saveDia;

MyMenuDemo(){

init();}

public void init(){

f=new Frame(”田建--记事本“);

f.setBounds(300,100,650,600);

ta=new TextArea();

//ta.setBounds(302,105,400,300);//f.setLayout(new FlowLayout());//为什么设置成了流式布局之后再设置文本区域没有效果

mb=new MenuBar();

me=new Menu(”文件(F)“);

miNew=new MenuItem(”新建“);

miSave=new MenuItem(”保存(S)“);

miLoad=new MenuItem(”打开(O)“);

mb.add(me);

me.add(miNew);

me.add(miLoad);

me.add(miSave);

f.setMenuBar(mb);

f.add(ta);

openDia=new FileDialog(f,”打开文件“,FileDialog.LOAD);

saveDia=new FileDialog(f,”保存文件“,FileDialog.SAVE);

myEvent();

f.setVisible(true);

}

public void myEvent(){

f.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

miLoad.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

openDia.setVisible(true);

String dirPath=openDia.getDirectory();

String fileName=openDia.getFile();

if(dirPath==null||fileName==null)

return;

ta.setText(”“);

file=new File(dirPath,fileName);

try

{

BufferedReader bufr=new BufferedReader(new FileReader(file));

String line=null;

while((line=bufr.readLine())!=null)

{

ta.append(line+”rn“);

}

bufr.close();

}

catch(IOException ex)

{

throw new RuntimeException(”读取失败“);

}

}

});

miSave.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

if(file==null)

{

saveDia.setVisible(true);

String dirPath=saveDia.getDirectory();

String fileName=saveDia.getFile();

if(dirPath==null||fileName==null)

return;

file=new File(dirPath,fileName);

}

try

{

BufferedWriter bufw=new BufferedWriter(new FileWriter(file));

String text=ta.getText();

bufw.write(text);

bufw.close();

}

catch(IOException ex)

{

throw new RuntimeException(”");

}

} });

} public static void main(String[] args){

new MyMenuDemo();}

} 打jar包的过程:

1、编译包 jar –cvf jar名 包名

2、写一个文件main-class: 包名.类名【加个回车】

3、jar –cvfm jar名 文件名 包名

配置jar执行的过程:

GUI设计 第6篇

由于目前全世界的交通拥堵,打车越来越难。因此惊现出了许多打车APP来改善这一现状。本研究通过中国和韩国最常用的打车APP的GUI设计调查,并运用KANO模型分析后得出打车软件所需要的属性来提高软件的质量。首先,选出上海和釜山最具有代表性的三个打车APP,对每一个APP的GUI功能使用反馈进行调查。其次,使用KAN0模型在四个步骤:“叫车”,“等待”,‘上车”,“评价”对用户进行使用后满意度进行调查。最后,根据评估结果,对四个部分的GUI设计提出改善方案。

关键词:

打车APP KANO模型APP GUI设计

1 绪论

根据尼尔森(Nielsen)《2013移动消费报告》显示,在中国智能手机的使用率为66%,仅次于韩国,位居第二。据报告分析,年轻人更青睐使用智能手机。手机APP的出现给人们生活方式带来了便利的同时也改变了原来的生活习惯。例如嘀嘀打车,2011年在北京开始发展,经过一年的发展已经覆盖了15个一线城市。以北京区为例,目前有37462辆出租车使用嘀嘀打车抢订单,每天订单数量约为4万,平均订单成功率为78%,比路边打车更节约时间,比传统叫车成功率更高。据统计目前中国一共拥有28款专注于打车服务的软件。然而,打车软件如此高频率的使用,但不是很完善。本文的主要目的是通过KANO模型的方法,得出产品的不同属性,从而提高用户使用的满意度。本文以打车软件为例,对中国和韩国的三个打车软件先进行访谈调查,使用KANO模型调查分析后,对现有的打车软件GUI设计做出改善,并为未来打车软件GUI设计提出方案。

2 理论背景

2.1 手机APP的发展

App是application的缩写,通常指手机上的应用软件。移动电信技术的成熟,3G网络的不断推广以及移动设备硬件技术的发展,各种移动终端用户群体有了显著的增加。[1]以苹果公司的App Store为例,苹果公司在2008年推出App Store,最初只有500个不到的APP应用程序,2013年底在线手机APP数量已经迅速增加到超过100万,累计下载次数高达500亿次,且这个数字还在飞速增长。[2]从发展趋势来看,智能手机将完全替代传统手机,消费者将越来越依赖手机APP,消费者在APP上花费的时间将超过PC和电视上的时间。

2.2 GUI的定义

图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的程序命令相比,在接受到用户的指令或者系统的指令后,GUI会通过图形的方式来引导用户和计算机软件进行交互[3]。图形界面方式可通过窗口,菜单,图标等方式进行操作,为用户提供清晰、直观、友好的界面操作环境[4]。

2.3 KANO模型定义

KANO模型是由东京理工大教授狩野纪昭(Noriaki Kano)创建的。KANO模型把产品质量按照顾客的感受以及满足度,把顾客需求分为六类,“必须”,“期望”,“刺激或惊喜”,“中性”,“负面”,“不确定”。根据这些属性来开发产品就能提高用户的满意度。

3 KANO模型在案例中的运用

3.1 基于KANO模型对于打车软件案例调查

首先,本研究对六所大学的学生进行了使用打车软件后的用户满意度调查,其中包含上海学校和韩国釜山的学校。经过调查和访谈,得出打车软件的优点和缺点,归纳总结并设计27组对立的问题作为调查问卷。

KANO模型被用于评估使用者满意度和用户对产品属性的期望,用户对于产品操作分为四个步骤进行满意度和期望值调查和评估。四个步骤为:“叫车”,“等车”,‘上车”,“评价”。调查问卷评价等级分为三类,“满意”,“一般”,“不满意”。评估结果分类如下:必须/期待/刺激/中性/负面/不确定。

3.3 基于KANO模型分析评估结果(如图 )

本次研究对象是上海和釜山的学生,主要年龄段是18-35岁。使用KANO模型的分析方法,用户期待和满意度在四个步骤做出评估,如图一所示,不同颜色代表不同的属性。

黑色圆形图案表示此功能是“必要”功能,如果缺少这些这些功能,会使得操作不能正常进行,也会使使用者有不舒服的用户体验。这些功能是基本信息输入是永久性的,每一次使用软件都要输入一次基本信息会给用户带来不便。

蓝色圆形图案表示此功能是用户“期待”的功能。有此功能可以增加用户的满意度。这些功能为预期价格功能,用户常用地址储存功能,司机基本信合和司机照片功能,司机信誉可信度,取消订单功能,总体评价功能,投诉功能,失物招领功能。

橙色圓形图案表示此功能会给用户带来“刺激或者惊喜”。添加此功能会增加应用软件对用户的吸引力。这些功能是语音输入地址功能(文字输入功能共存),在察看附近的车的界面上,离用户定位位置近的和离用户定位位置远的出租车图标有颜色差异,方便用户查看,减少用户阅读负担。

紫色圆形图案表示此功能是“中性”功能,有或者没有此功能,用户关心度不大。此功能是用付款方式,用户不在意选择用卡结账还是用现金结账。

红色圆形图案表示的是“负面”的功能,有此功能会给用户带来很大的不适合,或者对产品产生厌恶感。这些功能是叫车小费功能,用几何图形表达预计出租车达到公里数而不是用简单的数字表示,用文字来评价司机的服务等。

绿色圆形图案表示的是“不确定”的功能,在本案例调查中这些功能的必要性还没有明确结论,用户持有中立的态度。这些功能是预计出租车到达时是否需要短信提示功能,短信通知出租车已到达功能。

4 结论

如图二,GUI设计界面修改图。

在“叫车”的阶段,界面修改后为基本信息功能(电话号码的储存,常用地址的储存,付款方式的选择)都是永久性输入的。定位的时候离用户近的出租车图标颜色注重突出。输入目的地和出发地的时候,增加语音输入,同时保留文字输入,并且用户可以重新听取语音确定订单信息。取消了小费功能。

在“等待”的阶段,界面设计修改后不仅有预计到达时间,附近的车辆图标颜色加以区分。司机的信息(照片,车牌,好评度)也更加完善,可以增加软件的信誉度使用户使用时对此软件更有安全感。

在‘上车”的阶段,界面设计修改后为当车子到达时‘上车”界面上给用户发出到达信息,给用户带来方便。

在“评价”的阶段,界面修改后5星打分法可以简单地帮助用户给出更恰当的分数。增加了投诉功能,能更好地监督和督促司机服务质量。增加了失物招领功能,用户如果在出租车上遗漏的物品则可以方便快速地找到丢失的东西。

通过使用KANO模型分析法,本研究对善界打车软件设计从而提高中国打车应用软件的满意度,基于研究结果,为未来的打车APP界面设计发展方向提供一定的依据,来进一步提高用户满意度。但由于本研究调查对象年龄层比较窄,调查人数不多,所以有一定的局限性。通过这些对立问题的调查分析,可以更快了解产品属性,为打车软件做出行动指南,提升用户满意度。希望本研究在为未来打车应用软件设计提供参考。

参考文献

[1]张言林李博等人基于数字化校园的手机app客户端设计初探——东北林业大学“移动校园”手机APP客户端设计设计2014 (02):81-82

[2]徐雪梅手机App应用前景及发信息与电脑2014 (03):67-70

[3]聂寕樂,黄德海浅析GUI“创新点”的专利保护中国专利与商标2014 (03):89-99

[4]陈嬿用户界面设计课程中GUI与TUI设计方法的融合创意与设计2014.(05):63-69

基于常微分方程数值解的GUI设计 第7篇

1 GUI设计原理

MATLAB的GUI设计主要分为如下两个阶段:

第一阶段: 软件界面的布局设计。使用MATLAB提供的设计向导,对软件图形界面进行布局,合理摆放控件位置并添加必要属性,设计菜单。

第二阶段: 软件功能的设计。实现每个控件和菜单的功能,编写对应的回调函数,整体实现软件的所有功能。

2具体过程

本软件的设计主要集成了常微分方程初值问题数值解法中的Euler方法、预测校正系统、改进Euler方法和龙格—库塔方法。通过设计一个主界面(图1),在主界面中点击不同的命令按钮,打开对应的方法界面(图2),每个方法界面中有关于该方法的背景故事、理论讲解、例题讲解和算法演示,其中算法演示为本软件的核心内容。

以常微分方程数值解法中的Euler方法为例,说明算法演示界面的具体实现过程:

界面布局:静态文本框,提供输入和输出结果的提示;可编辑文本框,供使用者输入所需求解问题参数;坐标轴控件,显示计算结果;命令按钮,接受用户命令,如图3。

操作步骤:

1)在MATLAB主界面,依次点击文件→新建→GUI ,打开MATLAB向导编辑器(GUIDE),新建空白GUI界面。

2)在GUI设计界面,将所需控件拖拽到Figure窗口,摆放到恰当位置,完成图3布局。

3)双击控件,弹出控件属性编辑窗口,在这里编辑控件属性,包括长度、宽度、文本等属性值。

控件常用属性如下:

1 Tag属性:用来对控件进行标记,在编写回调函数时,通过控件的Tag属性获取对象,以实现获取和改变控件的显示内容。

2 String属性:可以初始化输入框的内容,在编写回调函数时也可以通过这个属性获取输入框的内容。

3 max和min属性:控制输入框的文本模式。当max-min >1时,输入框能够输入和显示多行的内容;当max-min<=1时,输入框只能输入和显示一行的内容。

4 Visible属性:定义控件是否对用户可见,初始值为on。

5 Callback属性:指定控件的回调函数。指定控件的Call-back属性后,就告诉了MATLAB当我们按下该按钮时就执行这个函数,对数据进行处理以及在界面显示结果。

4 )功能设计:编写功能按钮的回调函数:

1 “数值解”按钮的callback函数设计:

2 “解析解”按钮的callback函数设计:

3 “误差”按钮的callback函数设计:

4“清空”按钮的callback函数设计

set(handles.edit13,'String',''); 其它可编辑文本框同样处理

cla reset;

5 “返回”按钮的callback函数设计

close gcf;s=oula; 返回欧拉方法主界面

3小结

通过这种界面设计,使得常微分方程数值解法的演示与计算变得直观、高效。同样数值计算中的其他方法也能够像这样设计成简洁易操作的界面,如数值积分等。这样的图形用户界面,为老师提供了一个方便的课题讲解方法,为数值计算工作者提供了一个简单实用的计算工具。

参考文献

[1]胡健伟.微分方程数值方法[M].2版.北京:科学出版社.2007.

[2]李荣华.微分方程数值解法[M].3版.北京:高等教育出版社.1997.

GUI设计 第8篇

1 小电流接地系统仿真模型

在MATLAB的Simulink仿真平台上搭建中性点不接地系统和中性点经消弧线圈接地系统的模型[2,3,4], 中性点不接地系统仿真模型如图1所示。

模型中三相交流电压源的内部接线方式为Y型联结,4条输电线路均采用三相PI型电路模型,线路长度分别为120km、180km、2km和150km,其他参数相同,均为模块默认值。线路负荷均采用三相串联RLC负荷模型,有功负荷分别为1MW、0.2MW和2MW,其他参数相同,均为模块默认值。三条线路上均有三相电压电流测量模块,相当于电压电流互感器的作用,所有模块频率均设置为50Hz。模型中的“workspace”模块,是将数据输出到MATLAB工作空间,便于对输出数据进行操作,在GUI界面输出仿真波形。中性点经消弧线圈接地系统的模型是将中性点不接地系统仿真模型中三相交流电压源的内部接线方式设置为Yn型联结,在电源的中性点接入一个电阻和一个电感线圈相串联,其他相同。

2 GUI界面设计与仿真结果分析

2.1 GUI界面设计

小电流接地系统仿真界面由参数设置区域、仿真波形区域、仿真按钮和退出按钮构成。参数设置区域包括电源电压、仿真时间、模型选择、输电线路长度和负荷功率。波形区域选取6个坐标轴,分别显示故障线路的A相电压、故障点的接地电流、系统的零序电压以及各线路的零序电流波形。对各控件的回调函数进行编程,实现GUI对Simulink模型的调用【5】。演示界面如图2所示。

2.2 仿真结果分析

三相交流电压源电压设置为10.5k V,仿真结束时间设置为0.2S,算法选用“ode23tb”。 Powergui模块设置采样时间为1 × 10-5S,系统在0.04S发生A相接地故障,分别对中性点不接地系统和中性点经消弧线圈接地系统进行仿真。

2.2.1 中性点不接地系统仿真

仿真结果如图3所示。

从图3中可看出0~0.04S,系统运行正常,无零序电流,系统在0.04S发生单相接地短路故障,故障线路的A相电流急剧增加,A相电压降为0,3 条线路均有零序电流,其中线路1 和2的零序电流均超前零序电压90°,线路3 的零序电流滞后零序电压90°,即线路3和线路1、2的零序电流相位相差180°,线路3的零序电流较大,为线路1和2的零序电流之和,因此通过仿真可以判断故障线路为3,故障相为A相。

2.2.2 中性点经消弧线圈接地系统仿真

在电源的中性点接入的电阻为30 Ω ,电感为0.8697H,仿真结果如图4所示。

图4 中故障点的接地电流有效值为4.35A,远远小于中性点不接地系统的故障相接地电流,补偿效果十分明显。线路1和线路2的零序电流为本身的电容电流,仍超前零序电压90°,实际方向为母线流向线路,线路3 的实际方向与线路1 和2 的相同,因此不能通过电流的方向判断故障线路,通过零序电流的大小也很难判断故障相。

3 结论

本文在MATLAB的Simulink仿真平台上建立了小电流接地系统仿真模型并设计了GUI界面,对中性点不接地系统和中性点经消弧线圈接地系统单相接地故障进行仿真,通过波形的对比和分析,验证了小电流接地系统的故障特征以及零序电流比幅比相法对中性点不接地系统单相接地故障判别的有效性。

参考文献

[1]张保会,尹项根.电力系统继电保护[M].2版.北京:中国电力出版社,2010.

[2]周羽生,彭琢,韦肖燕,等.小电流接地系统单相故障的Matlab仿真[J].电力系统及其自动化学报,2009,21(4):50-

[3]张耘川,王昕怡.基于Matlab的小电流接地系统单相故障仿真分析[J].电气技术,2012(4):9-11.

[4]于群,曹娜.MATLAB/Simulink电力系统建模与仿真[M].北京:机械工业出版社,2011.

GUI设计 第9篇

MATLAB软件是“矩阵实验室”———Matrix Laboratory的缩写, 是用C语言进行编写的。它具有语言书写简单, 语句功能强大, 封装了丰富的数学函数, 我们可以直接调用这些数学函数。MATLAB对于数学运算, 特别是矩阵运算, 非常高效, 而文件批量坐标转换又涉及复杂的数据计算, 这就是为什么利用其进行程序编写实现的原因。

Excel是微软公司的办公软件Microsoft office的组件之一, 它可以进行各种数据的处理、统计分析和辅助决策操作。将原始数据存放在Excel中, Excel可以批量对原始数据进行预处理, 达到我们想要的数据格式, 可以将文本导入到Excel中, 读取与存储都易于操作。

随着全球导航定位系统的发展, 尤其是美国的GPS技术发展, 其具有全天候, 连续性, 实时性等优势, 已经逐渐取代了传统的测量方式。GPS测量成果是基于WGS84椭球的大地坐标, 即:大地纬度B, 大地精度L, 大地高H。而我们通常所需要的是基于克拉索夫斯基椭球的北京54坐标系或基于第16届IGUU大会推荐的1975年国际椭球的西安80坐标系。因此我们需要将GPS所测的WGS84大地坐标转换成我们所需的北京54或西安80坐标。

本文主要介绍两种坐标转换方法:七参数空间坐标转换方法和四参数平面坐标转换方法, 通过MATLAB设计界面并编写程序实现这两种方法, 然后通过转换得到的坐标比较分析这两种的精度及适用范围。

1 MATLAB简介

1.1 MATLAB系统概述

MATLAB是美国Math Works公司出品的商业数学软件, 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境, 主要包括MATLAB和Simulink两大部分。

MATLAB是英文“矩阵实验室”———Matrix Laboratory的缩写, 其全部采用C语言编写。具有如下特点:

(1) 基本数据单位是矩阵, 矩阵运算如同其他高级语言中的变量操作一样方便, 矩阵无需定义即可采用;

(2) 高效的数值计算及符号计算功能, 能使用户从繁杂的数学运算分析中解脱出来;

(3) 具有完备的图形处理功能, 实现计算结果和编程的可视化;

(4) 友好的用户界面及接近数学表达式的自然化语言, 使学者易于学习和掌握;

(5) 功能丰富的应用工具箱 (如信号处理工具箱、通信工具箱等) , 为用户提供了大量方便实用的处理工具。

1.2 MATLAB程序编写的基本原则

突破以往其它程序语言经常采用的循环思想, 尽量采用MATLAB矩阵式语言书写程序, 使得程序简洁, 执行效率高。在程序设计中尽量避免重复的脚本代码, 多用MATLAB提供的函数。系统中的函数要比用一般代码编写的函数执行效率高很多。在编写比较大的程序时, 应该对各个细节以函数或子过程方式处理, 避免矩阵混淆。

在程序编制过程中, 各个功能部分尽量封装在函数中, 这样不但可以减少全局变量个数, 而且对各个函数的修改要比对整个程序的修改方便得多。

1.3 MATLAB的文件类型

M文件:用于存储函数过程;

Figure文件:用于显示、存储图像;

GUI文件:用于编辑、存储程序界面。

在MATLAB中, 最常用的是M文件。MATLAB是一种解释性语言, 用户发出的指令需要送到MATLAB系统内解释, 而M文件实际上就是记录指令的文本, 用以统一将命令送入系统内进行解释。

M文件有命令式 (Script) 和函数式 (Function) 两种形式。命令式文件就是MATLAB内部命令的简单叠加, MATLAB会按顺序执行文件中的命令, 这种方式常用来形成主函数。函数式文件用以解决参数传递和函数调用的问题, 每个具体的功能一般用此方式实现, 它的第一句以Function语句为引导。

2 坐标转换相关理论

2.1 三维空间坐标转换

WGS84与BJ54的坐标转换问题, 实质是WGS-84椭球体到BJ54椭球体的转换问题。

如果我们是需要把WGS84的经纬度坐标转换成BJ54的高斯投影坐标, 那就还会涉及到投影变换问题。而如果我们所需的坐标是地方坐标, 那么我们还要利用四参数法将北京54坐标转换成北京地方坐标。因此, 这个转换过程, 一般的GPS数据处理软件都是采用下述步骤进行的:

1) WGS84 (B, L) ———WGS84 (X, Y, Z) , 空间大地坐标到空间直角坐标的转换。

2) WGS84 (X, Y, Z) ———北京54 (X, Y, Z) , 坐标基准的转换, 即Datum转换。通常有三种转换方法:七参数、简化三参数、Molodensky。

3) 北京54 (X, Y, Z) ———北京54 (B, L) , 空间直角坐标到空间大地坐标的转换。

4) 北京54 (B, L) ———北京54 (x, y) , 高斯投影正算。

5) 北京54 (x, y) ———地方坐标 (x, y) , 四参数转换。

通过下面的流程图, 我们可以更清晰地了解整个流程。

2.2 二维平面坐标转换

二维坐标转换适用于小范围内GPS坐标向地方坐标的转换, 在实际测量时, 必须将GPS接收机测得的大地经纬度坐标B、L (基于WGS一84椭球) 转换成本地平面直角坐标x、y (基于本地椭球) 。其转换过程为:

(1) 将公共点的WGS84坐标投影到其对应椭球的高斯平面上, 得到WGS84的平面坐标;

(2) 利用两个以上的点, 采用最小二乘方法求解四参数;

(3) 先将需要进行坐标转换的WGS84坐标投影到其对应椭球的高斯平面上, 得到WGS84的平面坐标, 然后根据第二步求得的四参数, 将其转换为本地平面直角坐标。

为了使上面的过程更为清晰, 现以WGS84的大地坐标与转换到北京54坐标所作的流程图为例进行说明:

3 MATLAB GUI界面设计及程序实现

通过参考南方测绘GPS数据处理中的坐标转换软件和Coord MG坐标转换软件界面, 经过综合分析比较, 我设计出了这款基于MATLAB GUI实用、简洁、界面友好的zbjh2013坐标转换软件, zbjh2013主要用七参数和四参数两种转换方法进行三维空间和二维平面坐标转换。

3.1 MATLAB GUI相关内容介绍

MATLAB具有创建图形用户界面 (GUI) 的功能。GUI是用户与计算机或计算机程序的接触点或交互渠道, 是包含诸如窗口、图标、菜单和文本等图形对象的可操作界面。通过定制用户与MATLAB交互的命令窗口, GUI能有效组织数据流程, 使处理方法易于使用和推广, 同时也使人机交互更加友好。

在这次坐标转换软件设计与实现过程中主要用到了以下几种控件:

(1) 面板 (Panel) :Panel是GUI对象的容器, 当移动Panel的位置进行GUI编辑时, Panel的子对象也随之移动, 并保持它们在Panel中的相对位置。

(2) 弹起式菜单 (Pop-up Menu) :Pop-up Menu与Listbox类似, 都使用String属性显示一组选项, 区别为: (1) Pop-up Menu更节省界面空间, 需要左键单击才能调出这些选项; (2) Pop-up Menu不能同时选择多个选项。

(3) 单选按钮 (Radio Button) :Radio Button通常组合使用, 用于显示一组互斥的状态。

(4) 复选框 (Check Box) :Check Box与Radio Button类似, 用于显示一对互斥的状态, 通过鼠标左键单击, 可在“选中”与“未选中”两种状态之间切换。

(5) 静态文本 (Static Text) :Static Text通常用于显示其它对象的数值、状态。

(6) 可编辑文本 (Edit Text) :Edit Text允许用户修改文本内容, 用于数据的输入与显示。若Max-Min>1, 允许Edit Text显示多行文本;否则, 只允许单行输入。

(7) 列表框 (Listbox) :Listbox用于显示一组选项, 通过鼠标单击左键, 可选中任意一个或多个选项, 当Max-Min>1时, 允许同时选中多个选项;否则, 只允许一次选择一项。

(8) 触控按钮 (Push Button) :通过点击Push Button可以调用回调函数, 实现某项功能。

(9) 表格 (Table) :Table为二维的可视化表格, 可用于显示控制点坐标, 通过编写程序来实现点击按钮添加和删除数据。

(10) 选项卡控件 (Tab Strip Control) , 通过Tab Strip Control可以进行局部区域界面之间进行切换。

3.2 MATLAB程序实现相关代码

框架搭建好之后, 在MATLAB GUI对应的M文件进行程序编写过程中, 解决以下几个难点:

(1) 不同GUI间参数传递、回调函数调用问题;

主界面的代码

子界面的代码

(2) 将子界面的所有控件复制到主界面上, 通过Tab Strip实现选项卡功能;

将子界面的所有控件复制到主界面上的代码

通过点击选项卡实现点坐标与文件坐标转换的切换的代码

(3) 对table空间的操作, 通过点击相应按钮逐行添加和删除数据。

逐行添加数据的代码

逐行删除数据的代码

3.3 MATLAB GUI设计界面

(1) 选择源椭球类型, 待转转换坐标类型;

(2) 选择目标椭球类型, 目标坐标类型;

(3) 通过点击菜单“设置”→“投影设置”, 通过投影设置界面, 设置投影方式、中央子午线, 投影尺度及X常数和Y常数;

(4) 通过点击菜单“设置”→“四参数”或“七参数”, 选择一种坐标转换方式, 通过四参数或七参数设置界面, 输入四参数或七参数, 如果四参数或七参数未知, 则通过点击四参数或七参数设置界面中的计算四参数或七参数进行四参数或七参数的求解, 四参数需要至少两个控制点坐标, 而七参数需要至少三个已知控制点坐标, 配置好参数坐标转换方式之后, 选中转换设置中的投影设置和四参数或七参数复选框;

(5) 通过选项卡进行单点坐标或以文件的形式批量坐标转换。

4 结论

将MATLAB GUI与坐标转换相关知识结合起来, MATLAB具有矩阵运算的特长避免了程序中出现大量循环体。GUI界面设计简洁、直观、友好。既能够实现单个点的坐标转换, 有可以Excel文件的形式实现批量坐标转换。不管是三维空间或二维平面坐标, 转换得到的成果完全能够满足工作的精度要求, 到达最初的设计目标。

通过大地测量学课本与坐标转换相关的知识及网上下载的一些论文的阅读学习, 对坐标转换的理论认知更加深入, 受益匪浅。

参考文献

[1]孔祥元, 郭际明, 刘宗泉.大地测量学基础[M].武汉:武汉大学出版社, 2008.

[2]罗华飞.MATLAB GUI设计学习手记[M].2版.北京:北京航空航天大学出版社, 2011.

[3]林立贵.坐标转换计算程序[J].测绘与空间地理信息, 2006 (6) :64-65.

[4]王玉林, 葛蕾, 李艳斌.新型界面开发工具[J].工程实践及应用技术, 2008, 34 (6) :50-52.

[5]陈杰.MATLAB宝典[M].北京:电子工业出版社, 2007:667-816.

[6]张喜海.浅谈WGS84与北京54之间的转换[J].城市建设理论研究, 2012 (18) .

[7]李甜.WGS84与北京54坐标转换研究[J].商品储运与养护, 2008, 30 (8) .

GUI设计 第10篇

计算机在50多年的发展中经历了重大的变革,高性能但价格相对便宜的PC机大量涌现,各种互连网络技术已经相当成熟,这为机群的构建创造了有利条件。传统的CLI管理模式,不仅需要专业的人员进行管理而且不够直观的检测系统中节点的工作状态,因此基于GUI的机群管理系统的设计也成为当前热点。

1.1 目前基于GUI的机群管理系统国内外相关研究现状

随着机群系统的广泛应用,机群管理软件得到了前所未有的发展。机群管理软件的研究与开发是一个相当有潜力的领域,目前国内外出现了很多机群管理系统。

国外著名的机群管理软件主要有美国IBM公司的CSM和XCAT,加拿大Platform公司的LS等。

IBM公司的CSM(Cluster Systems Management)是IBM e Server Cluster1300上的系统管理软件,是一款功能很全面的管理工具,支持Redhat、Su SE,而且还在不断的发展中。

XCAT是用于IBMe Server Cluster1300上的系统管理软件。它由Egan Ford开发。它基本上是由shell脚本写成,相当简捷。但是它实现了机群系统管理大部分的内容,是个非常出色的管理软件。

LSF(Load Sharing Facility)该负载共享软件是由加拿大Platform公司开发的,无论从功能方面还是从应用范围来讲,LSF可谓是一个商用的成熟的机群管理系统。

国内的机群管理软件主要有联想公司的LCMS和曙光公司的曙光4000L。联想自主研发的机群管理系统LCMS,实现了服务器机群软硬件资源的高效动态管控,有效地支持了大规模科学工程计算应用。

2 系统开发技术简介

2.1 LAMP技术简介

LAMP(Linux Apache My SQL PHP)是指一组常用来搭建动态网站的开源软件包括Linux操作系统、Apache网络服务器、My SQL数据库和PHP语言的黄金组合,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,LAMP以开发成本较低,开发速度快,安全性高等特点已经与J2EE和.Net商业软件形成三足鼎立之势。

2.2 Ext Js技术简介

系统采用B/S模式,GUI主要在浏览器端,具体实现方案采用EXTJS,Ext JS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。

3 基于GUI机群管理系统的设计与实现

3.1 系统架构

根据系统需求分析中,用户能够对系统进行检测与管理,整个管理系统的实现采用B/S模式,整个机群软件的架构如图1。

数据、操作通过浏览器提交给Apache服务器,服务器调用PHP代码对用户提交的操作进行相应的shell指令转换,通过提供的system(),exec(),passthru()三个函数来调用外部的shell命令,然后Apache服务器对相关的操作记录写入指定的Mysql数据库。

3.2 功能设计

综合考虑机群管理系统的整个执行流程,按照不同的功能将系统划分为:普通用户界面构建、节点机动态信息采集、节点机静态信息采集、任务分配、任务监测、任务结果回收、资源分配的构建。

各自功能具体如下:

1)普通用户界面:是提供管理、维护机群系统的用户信息,具体包括用户的基本信息,用户的历史操作等相关信息。

2)节点机动态信息采集:模拟每一个节点的动态信息,包括数据的流向、动态数据量大小,资源利用率、资源占有率情况,如图所示:

3)节点机静态信息采集:监测每个机群节点的状态,各节点机器的基本配置、资源分配使用情况等基本信息。

4)任务分配:任务的分配在机群管理系统中起到的作用主要是资源分配,给每个节点分配任务,使机群系统高效的利用资源,发挥每一个可用节点的作用。

5)任务监测:在任务分配完成后,系统通过图表、图像等直观的方式向用户反馈。

6)任务结果回收:实时收集任务返回的结果,形成统一的显示报告呈现给用户,方面以后的管理。

7)资源分配:可以合理的调用每个机群节点的资源,已提供完成某项任务的资源。

8)管理模块:对机群管理系统的管理员来说,系统首先要保证管理员能够方便地对机群进行管理。

3.3 系统测试和评价

系统的优点:

1)界面与功能分开。

2)系统实现结合了外部Shell命令简化了系统的实现难度。

3)系统定义了一个命令接口,为以后系统扩充功能提供了方便。

)该系统的界面形式统一,各种功能间都可以正常跳转。

下一步工作任务管理不够充分,系统界面不够美观。

摘要:随着机群系统的广泛应用,功能结构各异,并且适用于不同机群系管理软件纷纷出现,其中包括以CLI(Commandline User Interface)命令行模式进行管理和以GUI图像用户界面进行管理两种用户体验模式。该课题设计与实现一种通过以LAMP技术为背景的图形用户界面机群管理系统完成对学机群的访问与管理。

关键词:机群系统,GUI,LAMP,图形用户接口

参考文献

[1]James H Herzog.Design and organization of computer structures[M].Franklin,Inc,1996:227-234.

[2]赵斯恩.PHP网络编程技术与事例[M].北京:人民邮电出版社,2006:12-43.

[3]位元文化.Linux管理与应用基础[M].北京:清华大学出版社,2002:24-36.

[4]俞盘祥,沈金发.数据库系统原理[M].北京:清华大学出版社,1987:43-47.

GUI设计 第11篇

【关键词】 Matlab Gui,阿贝-波特实验,滤波

【中图分类号】G64.23 【文献标识码】A 【文章编号】2095-3089(2015)15-000-01

一、引言

众所周知,光学专业实验对仪器的稳定性要求很高,对于复杂光路的搭建和调试都是非常耗费时间的,而计算机仿真能克服上述缺点,而且能够呈现出实验中很难实现的实验现象。所以光学专业实验的计算机仿真成为了当前实验教学研究的一个热门课题。阿贝-波特实验是光信专业的一个经典实验[1],目前也有不少人对该实验进行了仿真,但目前该实验的仿真要么缺乏直观的界面[2],要么界面不够友好,不够丰富[3],比如界面中没有给出实际的实验光路等。针对上述情况,本文对阿贝-波特实验进行料Matlab Gui仿真,仿真界面不但给出了该实验的实际光路,而且验证了阿贝波特实验的所有现象,实现了仿真界面友好、内容丰富,使学生更能深刻理解阿贝波特实验。

二、阿贝-波特实验的原理

如图1所示[1],在相干平行光照明下,物的成像过程可分成两步:①入射光经过物的衍射在物镜的后焦面上形成夫琅禾费衍射图样;②衍射图样作为新的子波源发出的球面波在像平面上相干叠加成像。概括地说,上述成像过程分两步:先是“衍射分频”,然后是“干涉合成”。所以如果在透镜的后焦面(即频谱面)上放上各种滤波器,就可以改变频谱的信息,从而引起输出像发生变化。

图1 阿贝成像原理图

三、阿贝波特实验的Matlab Gui仿真

图2是阿贝波特实验的MATLAB GUI仿真界面。界面的右上方为实验光路及实验注意事項。滤波对象是正交光栅,在界面的下面显示物及其频谱,点击滤波器下拉菜单,选中水平狭缝作为滤波器,则界面的下面第三个图显示该滤波器,再点击进行滤波按钮,则在界面的下面第四个图显示经滤波处理后的像,如图2(a)所以,由图可见,频谱面上的横向分布是物的纵向结构的信息,如果点击滤波器下拉菜单,选中纵向狭缝作为滤波器,则在界面的下面第四个图显示经滤波处理后的像,如图2(b)所以,由图可见,频谱面上的纵向分布是物的横向结构的信息。如果点击滤波器下拉菜单,选中方向滤波,则经滤波后的输出像如图2(c)所示,得到的是相对方向的信息,由图可以看出,采用方向滤波器,可完全改变像的性质。如果点击滤波器下拉菜单,选中低通滤波,则经滤波后的输出像如图2(d)所示,由图可见,零频分量是一个直流分量,它只代表像的本底,即只有0级衍射(空间频率为0)能通过时,则在像平面上虽有光照,但完全不能形成图像。如果点击滤波器下拉菜单,选中高通滤波,则经滤波后的输出像如图2(e)所示,由图可

(a)横向狭缝滤波

(b)纵向狭缝滤波

(c)方向滤波

(d)低通滤波

(e)高通滤波

图2 阿贝波特实验的Matlab Gui仿真界面。

见,阻挡零频分量,在一定条件下可使像发生衬度反转。由2(d,e)还可以看出:允许低频分量通过时,像的边缘锐度降低;允许高频分量通过时,像的边缘增强。

四、结论

为了更好理解阿贝波特实验,本文对阿贝波特实验进行了Matlab Gui仿真,仿真界面友好、操作方面,内容丰富,本仿真界面不但给出了实际的实验光路,而且实现了实验的所有功能,仿真结果验证了所有的阿贝波特实验现象。

参考文献

[1]苏显渝,李继陶.信息光学M.北京,科学出版社,1999

[2]刘全金叶璟.基于MATLAB环境的阿贝-波特空间滤波实验仿真,安庆师范学院学报,2009,4:108-112

GUI设计 第12篇

关键词:自适应滤波器,LMS算法,MATLAB/GUI,迭代步长

0引言

自适应滤波是为适应信号和噪声在未知情况下的不确定变化特性,根据前期获得的参数,灵活调节目前的滤波器参数和指标,以获得更好的滤波效果。自适应滤波器主要应用领域有回声消除、系统辨识、通信系统中的自适应均衡、自适应波束的 形成及消 除心电图 中的电源 干扰等[1]。在这些领域实际应用中,信号和噪声的统计特性无法预知,且随时间不断变化。通过灵活调节滤波器参数, 可以更好地优化滤波效果,克服固定参数滤波器的缺点和不足[2]。

本文采用Matlab中的GUI工具,设计了基 于LMS算法的自适应滤波器仿真平台。通过与传统的维纳滤波器对比,滤波效果明显提高,使用者实时调节参数更方便。

1自适应滤波器原理

闭环的自适应滤波器一般分为两大部分:可编程滤波器和自适应算法,如图1所示。可编程滤波器参数是可以变化的,通过自动调节参数能逐步估计出滤波器输入信号和噪声的统计特性,并可根据估计的统计特性进行参数调节,达到更好的滤波 效果和输 入信号波 形[3]。如图1所示,滤波器在某一时刻的输入信号为x(n),通过可编程的数字滤波器后,在同一时刻的输出信号为y(n),d(n)为期望的滤波输出信号,e(n)为由于y(n)与d(n)的不同而导致的误差信号 。闭环的自适应滤波器通过将滤波器输出的误差信号e(n)作为反馈,利用不同的自适应算法,对滤波器参数进行适当调整,最终使得e(n)的均方值最小。

2LMS算法的自适应滤波器仿真

在自适应滤波器设计过程中,自适应滤波算法是最重要的组成部分,LMS算法是基于最小均方误差准则的自适应滤波算法,具有计算简单、性能稳定、应用方便等优点。LMS算法需要的参数为输入信号x(n)、期望输出信号d(n)、滤波器的权值向量w(n)、迭代步长L和误差信号e(n),它们之间满足下面的表达式[4]:

利用LMS算法进行自适应滤波器仿真,初值参数为: 滤波器长度100、迭代步长0.002、采样个数1 024;期望信号d=2sin(0.04*pi*t);滤波器的输入信号为期望信号叠加均值为0的高斯白噪声:x=awgn(d,5),5为信噪比, 信号波形如图2所示。

将加噪声信号分别通过固定系数维纳滤波器和自适应滤波器,滤波后的输出波形如图3所示。

根据图2对比期望 信号与维 纳滤波输 出信号、LMS滤波输出信号,很容易看出自适应滤波的LMS算法滤波效果明显优于维纳滤波效果。但是LMS算法是在初始化值的基础上逐步调整得到的。因此,在系统稳定前有一个调整时间,此时间受 迭代步长L控制,在一定取 值范围内,L增大调整时间会减小,但超过此取值范围时系统不再收敛[4,5]。图4为迭代步长分别为0.001和0.004时的滤波器输出信号和误差信号。

3基于GUI的自适应滤波器仿真平台设计

GUI(Graphical User Interface),图形用户界面,如很多高级编程语言一样,Matlab也有图形用户界面开发环境[6,7]。从M文件或命令行中调取程序,相对比较繁 琐。 如果要反复使用各种滤波方法,并根据实际滤波器输入信号设定不同的参数,例如采样点数、滤波器长度、LMS算法需要迭代步长等,图形化用户界面是最好的选择之一。

自适应滤波仿真界面用GUI设计,包括:1仿真界面设计:根据自适应滤波结构和功能对所需要的各个控件进行选择和布局;2对控件的标识 、颜色、字体等属性进行设置;3编写程序代码。其中最关键的是对初始界面函数 (OpeningFcn)和控件回调函数(Callback)代码的设计。自适应滤波器仿真平台界面中,控件的回调函数设计步骤见图5。

根据设计步骤,构思草图,在编辑器中布置控件,坐标轴shuruxinhao用来显示滤波输入信号波形,qiwangxinhao、shuchuxinhao和wucha分别用来显示期望信号波形、 滤波器输出信号波形和均方误差曲线,相应的参数输入可以通过文本框设置来实现。需要调节的输入参数包括信号采样点数、滤波器长度和LMS算法的迭代步长等。另外设置两个按钮LMS滤波和维纳滤波,分别控制两种滤波算法运行。读取界面参数,定义滤波输入信号和期望信号编程,求得滤波器的输出信号和均方误差,利用plot函数分别画出滤波输入信号、期望信号、滤波器输出信号和均方误差值图形。

分别设计3个按钮的回调函数代码,在界面中输入参数,依次点击3个按钮,分别得到LMS算法和维纳滤波对应的滤波输入信号、期望信号、滤波器输出信号和均方误差值4个图形。图6所示为点击LMS滤波按钮产生的图形界面。如果滤波效果不好,可以通过调整输入的4个参数来修正滤波结果,并根据均方误差信号波形来判断哪个参数更适合滤波的需要。

4结语

为了构建良好的操作界面,本文利用GUI编程方法, 设计了LMS自适应滤波器的仿真平台。在仿真平台界面中通过直接输入和改变参数,快速获取不同参数下的仿真结果并进行比较分析,对抽象的自适应滤波过程进行简单直观的动态展示。自适应滤波仿真平台,利用Matlab强大的运算和图形处理能力,为优化滤波器设计及其合理应用提供了可靠依据,提高了工程技术人员的工作效率。

参考文献

[1]李宁.LMS自适应滤波算法的收敛性能研究及应用[D].哈尔滨:哈尔滨工程大学,2009.

[2]王鲁彬,翟景春,熊华.自适应滤波算法研究及其Matlab实现[J].现代电子技术,2008(3):174-178.

[3]龚耀寰.自适应滤波—时域自适应滤波和智能天线[M].第2版.北京:电子工业出版社,2003:102-104.

[4]张立毅,张雄,李化.信号检测与估计[M].太原:太原理工大学,2003:175-176.

[5]SCHWARZHACHER T,TIMONEY J.VLSI imple-mentation of an adaptive noise canceller[C].3rd Int.Symposium on Communication Systems,2002:9-12.

[6]李京秀,陈白生.基于Matlab图形用户界面GUI的电路仿真实验的制作[J].电气电子教学学报,2004(4):265-268.

上一篇:日记评语下一篇:书生