CN101271389A - 嵌入式藏文智能信息处理方法 - Google Patents
嵌入式藏文智能信息处理方法 Download PDFInfo
- Publication number
- CN101271389A CN101271389A CNA2008100233078A CN200810023307A CN101271389A CN 101271389 A CN101271389 A CN 101271389A CN A2008100233078 A CNA2008100233078 A CN A2008100233078A CN 200810023307 A CN200810023307 A CN 200810023307A CN 101271389 A CN101271389 A CN 101271389A
- Authority
- CN
- China
- Prior art keywords
- tibetan
- character
- embedded
- tibetan language
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
嵌入式藏文智能信息处理方法其特点是建立了一个基于嵌入式Linux系统的藏文智能信息处理方法,将计算功能和通信功能有机地结合起来。在嵌入式系统开发板上移植ARM Linux嵌入式系统,配置各种驱动程序,构造图形用户界面和藏文信息处理方法。嵌入式藏文智能信息处理方法采用了Linux下的QT图形开发环境构建藏文信息环境,通过嵌入式QT/E的移植实现嵌入式藏文智能信息处理方法。同时利用开源项目来开发各种应用程序,因此该系统不但能提供藏文信息的个人信息管理和电话管理等功能,还能实现浏览器、电子邮件和MSN Messenger等网络功能,从而为智能手机和PDA等智能信息终端提供了一个方便实用、功能强大的智能藏文信息方法。
Description
技术领域
本发明涉及嵌入式智能信息处理技术领域,尤其涉及嵌入式藏文智能信息处理方法。
背景技术
藏文作为藏文化的最主要的载体,已有近1400的历史,藏文化中的藏哲学、藏艺术、藏医等科学的成就非凡,是人类文化的精品。随着信息技术及其产业化的快速发展,藏文信息处理技术也不断发展。藏文信息处理技术研究开始于20世纪八十年代初,最早是在DOS系统上采用点阵字库,在本世纪初有了Windows平台和Linux平台上的藏文信息处理软件,有代表性的是北大方正的藏文排版系统和西北民族大学的同元Windows藏文字处理系统,中国科学院软件研究所的Linux平台上的藏文信息处理系统。但这些系统的内码不统一,系统间的兼容性差。目前正在向着ISO/IEC10646标准和《信息技术——藏文编码字符集扩充集A国家标准》的统一规范化的方向上发展。但是嵌入式系统上的藏文信息处理技术还基本处于空白和起步阶段。
藏文是拼音文字有三十个辅音字母、四个元音字母、十个数字和若干个特殊符号组成。辅音字母: 元音字母:鈲鈳鈴鈵;数字:醔醕醖醗醘醙醜醝醞醓;其它符号:丨《》“”);上加字:(的变形为鈾);下加字:(的变形为鉀、的变形为鈿、的变形为鉁)。在藏文三十个辅音字母中, 十个字母为后加字;在十个后加字中五个字母为前加字,两个字母为又后加字。
藏文是一种以辅音字母为主要组成部件的特殊拼音文字,左右拼写、上下叠加,既不同于西文,也有别于汉字。藏文以音节为构词单位,音节拼写的每一个横向单元称为一个字丁。根据“藏文词汇频度统计及其应用研究”的成果统计现代藏文共有500多个字丁。每个音节中基字所在的字丁是纵向叠加的组合体(叠加层数为1~4层),该字丁前面可以有前加字,后面可以有后加字和又后加字。藏文的书写方向从左到右,藏文的音节以隔字符分割,每句后用单锤符或双单锤符结束。
标题: (藏文信息处理技术)
嵌入式系统是指以应用为中心,以计算机技术为基础、软硬件可裁剪、适应于特定应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。由于嵌入式系统的实时性等特点和随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。嵌入式系统广泛应用在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等领域。消费类典型嵌入式产品有手机,PDA,电子字典,可视电话,VCD/DVD/MP3/MP4 Player,数码相机,数字摄像机(DV),机顶盒,HDTV,游戏机,汽车电子等。
嵌入式处理器是以通用计算机的CPU为基础,只保留和嵌入式应用相关的部分,可减小系统的体积且降低系统的功耗。其中以ARM、PowerPC、MC 68000、MIPS等使用得最为广泛。
内存一般选择ROM和RAM,输入输出接口:RS-232,USB,IEEE1394,红外,蓝牙,输入输出装置:手写笔,触控面板,LCD。
嵌入式操作系统常分为实时多任务操作系统(RTOS)与分时多任务操作系统两种。常用的实时多任务嵌入式操作系统有uC/OS-II、RT-Linux和VxWorks等。uC/OS-II和RT-Linux系统公开源代码。分时嵌入式多任务操作系统有WinCE、uCLinux等。智能手机操作系统主要有:Symbian OS,Palm OS,Windows Mobile,嵌入式Linux等。
发明内容
技术问题:本发明的目的是提供一种嵌入式藏文智能信息处理方法,建立了一个基于嵌入式Linux系统的藏文智能信息处理方法,将计算功能和通信功能有机地结合起来。在嵌入式系统开发板上移植ARM Linux嵌入式系统,配置各种驱动程序,构造图形用户界面和藏文信息处理方法。嵌入式藏文智能信息处理方法采用了Linux下的QT图形开发环境构建藏文信息环境,通过嵌入式QT/E的移植实现嵌入式藏文智能信息处理方法。同时利用开源项目来开发各种应用程序,因此该系统不但能提供藏文信息的个人信息管理和电话管理等功能,还能实现浏览器、电子邮件和MSN Messenger等网络功能,从而为智能手机和PDA等智能信息终端提供了一个方便实用、功能强大的智能藏文信息处理方法。
技术方案:本发明的嵌入式藏文智能信息处理方法包括:
1嵌入式藏文智能信息处理系统的硬件结构
采用基于ARM920T内核处理器的S3C2410嵌入式开发板,该主板适合于开发各类高端的手持设备、小型终端以及网络应用产品。它的标准工作频率为203MHz,核心板上的Flash ROM和SDRAM均为64M,并支持1024×768的液晶显示器,附带USB键盘和鼠标。如图1所示。
2嵌入式藏文智能信息处理方法的软件结构
嵌入式系统的体系结构主要包括带操作系统和不带操作系统两种。由于嵌入式藏文智能信息处理方法采用了Linux下的QT/E的实现嵌入式藏文智能信息处理,故本系统采用带有操作系统的结构,如图2所示。嵌入式藏文智能信息处理系统的软件可以按照层次结构自上而下设计,如图3所示。参考QT的体系结构及其与上层应用程序和底层核心的关系,正确显示藏文的总体结构设计如图4所示。
嵌入式藏文智能信息处理方法采用Linux下的Qt/Embedded图形开发环境实现藏文信息处理,通过嵌入式Qt/Embedded的移植实现嵌入式藏文智能信息处理环境,图5所示为QT/Embedded的实现结构。
首先建立Linux交叉编译环境具体步骤如下:
1)对ARM平台,安装cross-arm-binutils-3.i386.rpm,cross-arm-gcc-3.i386.rpm,和cross-arm-glibc-3.i386.rpm这三个包;arm-binutils这个包一般包含了一些针对ARM平台的二进制工具,比如arm-strip,arm-ar等命令;arm-glibc这个包包含的是标准C的函数库的ARM的版本以及对应的头文件;arm-gcc中包含的则是生成ARM平台代码的x86上的交叉编译器;执行rpm命令将这些包安装到PC机上,若不在系统默认搜索目录下,则必须将/opt/cross/bin目录加到系统的PATH环境变量中,这样在每次编译时系统才能找得到编译器;现在只能编译C程序,而不能编译C++程序;准备好内核的源代码之后,下一步就是配置和编译内核;配置和编译内核方法是在内核源代码目录下输入“make menuconfig”命令就可以对内核进行配置,创建一个交叉编译版本的glibe,创建一个交叉编译版本的ghb;内核配置结束后,会创建ARM一Linux-gdb;重新创建gcc,现在glibe已经有编译C++的编译器;
2)移植Qt/Embedded实现藏文支持
下载Qt/Embedded、Qt/X11和Qtopia三个包并分别解压,三者的编译配置都是通过执行相应根目录下的configure文件并传递相关参数来实现;首先,在执行configure对QT/Embedded进行配置,传递三个参数xplatform linux-arm-g++、-qconfig qpe和-no-qvfb;第一个参数指出编译后二进制文件执行时所在的目标平台为linux-arm;第二个参数指出编译器配置头文件是在src/tools/目录下qconfig-qpe.H;第三个参数指出在编译时不需要编译qvfb工具;当目标系统不支持Framebuffer时,在执行启动Qtopia之前先通过执行qvfb来产生一个虚拟的Framebuffer,这时再启动Qtopia相应的内容就会显示在qvfb上;在对Qtopia进行配置时,只传递了一个参数:-platform arm-linux-g++,表示目标平台是ARM平台;在配置并编译完之后,将Qtopia目录下运行时相关目录全部打包并下载到目标系统上,设置了相应的环境变量PEDIR、QTDIR和LD-LIBRARY-PATH后就可以执行;目标系统上的藏文信息显示功能需要通过修改QT/Embedded下的对应源程序,将VC++下完成的藏文处理功能模块嵌入到QT/Embedded下的源程序实现藏文显示和输入;
3)配置Qt/Embedded完成藏文支持
Qt/Embedded的配置采用模块化,根据实际的应用需求增加或删除相应的模块;通过编辑源码包中src/tools/qconfig-*.h文件,在运行./configure的时候加入相对应的-qconfig*选项就可以达到定制Qt/Embedded库的效果,Qt/Embedded提供了国际化支持,注释掉#define QT_NO_TEXTCODEC就可以支持对Unicode字符集解码的功能,在编写的藏文处理程序中,调用QApplication对象中的setDefaultCodec(QTextCodec::codecForName(“GBK”))函数就可以实现对藏文字符集的解码,然后在程序中需要出现藏文的地方用tr(″...″)将藏文括起来就可以实现藏文字符的处理。除此之外,还需要一套Unicode编码的藏文字体文件,藏文字库文件为Tibetli.ttf;
4)藏文输入法的实现
对于藏文的输入法,利用Qt/Embedded开发库提供的输入法编程接口进行藏文输入法开发,输入法以插件的方式运行;将VC++6.0下完成的藏文输入法(发明人主持自然科学基金项目)的码表文件TibetLi.ime作为藏文输入法的码表转换文件,将VC下藏文输入法以插件的方式运行在Qt/Embedded,实现嵌入Linux下的藏文输入法;本输入法的特点是采用内码表,通过定义内码表结构体实现,其中CODETABLE的声明如下:
typedef struct CODETABLE{
TCHAR*cInputs;//保存输入字符串
WORD wCode;//保存编码
irt nLength;}
其第一个成员对应输入的字符串,第二个成员对应内部编码,最后一个成员则表明了输入字符串的长度;如以{_T(″a″),0xFE36,1}为例,表明输入字符串为“a”对应的内部编码为0xFE36即为藏文字符繴,编译后生成输入法码表(TibetLi.ime),供IME输入法中代码转换使用。
嵌入式藏文智能信息处理方法采用Linux下的QT图形开发环境实现藏文信息处理,用TrueType藏文字库和OpenType藏文字库在QT中增加藏文文字处理功能实现Linux下的藏文信息处理。藏文字符信息显示的处理过程如图6所示。
藏文字库的构建方法如下:
1)字库中的字符根据发明人参加完成的“藏文词汇频度统计及其应用研究”的成果统计出的藏文字符到600时,就可以100%地覆盖现代藏文,该藏文字库字符集采选用了526个座位字符;
2)藏文字库制作用了工具软件Font Creator 5.0、Fontographer v4.5和Fontlab v3.0完成,完成基于GB18030-2000适应于现代藏文的小字符集TTF藏文字库TIBETLI.TTF,字库文件大小只有503KB,选用526个藏文字符,能够99.82%覆盖现代藏文;具体字库制作方法为:首先打开Font Creator,新建一个TrueType字符,将每个字符再利用Font Creator的字形输入工具,按照藏文字符的字形形成一个轮廓字符每个字形由一组Bezier曲线构成,通过添加、删除或调整Bezier曲线上的点的位置,可以对字形进行修整;然后可以设置字符的参数,如标准字号的大小、每一个字符前后左右预留的空间大小,最后确定该藏文字符在UNICODE字符集中的编码值,这样,就完成了字库中一个字符的制作过程;
在完成了所有字符制作后,最后生成字库文件,为了保证字库软件的通用性及兼容性,按照相关的Windows TrueType字库标准加入相应的控制字符和通用字符,形成一个符合Windows平台应用标准的字库文件;
字库文件在Font Creator 5.0中显示,每个藏文字符所对应的内部编码可以在其属性下查看;
3)转换为OpenType字库
OpenType字库是Microsoft公司和Adobe公司联合开发的一种基于Unicode且与平台无关的字体格式,是TrueType字体格式的一种扩展,并融合了PostScript字体技术,能更好的支持国际化的处理,采用微软公司的OpenType字库工具VOLT,
具体方法:用TrueType字库中的藏文字符作政字符轮廓,按照IS010646标准确定藏文字符在UNICODE字符集中的编码值,最后生成OpenType字库。制作过程与Font Creator 5.0中TrueType字库制作方法相同,
利用开源项目来开发各种藏文信息处理的应用程序,Qtopia是基于Qt/Embedded图形界面库,包括了窗口操作系统、游戏和多媒体、输入法、工作辅助应用程序等特性,利用Qtopia开发各种应用程序,实现个人藏文信息管理和电话管理以及浏览器、电子邮件和MSN Messenger等网络功能。
实现个人藏文信息管理和处理的具体实现方法是:完成上述步骤的条件下,利用QT支持面向对象的编程方法,将不同的功能可以封装在相应的类中,并在每个类中提供了丰富的方法来实现各种功能的藏文信息处理,例如,用于打印和显示类名为Qpaint,在该类提供了将文字或图片显示到屏幕的方法,也提供了打印文字和图片的接口,可以加入藏文字符的打印和显示。
Qt/Embedded可扩展性好,为应用程序开发者提供了丰富的类和组件,同时,Trolltech公司发布了QT的免费版本,系统平台的开发者可以对Qt/Embedded库本身进行修改来支持桌面环境和应用程序希望具有的特殊功能,如藏文文字的支持。在浏览器、电子邮件和MSN Messenger中实现藏文信息处理时,只要在操作系统级Linux下支持藏文即可实现相应功能。对于一些特殊的功能可以利用相应的开发工具实现。如在MSN Messenger中实现藏文显示必须通信双方都要支持藏文。若只需显示藏文,简单方法是将藏文字库考入到对方计算机系统中的字库目录下就可以解决。
有益效果:本发明的嵌入式藏文智能信息处理方法,建立了一个基于嵌入式Linux系统的藏文智能信息处理方法,将计算功能和通信功能有机地结合起来。在嵌入式系统开发板上移植ARM Linux嵌入式系统,配置各种驱动程序,构造图形用户界面和藏文信息处理方法。嵌入式藏文智能信息处理方法采用了Linux下的QT图形开发环境构建藏文信息环境,通过嵌入式QT/E的移植实现嵌入式藏文智能信息处理方法。同时利用开源项目来开发各种应用程序,因此该系统不但能提供藏文信息的个人信息管理和电话管理等功能,还能实现浏览器、电子邮件和MSNMessenger等网络功能,从而为智能手机和PDA等智能信息终端提供了一个方便实用、功能强大的智能藏文信息处理方法。
附图说明
图1是嵌入式藏文智能信息处理方法的硬件系统结构示意图,
图2嵌入式藏文智能信息处理方法的系统结构图,
图3是嵌入式藏文智能信息处理方法的软件结构示意图,
图4在QT中实现藏文显示的总体结构示意图,
图5Qt/Embedded的实现结构示意图,
图6QT中从应用程序到藏文语言模块的处理流程示意图,
图7内核移植流程示意图。
图8字库文件在Font Creator 5.0中显示。
图9是一个4字丁音节。
具体实施方式
本发明的嵌入式藏文智能信息处理方法包括:
1.嵌入式藏文智能信息处理方法的系统结构
1.1嵌入式藏文智能信息处理方法硬件系统
采用基于ARM920T内核处理器的S3C2410嵌入式开发板,该主板适合于开发各类高端的手持设备、小型终端以及网络应用产品。它的标准工作频率为203MHz,核心板上的Flash ROM和SDRAM均为64M,并支持1024×768的液晶显示器,附带USB键盘和鼠标。如图1所示。
1.2嵌入式藏文智能信息处理方法的软件结构
嵌入式藏文智能信息处理方法采用了Linux下的Qt/Embedded图形开发环境构建藏文信息环境,通过嵌入式Qt/Embedded的移植实现嵌入式藏文智能信息处理方法。同时利用开源项目来开发各种应用程序,因此该系统不但能提供藏文信息的个人信息管理和电话管理等功能,还能实现浏览器、电子邮件和MSN Messenger等网络功能,从而为智能手机和PDA等智能信息终端提供了一个方便实用、功能强大的智能藏文信息方法。
嵌入式系统的体系结构主要包括带操作系统和不带操作系统两种。由于操作系统包含着多种硬件设备的驱动程序,同时也有着大量的应用程序这都使它得到越来越广泛的使用。又由于嵌入式藏文智能信息处理方法采用了Linux下的QT图形开发环境构建藏文信息环境,通过嵌入式QT/E的移植实现嵌入式藏文智能信息处理方法,因此,在系统中采用带有操作系统的结构,如图2所示。Bootloader就是在操作系统内核运行之前运行的一段小程序。大多数功能齐备的Bootloader都包含两种不同的操作模式:“启动加载”模式和“下载”模式。其启动过程分为单阶段和多阶段两种。其中,最常用的是两阶段的启动过程。阶段1中通常包括依赖于CPU体系结构的代码,如设备初始化代码等,而且通常都用汇编语言来实现,以达到短小精悍的目的,从而提高程序执行的效率。而阶段2则通常包括其它一些功能的实现代码,如下载程序与控制台程序等,多用语法简单、表现能力和处理能力强、效率高、可移植性好的C语言来实现,这样既可以实现复杂的功能,也会使代码具有更好的可读性和可移植性。嵌入式藏文智能信息处理方法采用的是两阶段的启动过程。
嵌入式藏文智能信息处理系统的软件可以按照层次结构自上而下设计,如图3所示。按照层次结构自上而下分为X-Client层、X-Server层、Driver层和Kernel层等四层。X-Client层其实就是面向用户的应用层,其中包含了大量的有关个人信息管理、通信管理和网络等方面的应用程序;X-Server层负责应用程序的窗口管理、相互之间的通信管理等功能;而Driver层则是各种I/O外围设备如TAD、Modem等的驱动程序;最底层是操作系统内核层,用于提供基本的内核管理功能如进程调度、内存管理等等。
2.使用QT构建嵌入式Linux藏文环境
QT是Linux上比较常用的上层函数库,它对文字处理的功能虽然非常强大,提供了阿拉伯文、印度文等文字的处理,但是没有提供对中国少数民族语言文字的处理;OpenType字库文件提供了民族语言文字变形显示相关的处理技术和表格,而且在QT中提供了方便地访问OpenType字体文件的接口。因此,基于OpenType字库在QT中增加藏文文字处理的模块可以实现Linux上的藏文文字的显示和处理。Linux系统对藏文字符的支持需要建立在其国际化机制的基础上,国际化机制的一个重要方面就是对字符编码标准的支持。用QT进行国际化编程,有一种相对直接的方法,QT提供了专门用于转换字符编码的类QtextCodec,它可以方便地实现本地化编码方式与相应Unicode码之间的转换。在QT中对语言文字的处理集中在与该文字相对应的语言模块中,因此解决藏文显示的问题需要从两方面来考虑:一方面在藏文处理模块中提供从字符到字形替换操作的算法实现,另一方面在字体文件中提供替换规则。参考QT的体系结构及其与上层应用程序和底层核心的关系,正确显示藏文的总体设计如图4所示。
2.1OpenType字体文件结构及设计
OpenType是一种特殊的字体文件格式,与常用的True-Type字体文件格式相比扩展了一些与民族文字显示相关的高级排版功能的表格,包括BASE、GDEF、GPOS、GSUB和JSTF。其中BASE表定义了每种文字的基线和扩展数据范围;GDEF包含文字处理时的光标位置和笔画连接点等信息;GSUB和GPOS表分别定义了文字的替换和位置特性;通过JSTF表字体解释器可以再对显现字形进行调整。其中GSUB表与从名义字符到显现字形的替换操作直接相关。QT中的语言模块通过使用GSUB表中的数据来管理字形替换操作。
2.2QT中藏文显示模块的设计与实现
QT在操作系统中位于应用程序与底层库函数之间,必须为不同文字的文件或程序提供透明的、与语言无关的输出显示过程,也就是说必须使用户和应用程序不用关心输入文件中使用了何种文字都能正确显示输出。由于待输出显示的文件中可能含有多种文字,不同的文字显示方法可能会大相径庭,因此,在QT中,不同的文字对应不同的文字处理模块,如果把需要输出显示的文件看成很长的文本字符串,整体的处理流程如下:
①分段(Itemization):对Unicode编码的文本串根据其文字种类和书写方向进行分析,然后分割分成只具有单一书写方向和单一文字的词条(item),在后续的处理中,每个词条可以交给单独的语言模块来控制;
②确定词边界(BoundaryResolution):为每个词条确定词边界和行边界。在大多数情况下有通用的算法来处理这一过程,但是对某些文字来说需要用专门的算法来处理;
③名义字符到显现字形的映射(Shapping):将每个词条里的字符替换成相应的字形,不同语言需要不同的语言模块,涉及的函数通常被命名为script_shape();
④分行(Line breaking):根据Boundary Resolution和Shapping的结果来决定在何处分行,并且再次调用script_shape()对显现字形进行最后的选择和定位,因为将一个词断开之后,它的显现字形可能会发生变化;
⑤显示(Rendering):Shapping和LineBreaking处理的结果是显示字形串集合,包括从字体中取出的字形列表一级每个显现字形的定位信息。rendering过程根据所使用的字体类型和显现字形的相关信息将文本进行显示。在QT中的具体实现使用面向对象的方法,在不同的类中用方法来实现。
跟踪一个文本编辑器的处理过程可以发现:应用程序通过调用QPainter类进行字体绘制,在QPainter类中提供了DrawText方法,负责字体的条目化、字符的布局、名义字符到显现字符的转化、处理每个字符的属性等操作,这些操作是通过使用QTextEngine类和QTextLayout类来完成的。其中QTextLayout类负责处理显示字符的布局,规定每一个Item字符串在何处显示;而QTextEngine类负责处理将文本串中的名义字符映射到相应的显现字形。在QTextEngine中提供了Itemize和shape方法,以及跳转表(JumpTable),其中Itemize方法处理文本串的条目化,shape方法以词条(item)为单位进行处理,根据词条(item)的文字属性参照跳转表选择合适的语言处理模块(Script_Shape)进行显现字形的选择和显示处理。详细的处理过程如图6所示。
2.3字体匹配
QT文本处理引擎先根据Unicode字符的方向属性(bc)和文字属性(Script)对文本分段(Itemization),然后再分别处理这些段(Item)。每个段(Item)是按照相同方向(如:L TR、RTL)来输出的、具有某种文字属性的文本块。通常不同的段所使用的字体不同,在光栅化之前,需要先确定输出段(Item)时所用的字体。QT利用段(Item)中的字符的sc属性,来匹配输出该段的字体,具体步骤是:由该段中字符的sc属性,获取与sc文字所对应的特征字符;然后用这个特征字符,去遴选输出该段(Item)的字体文件。在QT中,藏文的特征字符是0x0F00,汉字的特征字符是0x4E00。
3.嵌入式QT/E的移植
QT是由Trolltech这家公司所开发的一套开源的C++图形用户界面库。QT/Embedded则是在嵌入式环境下所使用的QT。目前市面上所有上市的Linux PDA都是采用QT/Embedded作为图形接口的函数库。QT/Embedded的特性是可以直接在Framebuffer上显示图形接口,反应的速度更快,这对硬件与容量都有限的嵌入式环境来说非常重要。图5为QT/Embedded的实现结构。
3.1交叉编译和移植QT/Embedded
GUI的编译通常都是在PC机上执行的,也就是说,编译器本身能够在PC机上执行,同时编译源代码生成的二进制文件必须能在目标机上执行,这类编译器通常称为交叉编译器。对于ARM平台,安装cross-arm-binutils-3.i386.rpm、cross-arm-gcc-3.i386.rpm、cross-arm-glibc-3.i386.rpm这三个包。arm-binutils这个包一般包含了一些针对ARM平台的二进制工具,比如arm-strip、arm-ar等命令;arm-glibc这个包包含的是标准C的函数库的ARM的版本以及对应的头文件;arm-gcc中包含的则是生成ARM平台代码的x86上的交叉编译器。执行rpm命令将这些包安装到PC机上,若不在系统默认搜索目录下,则必须将/opt/cross/bin目录加到系统的PATH环境变量中,这样在每次编译时系统才能找得到编译器。另外需要注意的是,编译时所用的函数库版本要与目标版上运行时所用的函数库版本一致。经过上述步骤,就已经建立了交叉编译环境,接下来的就是选择或修改GUI的编译选项,从而生成所需要的GUI系统。
移植过程也是改写BSP的过程.BSP又称板级支持包,它是一个包括启动程序、OEM适配层程序(OAL)、标准开发板(SDB)和相关硬件设备的驱动程序的软件包。
操作系统移植步骤为:
1)对操作系统进行裁减,配置各个组件并且修改相关的配置文件;
2)开发目标设备系统上的设备驱动程序,建立定制的操作系统映像文件;
3)将目标文件下载到目标设备上进行调试;
4)定制操作系统内核后,导出平台SDK。内核移植流程如图7所示。
本发明中采用了QT/Embedded 2.3.6自由版作为目标板Linux图形界面库。在交叉编译前需要先修改Qt/Embedded的配置文件,将GCC,G++编译器和链接器设置为前文编译安装的交叉编译工具链。接着是设置环境变量,如下:
export PATH=/opt/host/armv41/bin:$PATH
export QTDIR=$PWD
export QTEDIR=$QTDIR
export LD-LIBRARY-PATH=$QTDIR/lib:$LD-LI2BRARY-PATH
然后配置Qt/Embedded,将Qt/Embedded配置为动态链接库,并支持Unicode。将编译链接后生成的程序拷贝到目标板文件系统。这样当开发板启动以后,就可以在嵌入式系统下运行基于Qt/Embedded的应用程序了。
3.2交叉编译和移植Qtopia
Qtopia是Trolltech为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台,它是基于Qt/Embedded图形界面库。Qtopia包括了窗口操作系统、游戏和多媒体、输入法、工作辅助应用程序等特性。同Qt/Embedded交叉编译一样,首先需要先修改Qtopia的配置文件,将GCC,G++编译器和链接器设置为前文编译安装的交叉编译工具链。接着是设置Qtopia环境变量,因为Qtopia是基于Qt/Embedded库的,因此需要方才交叉编译的动态链接库的支持,需要同时设置QT的环境变量。
由于Qt/Embedded图形系统内部支持Unicode,对于藏文的显示,调用Qt/Embedded与国际化有关的类及函数,利用它当中提供的语言工具处理后,即可显示藏文;对于藏文的输入,Qtopia软件包中并没有提供任何中文输入法,但可利用Qtopia开发库所提供的输入法编程接口进行中文输入法和藏文输入法的开发,所实现的输入法最终以插件的方式运行,需通过插件装载器装载到系统中。由于Qt/Embedded本身面向高端的手持设备和移动设备,将成为未来嵌入式系统的主流GUI。
本发明为智能手机和PDA等智能信息终端提供了一个方便实用、功能强大的智能藏文信息处理方法。
Claims (2)
1.一种嵌入式藏文智能信息处理方法,其特征在于该处理方法包括:
嵌入式藏文智能信息处理方法采用Linux下的Qt/Embedded图形开发环境实现藏文信息处理,通过嵌入式Qt/Embedded的移植实现嵌入式藏文智能信息处理环境;首先建立Linux交叉编译环境具体步骤如下:
1)对ARM平台,安装cross-arm-binutils-3.i386.rpm,cross-arm-gcc-3.i386.rpm,和cross-arm-glibc-3.i386.rpm这三个包;arm-binutils这个包一般包含了一些针对ARM平台的二进制工具,arm-glibc这个包包含的是标准C的函数库的ARM的版本以及对应的头文件;arm-gcc中包含的则是生成ARM平台代码的x86上的交叉编译器;执行rpm命令将这些包安装到PC机上,若不在系统默认搜索目录下,则必须将/opt/cross/bin目录加到系统的PATH环境变量中,这样在每次编译时系统才能找得到编译器;现在只能编译C程序,而不能编译C++程序;准备好内核的源代码之后,下一步就是配置和编译内核;配置和编译内核方法是在内核源代码目录下输入“make menuconfig”命令就可以对内核进行配置,创建一个交叉编译版本的glibe,创建一个交叉编译版本的ghb;内核配置结束后,会创建ARM一Linux-gdb重新创建gcc,现在glibe已经有编译C++的编译器;
2)移植Qt/Embedded实现藏文支持
下载Qt/Embedded、Qt/X11和Qtopia三个包并分别解压,三者的编译配置都是通过执行相应根目录下的configure文件并传递相关参数来实现;首先,在执行configure对QT/Embedded进行配置,传递三个参数xplatform linux-arm-g++、-qconfig qpe和-no-qvfb;第一个参数指出编译后二进制文件执行时所在的目标平台为linux-arm;第二个参数指出编译器配置头文件是在src/tools/目录下qconfig-qpe.H;第三个参数指出在编译时不需要编译qvfbT具;当目标系统不支持Framebuffer时,在执行启动Qtopia之前先通过执行qvtb来产生一个虚拟的Framebuffer,这时再启动Qtopia相应的内容就会显示在qvfb上;在对Qtopia进行配置时,只传递了一个参数:-platform arm-linux-g++,表示目标平台是ARM平台;在配置并编译完之后,将Qtopia目录下运行时相关目录全部打包并下载到目标系统上,设置了相应的环境变量PEDIR、QTDIR和LD-LIBRARY-PATH后就可以执行;目标系统上的藏文信息显示功能需要通过修改QT/Embedded下的对应源程序,将VC++下完成的藏文处理功能模块嵌入到QT/Embedded下的源程序实现藏文显示和输入;
3)配置Qt/Embedded完成藏文支持
Qt/Embedded的配置采用模块化,根据实际的应用需求增加或删除相应的模块;通过编辑源码包中src/tools/qconfig-*.h文件,在运行./configure的时候加入相对应的-qconfig*选项就可以达到定制Qt/Embedded库的效果,Qt/Embedded提供了国际化支持,注释掉#define QT_NO_TEXTCODEC就可以支持对Unicode字符集解码的功能,在编写的藏文处理程序中,调用QApplication对象中的setDefaultCodec函数就可以实现对藏文字符集的解码,然后在程序中需要出现藏文的地方用tr(″...″)将藏文括起来就可以实现藏文字符的处理。除此之外,还需要一套Unicode编码的藏文字体文件,藏文字库文件为Tibetli.ttf;
4)藏文输入法的实现
对于藏文的输入法,利用Qt/Embedded开发库提供的输入法编程接口进行藏文输入法开发,输入法以插件的方式运行;将VC++6.0下完成的藏文输入法的码表文件TibetLi.ime作为藏文输入法的码表转换文件,将VC下藏文输入法以插件的方式运行在Qt/Embedded,实现嵌入Linux下的藏文输入法;本输入法的特点是采用内码表,通过定义内码表结构体实现,其中CODETABLE的声明如下:
typedef struct CODETABLE{
TCHAR*cInputs;//保存输入字符串
WORD wCode;//保存编码
int nLength;}
其第一个成员对应输入的字符串,第二个成员对应内部编码,最后一个成员则表明了输入字符串的长度;编译后生成输入法码表供IME输入法中代码转换使用。
2.如权利要求1所述的嵌入式藏文智能信息处理方法,其特征在于嵌入式藏文智能信息处理方法采用Linux下的QT图形开发环境实现藏文信息处理,用TrueType藏文字库和OpenType藏文字库在QT中增加藏文文字处理功能实现Linux下的藏文信息处理,藏文字库的构建方法如下:
1)字库中的字符根据统计出的藏文字符到600时,就可以100%地覆盖现代藏文,该藏文字库字符集采选用了526个座位字符;
2)藏文字库制作用了工具软件Font Creator 5.0、Fontographer v4.5和Fontlab v3.0完成,完成基于GB18030-2000适应于现代藏文的小字符集TTF藏文字库TIBETLI.TTF,选用526个藏文字符,能够99.82%覆盖现代藏文;具体字库制作方法为:首先打开Font Creator,新建一个TrueType字符,将每个字符再利用FontCreator的字形输入工具,按照藏文字符的字形形成一个轮廓字符每个字形由一组Bezier曲线构成,通过添加、删除或调整Bezier曲线上的点的位置,可以对字形进行修整;然后可以设置字符的参数,如标准字号的大小、每一个字符前后左右预留的空间大小,最后确定该藏文字符在UNICODE字符集中的编码值,这样,就完成了字库中一个字符的制作过程;
在完成了所有字符制作后,最后生成字库文件,为了保证字库软件的通用性及兼容性,按照相关的Windows TrueType字库标准加入相应的控制字符和通用字符,形成一个符合Windows平台应用标准的字库文件;每个藏文字符所对应的内部编码可以在其属性下查看;
3)转换为OpenType字库
具体方法:用TrueType字库中的藏文字符作政字符轮廓,按照IS010646标准确定藏文字符在UNICODE字符集中的编码值,最后生成OpenType字库。制作过程与Font Creator 5.0中TrueType字库制作方法相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100233078A CN101271389B (zh) | 2008-04-08 | 2008-04-08 | 嵌入式藏文智能信息处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100233078A CN101271389B (zh) | 2008-04-08 | 2008-04-08 | 嵌入式藏文智能信息处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101271389A true CN101271389A (zh) | 2008-09-24 |
CN101271389B CN101271389B (zh) | 2010-06-02 |
Family
ID=40005383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100233078A Expired - Fee Related CN101271389B (zh) | 2008-04-08 | 2008-04-08 | 嵌入式藏文智能信息处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101271389B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763264A (zh) * | 2010-01-15 | 2010-06-30 | 山东高效能服务器和存储研究院 | 一种测试软件在安腾64位平台下运行的方法 |
CN101539859B (zh) * | 2008-10-10 | 2011-12-07 | 华南理工大学 | 一种基于uCLinux的嵌入式Konqueror浏览器的插件开发方法 |
CN103049095A (zh) * | 2012-12-06 | 2013-04-17 | 郑州威科姆科技股份有限公司 | 一种嵌入式设备藏文语言输入方法 |
CN103488748A (zh) * | 2013-09-23 | 2014-01-01 | 深圳Tcl新技术有限公司 | 一种Android系统的藏文字库配置方法和装置 |
CN104199628A (zh) * | 2014-08-07 | 2014-12-10 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN106095685A (zh) * | 2016-06-20 | 2016-11-09 | 浪潮电子信息产业股份有限公司 | 基于linux系统服务器功能测试界面显示的方法 |
CN107479897A (zh) * | 2017-08-23 | 2017-12-15 | 珠海安联锐视科技股份有限公司 | 一种在视频监控设备上使用的矢量图形界面缩放方法 |
CN113448837A (zh) * | 2020-11-03 | 2021-09-28 | 北京新氧科技有限公司 | 开发及测试环境部署方法、系统、电子设备及介质 |
CN113535230A (zh) * | 2021-06-07 | 2021-10-22 | 上海古鳌电子科技股份有限公司 | 一种工程源码动态自适应不同硬件资源的方法及系统 |
CN114330248A (zh) * | 2022-02-22 | 2022-04-12 | 深圳市微克科技有限公司 | 一种智能穿戴系统自动切换多国语言的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0017201D0 (en) * | 2000-07-14 | 2000-08-30 | Ibm | Generalised program hooks |
CN100370398C (zh) * | 2005-08-31 | 2008-02-20 | 内蒙古蒙科立软件有限责任公司 | 现代藏文和梵音藏字的字处理系统 |
-
2008
- 2008-04-08 CN CN2008100233078A patent/CN101271389B/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539859B (zh) * | 2008-10-10 | 2011-12-07 | 华南理工大学 | 一种基于uCLinux的嵌入式Konqueror浏览器的插件开发方法 |
CN101763264A (zh) * | 2010-01-15 | 2010-06-30 | 山东高效能服务器和存储研究院 | 一种测试软件在安腾64位平台下运行的方法 |
CN103049095A (zh) * | 2012-12-06 | 2013-04-17 | 郑州威科姆科技股份有限公司 | 一种嵌入式设备藏文语言输入方法 |
CN103049095B (zh) * | 2012-12-06 | 2016-08-03 | 郑州威科姆科技股份有限公司 | 一种嵌入式设备藏文语言输入方法 |
CN103488748A (zh) * | 2013-09-23 | 2014-01-01 | 深圳Tcl新技术有限公司 | 一种Android系统的藏文字库配置方法和装置 |
CN103488748B (zh) * | 2013-09-23 | 2017-07-25 | 深圳Tcl新技术有限公司 | 一种Android系统的藏文字库配置方法和装置 |
CN104199628B (zh) * | 2014-08-07 | 2019-08-27 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN104199628A (zh) * | 2014-08-07 | 2014-12-10 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN106095685A (zh) * | 2016-06-20 | 2016-11-09 | 浪潮电子信息产业股份有限公司 | 基于linux系统服务器功能测试界面显示的方法 |
CN107479897B (zh) * | 2017-08-23 | 2018-03-27 | 珠海安联锐视科技股份有限公司 | 一种在视频监控设备上使用的矢量图形界面缩放方法 |
CN107479897A (zh) * | 2017-08-23 | 2017-12-15 | 珠海安联锐视科技股份有限公司 | 一种在视频监控设备上使用的矢量图形界面缩放方法 |
CN113448837A (zh) * | 2020-11-03 | 2021-09-28 | 北京新氧科技有限公司 | 开发及测试环境部署方法、系统、电子设备及介质 |
CN113448837B (zh) * | 2020-11-03 | 2024-03-19 | 北京新氧科技有限公司 | 开发及测试环境部署方法、系统、电子设备及介质 |
CN113535230A (zh) * | 2021-06-07 | 2021-10-22 | 上海古鳌电子科技股份有限公司 | 一种工程源码动态自适应不同硬件资源的方法及系统 |
CN114330248A (zh) * | 2022-02-22 | 2022-04-12 | 深圳市微克科技有限公司 | 一种智能穿戴系统自动切换多国语言的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101271389B (zh) | 2010-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101271389B (zh) | 嵌入式藏文智能信息处理方法 | |
Petzold | Programming windows | |
US7554529B2 (en) | Smart soft keyboard | |
KR20050039551A (ko) | 컴퓨터 플랫폼용 프로그래밍 인터페이스 | |
JP2005135398A (ja) | インプット・メソッドにコンテクストを提供するシステムおよび方法 | |
AU2004205327A1 (en) | Programming interface for a computer platform | |
US11677807B2 (en) | System and method to standardize and improve implementation efficiency of user interface content | |
Kajler et al. | A survey of user interfaces for computer algebra systems | |
US11080024B2 (en) | In-line code adornments | |
US20020146181A1 (en) | System, method and computer program product for a multi-lingual text engine | |
Pohja | COMPARISON OF COMMON XML-BASED WEB USER INTERFACE LANGUAGESCOMPARISON OF COMMON XML-BASED WEB USER INTERFACE LANGUAGES | |
US20050177818A1 (en) | Integration of external tools into an existing design environment | |
CN115857934A (zh) | 一种根据配置变量文件生成表单页面的方法 | |
CN100405293C (zh) | 点阵图形界面开发方法 | |
CN101325758A (zh) | 可显示多种语言的移动通讯装置及方法 | |
CN105630149A (zh) | 用于提供包含手语的用户界面的技术 | |
CN105260035A (zh) | 一种自造字的输入方法和装置 | |
CN101067785B (zh) | 一种基于嵌入式平台的资源管理方法及系统 | |
Ruckert et al. | The HINT Project: Status and open questions | |
Schneider et al. | AUI: A programming language for developing plastic interactive software | |
CN113741900B (zh) | 一种前端页面应用的开发方法、装置及相关设备 | |
Mudur | On the need for cultural representation in interactive systems | |
CN101303690A (zh) | 信息搜索方法与系统及其输入装置 | |
CN117724694A (zh) | 一种数据库代码编辑器处理方法及装置 | |
EP1407351A2 (en) | Control display unit page builder software tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 212028 Zhenjiang, Dantu Metro Industrial Park Rui East Road, No. 9 Patentee after: Jiangsu University of Science and Technology Address before: 212003 Zhenjiang,, Jiangsu, Jiangsu University of Science and Technology, No. Patentee before: Jiangsu University of Science and Technology |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100602 Termination date: 20170408 |