首页 > 范文大全 > 正文

基于Infineon平台的波兰语智能输入法实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Infineon平台的波兰语智能输入法实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:为了在Infineon平台上实现波兰语的智能输入法,该课题采用了模块化的设计方案,通过封装接口与平台接口的整合,Infineon平台的特点,并结合Zi8输入法和波兰语字符的特点,在PC端进行模拟仿真,采用模拟发短信的方式,成功实现了波兰语的智能联想输入,并顺利通过上屏显示验证。这种输入法,避免了以往输入法多次按键输入带来的不便,大大减少了输入的次数,使用户在输入时更高效、快捷、准确地得到想要的字符及词组。

关键词:智能输入法; Infineon平台; Zi8输入法; 波兰语

中图分类号:TN91934; TP312文献标识码:A文章编号:1004373X(2011)22018503

Realization of Polish Language Intelligent Input Method Based on Infineon Platform

ZHANG Liting, LIU Yu

((College of Communication and Information Engineering, Xi'an University of Post & Telecommunication, Xi'an 710121, China))

Abstract:In order to realize Polish intelligent input method on Infineon platform, the subject adopts the modularized design scheme. Polish intelligence input was successfully realized and verified on screen through intergrating the encapsulation interface with the platform interface, considering the fature of Infineon platform, combining the characteristics of Zi8 input metod and Polish characters, conducting simulation on PC, and emulating the way of sending short message. This method avoided the inconveniece of inputing many times, caused by previous input methods. It allows users to obtain the desired characters and phrases efficiently, quickly and accurately.

Keywords: intelligence input; Infineon platform; Zi8 input method; Polish

收稿日期:201106230引言

基于infineon平台实现用于手机的波兰语智能输入法,是利用手机数字键输入波兰语的音节及字串,针对手机上标准的9键按键,可直观、简捷、快速的输入。其中,还有智慧预测和联想的功能,只需单次输入,便可智能猜测用户想要输入的文字。

在本文中使用的是Zi8智能输入法,Zi8输入法与T9输入法十分相似,在拼音输入上,字能几乎与T9的一样,但是在笔划输入上,字能的技术则更好,尤其是用户输入笔划不熟悉的字时,字能可以用笔划查询键来进行模糊输入,所以在笔划输入方面,字能更加方便用户使用。

如果用户要输入一个单词,用智能英语输入法时每个字母只需按一次键,选择窗将列出全部相应的单词。这时可以继续按键,也可以用导航键选择列出的单词,再按“确定”键就输入了一个英语单词。

波兰语和英语的字母有很多是不一样的,所以在实现时,需要加入相应的字库信息,自定义键盘映射表,根据Zi8的特点和平台的架构,最终实现波兰语的智能输入法功能。

1Infineon平台的大体架构

1.1平台软件架构

Red Arrow 是根据超低端移动手机市场的需求进行设计的软件架构。MMI消息处理机制是根据下面多重消息循环的特性来执行的。

从图1可以看出,Infineon平台手机软件主要包括人机接口层(Red Arrow MMI)、中间层(Red Arrow Middleware)、协议层(PS)和驱动(Driver)等几个部分。

本文所实现的功能主要是在MMI应用层,定义好相关字符和字串资源,通过消息机制调用接口函数连接中间层,实现过程。图1为主要架构图。

从图1可以看出,Infineon平台手机软件主要包括人机接口层(Red Arrow MMI)、中间层(Red Arrow Middleware)、协议层(PS)和驱动(Driver)等几个部分。

1.2平台特点

平台特点为:

(1) MMI 实行单线程独占内存资源的特点;

(2) 没有单独的模块去处理消息的调度;

(3) MMI UI 主要按照下面的目的进行设计:程序只处理当前窗口接受到的消息;所有的程序只共享一个MMI消息队列;一个时间只有一个程序占有消息队列;程序的执行是串行而不是并行的;

(4) Red Arrow采用MMI 从底层接受事件转化为消息后,对消息进行处理。

图1Infineon 平台架构2事件转化为消息的处理机制

2.1处理机制架构

MMI 是通过消息进行触发的,为了使MMI独立于协议层(PS)和驱动(Driver),Red Arrow Middleware 提供了一个事件转化为消息的机制,如图2所示。

图2事件转化为消息体制被发送和接收的消息在底层已经命为“Signal”,MMI 发送信息到PS&DD通过触发在Middleware 提供的API函数,每一个发到MMI的信号都要首先在middleware 转化为事件,然后通过执行一个回调函数把事件转化为消息发到MMI。根据信号的发送者不同把信号分成几个不同的组。

2.2具体的实现步骤

(1) 所有发往MMI的信号首先被称作PMI的操作系统任务接受,PMI是底层和MMI任务之间的惟一接口。

(2) PMI触发middleware提供相应的函数把信号转化为事件。这个函数是MMI中间层的一个函数。

(3) 在相应的middleware函数里,回调函数被触发了,回调函数被MMI执行,回调函数运行在PMI中,middlewarew提供了触发回调函数的接口。

(4) MMI 当前的处理程序可以到消息队列中去取通过回调函数转换过来的相应信息。

回调函数应当按照被定义好的原形在MMI中被执行。

3波兰语智能输入法在Infineon平台上的开发设计

3.1波兰语输入模式的定义

在头文件mmi_graph.h中定义一个数据结构EDIT_MODE,并在其中添加波兰语输入模式。

3.2键盘映射表的规划

