论文发表指导_期刊投稿推荐_期刊论文发表咨询_职称驿站

论文发表指导,期刊推荐,国际出版

职称驿站学术导航
关闭职称驿站导航

论文发表职称晋升 全方位咨询服务

学术出版,国际教著,国际期刊,SCI,SSCI,EI,SCOPUS,A&HCI等高端学术咨询

数控系统人机界面国际化方法探讨

来源:职称驿站所属分类:智能科学技术论文
发布时间:浏览:94次

  摘要:本文对运用python脚本语言和Unicode在数控系统人机界面设计中支持多国语言的方法进行了探讨,并结合具体的项目开发实例进行了阐述。此方法伸缩性强,可用于资源非常稀少的单片机系统,也可以适用于各种具备大存储空间的高级嵌入式产品。

  关键词:数控系统,点阵字库,国际化,python

  随着国内数控技术成熟和全球化贸易的兴起,国产数控系统被销往世界各地的情况越来越普遍。为这些产品找到一个简单易行的界面国际化方法越发显得重要。各种嵌入式产品的人机界面中,绝大多数产品会使用点阵字库。本文介绍一种以python脚本自动生成支持多国语言的点阵字库的开发方法,并探讨支持产品国际化的方法。

  1.点阵字库概述

  点阵字体即通过像素矩阵描述一个文字符号,以一个2进制比特位对应屏幕上的一个像素点,0表示背景色或无内容,1表示前景色;通过把像素矩阵投影到显示屏上,字符得以显示。点阵字体由于其显示渲染简单,存储数据量少的特点,非常适合用于各种类型的嵌入式系统中。顺序记录多个字符的信息就构成字库。简体中文点阵字库通常以GB2312编码为标准,收集约5千个常用简体中文字符。

  使用点阵字库需要两个已知条件,1)是字库内的字符编码:如果是定制库,调用编码等于点阵信息在库中的位置;如果是编码库,调用编码就是字符在该编码集中的编码。2)是点阵的宽和高。点阵的宽和高首先是用于计算字符点阵在字库内的偏移量,再就是把字符点阵正确的映射到显示屏上。

  2.Python脚本语言制作多语言字库

  Python语言是一种高级、灵活的脚本语言,广泛的应用于下至嵌入式系统,上至大型科学技术和网络服务器的广阔领域中[1],美国的好奇号火星车就有大量的代码是用python脚本生成的[2]。笔者在为CNC数控系统制定人机界面时,希望有一个灵活的方法能支持国际化多语言的方案,因此需要有一个能支持生成多种字符编码集的字模提取工具。Python内部使用Unicode 万国码[3],能支持几乎所有已知的语言文字字符编码,因此是实现这个多国文字字库的理想语言工具。要提取字母还得有辅助的图形库用于显示字符到屏幕,支持Python的图形库选择很多,笔者选择了跨平台性良好的WX类库[2]。

  2.1参数化的多语言点阵字库自动生成.为适应多语言要求,可以有两个方案,1)是把Unicode编码的所有字符都提取出来制作一个Unicode点阵字库,此方法可以同时支持多国语言,但字库较庞大。字符串资源可以使用本地编码存储,显示时再转码;也可以预先转化成Unicode编码。2)使用Unicode中对应本地编码(如中文GB2312)的某段制作点阵字库。系统需提供更换资源文件和字库文件的机制。

  考虑到东亚的方块字和欧洲的字母语言的宽高比不能统一,提取整个Unicode编码的字

  符点阵比较浪费空间,笔者选择了第二种方法。笔者建立了基于CJK编码约2万字的的字

  库,配合默认的英文ASCII字库,可以覆盖东南亚及欧美主要市场的需要(CJK编码是

  Unicode中从0x4E00到0x9FFF的中日韩統一表意文字的简写[4])。CNC数控系统的用户界

  面需要不同大小的几种文字,需要对应大小的点阵字库,因此,除了编码集信息外,可把字

  体和大小作为参数传递进字模提取脚本,使得脚本可以产生任意编码,字体和大小的点阵字

  库。以下是提取CJK编码任意大小字库的关键代码:

  for i in range(CharCodeStart,CharCodeEnd):

  uchar=unicode("u%04X"%i,"unicode-escape" ) #通过转义字符得到Unicode字符

  self.dc.DrawText(chr,0,0) #在画布上画出字符

  k=self.getCharPixel(uchar) #获取字符点阵像素点

  self.chrpixellist[i]=k

  通过改变画出的字体大小,可获取任意大小的字符点阵。

  2.2建立国际化资源文件.有了Unicode字库后,可以把系统中所有字符串资源在编译程序前先在PC上转码成Unicode,这样虽然ASCII字符从一字节变成两字节,浪费一些存储空间,但获得同时存储多种语言的能力。这要求开发人员在编写程序中就做好规划,把所有字符串资源集中到一个文件中,后面通过python脚本进行文字转码。笔者定义的字符串资源格式如下:

  RESSTR_TYPE oemstr[]={

  RESOURCE_STR(STR_OEM_BANK, "广州诺信数字测控设备有限公司"),

  //RESOURCE_STR_EN(STR_OEM_BANK, "LOKSHUN LTD"), }

  这里演示的是中英文版本的字符串资源,按此格式可以继续扩展到其他地区语言。

  python通过正则表达式搜索后,首先用STR_OEM_BANK给字符串定义一个全局索引号,

  其次分别把中文和英文资源经过如下转码语句转换成Unicode并写入中英资源数组里:

  ustr=unicode(relstr+'rn','gbk')

  编码时,程序可以通过向DispResStringCORE(INT32U ResIndex)函数传递

  STR_OEM_BANK找到该字符串的中文或者英文版本(视用户选择的地区语言而定)。

  如果需要支持的语言种类很多,不能把所有种类的语言资源都编译到ROM里或者不想

  占据过多的内存,可以把字符串资源写成相应的配置文件存在系统的外存储器上,在系统开

  启时只要根据当前选择的地区语言加载对应的字符资源文件。

  3.结束语

  本文介绍的通过python脚本语言自动产生多种语言和编码的点阵字库,并通过转换地区语言字符串为Unicode编码字符串,方便地实现嵌入式机电产品的人机界面国际化。此方法还可以配合SCON、CMAKE等自动编译脚本自动执行,进一步简化操作,提高效率。

  参考文献

  [1]Martin C.brown 康博.译.Python 技术参考大全.清华大学出版社,2004.1

《数控系统人机界面国际化方法探讨》

本文由职称驿站首发,您身边的高端学术顾问

文章名称: 数控系统人机界面国际化方法探讨

文章地址: https://m.zhichengyz.com/p-21709

相关内容推荐
专著出版价格影响因素
只取得了书号,就一定公开出版了么
Journal of the Indian Society of Remote Sensing容易中稿吗
副高专业技术职称sci论文可以吗
Journal of Medical Virology是sci吗
进职称论文可以用综述论文吗
国际出版社出版的专著能够用来评职称吗
老师出专著需要多长时间,多少钱
未能解决您的问题?马上联系学术顾问

未能解决您的问题?

不要急哦,马上联系学术顾问,获取答案!

免费获取
扫码关注公众号

扫码关注公众号

微信扫码加好友

微信扫码加好友

职称驿站 www.zhichengyz.com 版权所有 仿冒必究
冀ICP备16002873号-3