android控制板

最近做的事情是用android通过udp方式往灯板控制卡发送文字,让灯板显示。灯板控制卡为scl2008.

发送流程为,将要发送的文字转码为GB2312,两字节一个汉字,编码之后,发送到灯板上去,灯板一个单元板为32*32的,一块灯板由6块单元板组成,所以一块灯板尺寸为192*32.

这里对于普通的gb2312字符都是没啥问题的,GB2312编码可以参考链接:2312

GBK编码可以参考链接:GBK

GBK编码范围:8140-FEFE,关于GBK的编码,如下属描述

 全部编码分为三大部分:

1. 汉字区。包括:
a. GB 2312 汉字区。即 GBK/2: B0A1-F7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。
b. GB 13000.1 扩充汉字区。包括:
(1) GBK/3: 8140-A0FE。收录 GB 13000.1 中的 CJK 汉字 6080 个。
(2) GBK/4: AA40-FEA0。收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。

2. 图形符号区。包括:
a. GB 2312 非汉字符号区。即 GBK/1: A1A1-A9FE。其中除 GB 2312 的符号外,还有 10 个小写罗马数字和 GB 12345 增补的符号。计符号 717 个。
b. GB 13000.1 扩充非汉字区。即 GBK/5: A840-A9A0。BIG-5 非汉字符号、结构符和“○”排列在此区。计符号 166 个。

3. 用户自定义区:分为(1)(2)(3)三个小区。
(1) AAA1-AFFE,码位 564 个。
(2) F8A1-FEFE,码位 658 个。
(3) A140-A7A0,码位 672 个。


GB2312编码范围:A1A1-FEFE,其中汉字编码范围:B0A1-F7FE。,因为GB2312是按区域来划分汉字的,具体算法参考上面的2312链接。

比如A1A1为空格,A1A2为顿号,A2D9为圈1,B0A1为啊

如果想知道一个汉字或者字符的相应编码,可以参考链接:字符编码查询

但这里遇到了问题,如果一个字符在GB2312里没有,怎么显示。

在windows自带的造字程序里添加该字符,然后用makefontlib.exe导出操作系统的相关字库文件,(比如宋体),然后将该字库文件发送到灯板上,然后在用造字相关的编码区调用,并不成功。

该问题还需继续调查。


接着上面的继续说,需要提到的是windows系统,这里是在win7下做的。附件-专用字符编辑程序,这个工具可以造一个自己的字体,可以直接画上去,同时有对应的编码。比如AAA1,然后保存的时候可以点一下  文件-字体链接  会提示保存的选项,如果是全链接,则表示链接所有字体,我选的是只链接宋体,那么就是只在宋体中关联使用这个字。

然后下面可以使用字符隐射表去查看刚才添加的特殊字符,在专用字符一栏去查找,当然也有可能压根就没这个选项,暂不关心。

然后使用字库提取工具,取指定字体的字库,应该就能够提取到刚才的特殊字符。

这里再说说另外的思路,可以下载font creator这个工具,编辑本地字库,然后安装。也可以使用font lab这个工具,两个工具都有类似的功能。把字库修改然后安装进去。那么提取的时候就指定提取该字库即可。

这里说明下,我本地使用的是自己的一个字库,Untitled.ttf,编辑,安装,然后提取的时候选择这个字库。编码即使不是GB2312,好像关系也不大,我记得用的是西欧。

比如你自己造字的编码是AAA1,那么调用的时候,就调用到了你自己造的这个字。如果是替换,效果也一样。

要说明的是,在数字和文字显示的混个方式中,字库也必须配两个,32*32和16*32的,因为这样,两个英文字符才占用一个汉字位置。除非只想让一个英文字符就占用一个汉字大小位置,那么只要一个32*32的字库就够了。否则,会出现乱码等现象。

还有很多小问题可能会出现,但主要思路就是这样。至于图片的方式,要看通讯协议是否满足才行。


关于编辑字符,参见下述:打开fontlab,这里以替换字符为例,把A字符复制,然后粘贴到B的位置,会弹出对话框,去掉勾选项,然后保存,当所有字符替换完成之后,选择font-info选项,在点击name and copyright,然后填写名字,然后点build names - apply。下面依次点击OpenType,填写。copyright -build 。然后点击additional opentype,点击reset names(叉叉),然后点击import names(FI),会生成内容,(这里看到的是copyright前俩个,然后依次按照NID向下排列,具体还需要了解)。

platform选microsoft,encoding选unicode,最后一个没管(这里我是这么做的,至于是否正确还需要多了解)。

到这里名字改完了,点击font-generate font导出ttf文件。

然后使用font creator去导入刚生成的ttf文件,查看字符是否修改正确,然后点击font-install ,如果没问题,一般可以安装成功。

剩下的上面都说了,使用makefontlib导出fon文件,字体选择刚安装的字体。供控制卡使用。一般在传输完成字库之后,需要重启控制卡。

最后,我本地使用的是UNTI.Fon和TEST.Fon文件,应该是Nsimsun3.ttf  和 Test.ttf文件抽取出来的。大概如此吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值