天天看點

Foxdisk09-工具篇

(請保留 -> 作者:羅冰 )

題外話,大概是2017年底,開始開發DTU,用來采集光伏逆變器的資料,通過GPRS發送給後端伺服器。一個不大的物聯網裝置,針對客戶的需求做了三種不同的形态。采用的是STM32F103C8T6+SIM800C的硬體架構,軟體則用FreeRTOS,友善後續的擴充。2018年4月份,國家政策一變,幻想中(計劃中)的50K的産品計劃也全部泡湯。

我寫部落格前,剛好看到檔案夾中滿滿的資料,不禁有些惆怅。先定個小計劃,Foxdisk的部落格寫完後,也針對這個項目寫寫曆程吧,項目從無到有,可以吐槽的地方太多了。

回到正題。發現之前提供的Foxdisk的下載下傳連結沒法用了,同時也發現小工具的代碼沒有放上去。什麼時候有人需要,我再整整吧,這段時間有點忙,有點顧不上。

Foxdisk的編譯過程中,有兩個小工具需要使用,EHZ24.exe和ETRHZ.exe,名字有點怪,我随便取的。EHZ24.exe是用來提取漢字字模的工具,即将需要的漢字的點陣圖提取出來,友善程式去列印到螢幕上。其主要功能如下:

  1. 可以針對多個源檔案進行處理,提取C語言源代碼中需要顯示的漢字;
  2. 可指定提取的字模為楷體、黑體或者仿宋,字模為24×24點陣字;
  3. 提取出來的字模,自動生成一個.h的頭檔案,并在頭檔案中定義了字模的結構體。

源代碼中HZK24K.h就是由這個工具自動生成的。 ETRHZ.exe提取的是16×16的點陣字,其功能與EHZ24.exe差不多,HZTABLE.H由其提取。理論上可以把這兩個程式合成一個,隻是因為這兩個程式是我以前開發隔離卡産品時寫的,當時就這麼分開的,稍微改改就拿來用了,也沒興趣去合一了。如圖,兩個工具簡陋的指令行幫助文檔。

Foxdisk09-工具篇

圖1 漢字提取工具ETRHZ和EHZ24

這兩個工具其實沒什麼可以說的,主要就是分析源檔案,将程式中需要顯示的漢字取出來,然後在相應的漢字庫中,将對應的漢字字模提取,最後寫入到生成的檔案中。如圖2,從生成的檔案中,也能了解到其大緻功能。

Foxdisk09-工具篇

圖2 ETRHZ提取的檔案截圖

這兩個工具的源代碼比較簡單,有興趣的可以看看,過段時間我上傳到部落格上。源代碼不難看懂,主要是要了解漢字提取的原理。部落格中就不再對源代碼一一解析了。

為什麼要提取漢字?那是因為漢字庫比較大(一般200K左右,大的400多K,Foxdisk才100多K,沒法放下),我們是在無作業系統的情況下工作,程式越小越好。具體的漢字顯示原理,我在接下來的幾篇中記錄。

繼續閱讀