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文件抽取出來的。大概如此吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章