在文件mmi_textinput.c中加入键盘映射表,其实就相当于在智能abc,ABC的输入字符当中加入波兰语基础字母,在波兰语当中,不像abc一样除了大写就是小写,还有一些其他的字母,例如“?”下面带一撇的,这一般在字母切换时是不会出现的。

3.3智能输入法库的添加

在此,选择了定义一个结构体类型LDB_LANG_MAPPING_TABLE的数组ldb_lang_mapping_table[],定义了语言包的ID,语言类型,还有选择为Unicode码形式,通过这里定义的ID号,之后在做相关资源的时候就可以直接将输入法库加进去,从而实现智能输入法。

波兰语字符输入法的键盘映射将其定义为一个结构体类型的数组,这个结构体包含了手机上的基本按键,即0~9,其中每一个键都映射了字母类型以及字母的数量。在这里通过波兰语的字母表一一归类,然后统一列出来,定义进去,之后在智能abc输入或智能ABC输入的时候就可以找到这些字符并输出。

3.4输入法映射表的建立

建立输入法映射表:

imeBuildInputMethodTable(TEXT_EDIT_PARAMS *params)

在mmi_textinput.c函数中,已经将键盘映射表定义完毕,在这个函数模块当中建立的时候,将之前定义的结构体类型LDB_LANG_MAPPING_TABLE 一一初始化,输入模式为波兰语,以Unicode码的形式输入,输入法的句柄定义为智能输入法输入句柄:

imePredictiveInputHandler//智能英文输入处理模块

将当前文本输入模式设置成波兰语,然后通过以下这个函数得到当前文本输入模式;

nvm_GetCurTextInputMode()

3.5显示

在输入法界面下,一般会出现图标显示,在函数模块ShowEditMode()函数中,调用函数mmi_GetIconInfo(),将之前画好的图标显示出来。

3.6输入法模块

外部API:输入法模块mmi_TextInputConfig(),将波兰语智能输入法添加到文本输入、短消息、电话本中的姓名编辑,以及STK里面的文本输入。

3.7输入法初始化模块

ime_Initialize()函数

初始化输入的最大候选数,默认开机输入语言为波兰语,默认文本,默认分支语言,初始化Zi8输入法。

3.8字库的添加

在话机中凡是能够看见的字符串显示,实际上都是需要字库才能显示,所以在系统中,要使用一个字体时,需要将他们先转为图形字符后才能显示出来。加入的字符串,实际上是以UNICODE形式存储的,而这些UNICODE都要有对应的字库才能显示。

将字库分为2大类:英文字符(ASCII)和中文字符(GB2312);在黑白屏的显示下,标准字库采用的是SANS_12,这个是最常用的一个字库。此外,按键字库,英文智能输入法和开关机所显示的字体全部采用这个常用字库。

3.9输入法库的制作

Zi8DatZH.z8d中文的智能输入法库、数据库、索引表,通过拼音定位到某个字对应的Unicode,再根据Unicode值在字库中查找对应字的图片并显示出来。

4设计结果及输出

一般在测试之前,需要将写好的代码进行编译,然后通过下载工具将生成4种格式文件资源即代码文件、参数定义文件、记录文件、系统文件,将这4个文件打包下载到话机里进行测试。

但由于这个平台搭建了一个VC下的模拟器,所以可以直接在PC上进行模拟测试,如图3所示。当按下相应的按键时,出现相应的候选词,通过上下左右键,选择自己想要的单词,并通过左右软键确定或删除,得到以上结果。

等测试成功之后,再通过USB连接到话机上,通过下载器下载到话机实现设计。

图3VC下模拟器的模拟结果5结语

本文讨论了Infineon平台下波兰语智能输入法设计过程。在话机上实现智能输入法的下一步工作包括:界面的美化,比如说图标的显示以及输入文字的限定,之后可以实现艺术字体或动态字体的输入。智能输入法库的记忆性,通过设计函数统计用户使用文字的频率,使频率出现高的字先供用户选择。

随着社会的发展,高科技产品越来越多的出现,手机也渐渐成为人们生活中的必需品,在输入法上可以实现的智能联想功能也会越来越先进。期待着更多类似于电脑端的智能输入出现在我们的手机当中。

参考文献

[1]宋光照,傅江如,刘世军,等.手机软件测试最佳实践[M].北京:电子工业出版社,2009.

[2]匡文波.手机媒体概论[M].北京:中国人民大学出版社,2006.

[3]和凌志,郭世平.手机软件平台架构解析[M].北京:电子工业出版社,2009.

[4]谭浩强.新世纪计算机基础教育丛书C程序设计[M].3版.北京:清华大学出版社,2005.

[5]林锐,韩永泉.高质量程序设计指南:C++、C语言[M].3版.北京:电子工业出版社,2007.

[6]Shaffer C A.数据结构与算法分析(C++版)(英文版)[M].2版.北京:电子工业出版社,2009.

[7]魏洪兴.嵌入式系统设计师教程[M].北京:清华大学出版社,2006.

[8]吕继兴.嵌入式系统中汉字的数字输入技术研究[D].保定:河北农业大学,2003.

[9]吴海辉.笔画码汉字输入法软件设计与实现[D].合肥:安徽大学,2004.

[10]曲卫华.手机中文输入法的设计与实现[D].北京:中国地质大学,2007.

[11]朱晓旭.手持设备汉字输入法自动生成技术研究与实现[D].苏州:苏州大学,2005.

[12]张鹏.基于Symbian OS手机输入法的研究与设计[D].汕头:汕头大学,2009.

作者简介: 张丽婷女,1985年出生,山东日照人,硕士研究生。研究方向为智能输入法。