色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LittleVgl GUI中實(shí)現(xiàn)嵌入中文輸入法框架

TopSemic嵌入式 ? 來源:AET網(wǎng)站 ? 作者:jicheng0622 ? 2022-04-02 09:42 ? 次閱讀

時(shí)隔一年多終于又冒泡了,哎,隨著工作越來越忙,自己踏實(shí)坐下來寫點(diǎn)東西真是越來越費(fèi)勁,這篇文章也是準(zhǔn)備了好久好久才打算發(fā)表出來(不瞞大家,東西做完好久了,文章憋了一年了,當(dāng)真“高產(chǎn)”出,咳咳),本來想著好久不見該好好扯點(diǎn)兒閑皮撈點(diǎn)兒閑嗑,結(jié)果兒子跑來旁邊嘮嘮叨叨的把我靈感都整沒了。。。最近國(guó)內(nèi)疫情嚴(yán)重,還有東航的事件,再回首身邊家人朋友同事,真心感謝靜好的歲月,也感謝負(fù)重前行的人,希望疫情早點(diǎn)結(jié)束,待到春花浪漫時(shí),生活處處有生機(jī),不多說了,talk is cheap, let's writing...

LittleVgl作為一款開源免費(fèi)的嵌入式GUI得到越來越多工程師的厚愛,我們可以看到很多小型HMI項(xiàng)目或者一些開源社區(qū)都在使用它作為GUI的框架,同時(shí)也受益于用戶群的不斷擴(kuò)大以及一些半導(dǎo)體原廠的青睞(通俗點(diǎn)就是說有贊助有錢兒了),LittleVgl本身也在快速的不斷更新迭代,易用的組件和相關(guān)的輔助開發(fā)工具在不斷的增加,而RT1050/1060/1170系列作為一款帶有LCD控制器的平臺(tái),自然成為了LittleVgl最佳的載體之一了。

LittleVgl本身的組件已經(jīng)很豐富了,但是遺憾的是一直沒有加入對(duì)中文輸入法Keyboard的支持(看了下它在Github上的Contributor List沒有華人),這讓它在我們國(guó)內(nèi)的應(yīng)用有了一些限制(注意在某組件上顯示中文和真正的中文輸入法是不同的概念),所以本項(xiàng)目旨在解決該問題,即把一個(gè)簡(jiǎn)單輕量的中文輸入法框架嵌入到LittleVgl并跑在RT1050平臺(tái)上,并把它開源開放出來,所以不要小看了我的“公益心”,哈哈。

下面進(jìn)入正題,首先把測(cè)試環(huán)境給出來,方便有興趣有能力的朋友可以自行搭建(當(dāng)然應(yīng)一部分偷懶的強(qiáng)烈需求,文章后面我隨附贈(zèng)了完整的移植好的工程),然后我再一步一步地給出如何移植這套框架到用戶自己的工程里,當(dāng)然我已經(jīng)把代碼本身做了很多優(yōu)化,盡量減小環(huán)境依賴,力求最少步驟的移植過程,“理論上”來講不太會(huì)出現(xiàn)移植后編譯出一堆Error的問題,咳咳。。。下面我們趕緊開整吧:

測(cè)試環(huán)境:

SDK版本:SDK_v2.9.1

SDK參考例程:boardsevkbimxrt1050littlevgl_exampleslittlevgl_demo_widgets

LittleVgl版本:v7.4.0

IDE工具:Keil_v5.31

開發(fā)板:MIMXRT1050-EVK + 480*272 RGB LCD屏

軟件說明:

我們先看下這套中文輸入法所需的幾個(gè)文件,如下圖所示,.c和.h文件加起來一共7個(gè),其中nxp_logo.c只是我額外加的一個(gè)NXP的官方logo圖標(biāo)轉(zhuǎn)成的C數(shù)組文件供littleVgl調(diào)用顯示,屬于錦上添花的東西,可有可無,真正跟輸入法相關(guān)的是剩下的6個(gè)文件,下面我們逐一介紹下這幾個(gè)文件的作用:

ac302460-b18b-11ec-aa7f-dac502259ad0.png

1. qwerty_py.c/.h,實(shí)際上這兩個(gè)文件才是這套全鍵盤拼音中文輸入法的核心框架,實(shí)現(xiàn)了對(duì)輸入的拼音字母進(jìn)行索引匹配對(duì)應(yīng)的漢字候選列表,這部分我是移植了如下鏈接中網(wǎng)友分享的代碼,所以這兩個(gè)文件我的角色只是一個(gè)大自然搬運(yùn)工,不過說實(shí)話我是很感激該網(wǎng)友的無私分享的(這也是我一直推崇開源分享精神的源動(dòng)力),之前對(duì)平時(shí)使用的各種輸入法里面的算法原理一直充滿好奇,直到看了這篇文章后才豁然開朗,“So that is what it is!”,讓我獲益匪淺(可能人的學(xué)習(xí)曲線和知識(shí)體系就是這樣一點(diǎn)一滴的積累吧),而且更關(guān)鍵的是,如果讓我繼續(xù)往下開發(fā)諸如拼音聯(lián)想和多漢字輸入等功能的話,我更多關(guān)心的可能只是邏輯搭建的工作量問題,而不是糾結(jié)于Yes or No的問題了,因?yàn)樵垡呀?jīng)了解了其最底層的工作原理了,所以很多復(fù)雜的事情,我們?nèi)绻艹榻z剝繭的找到其最底層的本質(zhì)(雖然這真的很難),那很多讓人抓耳撓腮的問題很快就可以理清思路。說到這里我思維又發(fā)散了,呵呵,我想起讓Linus Torvalds等一波老大神們一直頭疼的Linux內(nèi)核維護(hù)后繼無人的問題,其實(shí)我的個(gè)人理解有很大一部分原因是如今的Linux太龐大了以至于幾乎沒有后輩的人對(duì)Linux的理解能趕上這些老輩大神,而這些老輩大神的最大優(yōu)勢(shì)是他們創(chuàng)建了Linux最早期的底層框架而且難能可貴的是一直在follow Linux每個(gè)版本的歷史??傊?a href="http://www.1cnz.cn/v/" target="_blank">推薦大家看看如下這篇文章吧(實(shí)際上主要內(nèi)容也都是代碼),希望能各有所獲;

https://www.amobbs.com/thread-5668320-1-1.html?_dsign=0939dcbd

2. lv_chs_keyboard.c/.c文件,這部分就是我的工作了(咱也不能啥都搬運(yùn)…,這是體現(xiàn)咱的value的東西不是),我把它當(dāng)作littleVgl的一個(gè)補(bǔ)充組件來寫的,里面的大多數(shù)API參考官方littlevgl的lv_keyboard.c,所謂的文章開頭的嵌入中文輸入法到LittleVgl GUI環(huán)境中實(shí)際上就是這兩個(gè)文件干的活,即將上面提到qwerty.c/.h實(shí)現(xiàn)的拼音輸入法與LittleVgl框架結(jié)合到一塊,起到一個(gè)橋梁的作用,所以如果你想把這套中文輸入法嵌入到其他GUI環(huán)境中的話(比如emWin,GUIX,TouchGFX等),那主要的工作就是參考這兩個(gè)文件的內(nèi)容了;

3. lv_font_NotoSansCJKsc_Regular.c字體文件,雖然littleVgl官方源碼包里自帶了一個(gè)中文字體文件(lvglsrclv_fontlv_font_simsun_16_cjk.c),但是它只包含了1000個(gè)左右最常用的字,我實(shí)際體驗(yàn)了下很多我們想用的字都找不到,所以這個(gè)時(shí)候就需要自己去做一個(gè)更全一點(diǎn)的字體庫(kù)了。這里面涉及到兩個(gè)問題需要考慮,第一是很多我們常見的中文字體是收費(fèi)的(咱PC機(jī)的Microsoft Office套件里的中文字體都是微軟付費(fèi)買的,所以咱也理解下早年正版Windows為啥辣么貴了,那你問為啥現(xiàn)在便宜了?因?yàn)槿思椰F(xiàn)在不靠這個(gè)賺錢了唄),第二個(gè)是字體轉(zhuǎn)換工具的問題,我們網(wǎng)上找到的字體都是TTF或者OTF格式的,但littleVgl是不認(rèn)的,需要轉(zhuǎn)換成它支持的字體格式。

對(duì)于第一個(gè)問題,我網(wǎng)上搜了好久最終選擇了目前用的比較多的Google開源免費(fèi)的字體,Google真乃金主也,它維護(hù)的網(wǎng)站里面字體各種各樣啥都有且是開源免費(fèi)的,如下鏈接,我選擇的是NotoSansCJKsc字體(最后面的sc表示simplified Chinese,簡(jiǎn)體中文),然后它里面又包含了各種字形(regular, bold, light等),可以根據(jù)需要自行選擇,整個(gè)包很大(100多MB),拆分成不同字形的就小了(每個(gè)14~16MB左右);

https://www.google.com/get/noto/

ac43f6c0-b18b-11ec-aa7f-dac502259ad0.png

對(duì)于第二個(gè)字體轉(zhuǎn)換工具的問題,LittleVgl官方自帶了一個(gè)字體轉(zhuǎn)換工具(online font converter),我個(gè)人覺著不太好用(對(duì)OTF字體支持的不行),這里推薦阿里大神自己做的一個(gè)LittleVgl字體轉(zhuǎn)換工具(LvglFontTool),非常方便好用,且支持加入Awesome圖標(biāo);

http://www.lfly.xyz/forum.php?mod=viewthread&tid=24&extra=page%3D1

ac59af2e-b18b-11ec-aa7f-dac502259ad0.png

關(guān)于字體這部分我需要再補(bǔ)充個(gè)問題,就是它占用的memory大小,畢竟我們是在嵌入式MCU平臺(tái)Flash和RAM的資源是受限的,如下圖所示,該字體文件占用大概1Mbytes的rodata空間(即可尋址的Flash空間,當(dāng)然該大小可以通過在上圖轉(zhuǎn)換工具中增減一些文字來調(diào) 整),所以在移植本套輸入法之前需要預(yù)留足夠的Flash空間,當(dāng)然對(duì)RT平臺(tái)來說這部分還好,畢竟其本身就外擴(kuò)至少幾MB空間的QSPI Flash作為存儲(chǔ)空間的。

ac6e70da-b18b-11ec-aa7f-dac502259ad0.png

4. lv_demo_chineseinput.c/.h文件,這兩個(gè)文件屬于應(yīng)用層實(shí)現(xiàn)了,主要關(guān)注該文件中下圖的ta_event_cb函數(shù)(即textarea事件的callback,點(diǎn)擊文本框的輸入時(shí)回調(diào)),在里面我們需要按照1,2,3去調(diào)用即可(這三步的API均在lv_chs_keyboard.c/h文件里實(shí)現(xiàn));

ac90d9cc-b18b-11ec-aa7f-dac502259ad0.png

至此,這套全鍵盤拼音中文輸入法框架所需的幾個(gè)文件就介紹完了,用戶只需要把這幾個(gè)文件放到自己的工程設(shè)置好文件搜索路徑,并參考隨本文檔附帶的代碼工程示例,再結(jié)合自己產(chǎn)品的GUI樣式,把這套中文輸入法嵌入到自己應(yīng)用當(dāng)中。下面鏈接為本項(xiàng)目github倉(cāng)庫(kù),覺著不錯(cuò)的別吝嗇您的小星星,star me!好了,就扯到這兒了,本文首發(fā)ChinaAET,續(xù)發(fā)于CSDN:https://blog.csdn.net/jicheng0622/article/details/123851560和博客園:https://www.cnblogs.com/jicheng0622/p/16078169.html,未完待續(xù)!

https://github.com/jicheng0622/Chinese-Input-Method-Framework-on-MCU-based-LittleVgl-GUI

aca20012-b18b-11ec-aa7f-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19111

    瀏覽量

    304845
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3323

    瀏覽量

    42473
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    659

    瀏覽量

    39658

原文標(biāo)題:LittleVgl GUI中實(shí)現(xiàn)嵌入中文輸入法框架

文章出處:【微信號(hào):TopSemic,微信公眾號(hào):TopSemic嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【AWTK使用經(jīng)驗(yàn)】如何使用系統(tǒng)輸入法與開啟最大化窗口功能

    導(dǎo)讀AWTK是基于C語言開發(fā)的跨平臺(tái)GUI框架。AWTK使用經(jīng)驗(yàn)系列文章將介紹開發(fā)AWTK過程中一些常見問題與解決方案。AWTK具有跨平臺(tái)的性質(zhì),不僅可以開發(fā)嵌入式設(shè)備的程序,也可以開發(fā)
    的頭像 發(fā)表于 11-14 01:05 ?219次閱讀
    【AWTK使用經(jīng)驗(yàn)】如何使用系統(tǒng)<b class='flag-5'>輸入法</b>與開啟最大化窗口功能

    微軟拼音輸入法導(dǎo)致KiCad卡死

    “?在Windows10切換到微軟拼音輸入法,即使是英文輸入狀態(tài),操作KICAD會(huì)隨機(jī)卡死?,F(xiàn)象是鼠標(biāo)沒反應(yīng)了,啥也做不了,只能結(jié)束進(jìn)程?!?問題描述 在KiCad 6及之后的版本,當(dāng)IME為
    的頭像 發(fā)表于 11-12 12:23 ?275次閱讀
    微軟拼音<b class='flag-5'>輸入法</b>導(dǎo)致KiCad卡死

    龍芯的虛擬linux沒有中文字庫(kù)和輸入法

    近日收到龍芯發(fā)來的linux虛擬系統(tǒng)的demo,里面沒有中文字庫(kù)和漢字輸入法,語言更新也更新不了,是不是還要自己重裝虛擬linux系統(tǒng)?
    發(fā)表于 11-06 15:12

    分享一款GUI開發(fā)神器

    GT-HMI(Human Machine Interface) 國(guó)產(chǎn)開源 GUI 框架及永久免費(fèi)設(shè)計(jì)軟件。
    的頭像 發(fā)表于 11-06 09:29 ?340次閱讀

    瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方輸入法為默認(rèn)輸入法

    本文適用于觸覺智能所有支持Android11系統(tǒng)的開發(fā)板修改第三方輸入法為默認(rèn)輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派設(shè)計(jì),是Laval官方社區(qū)主薦的一款鴻蒙開發(fā)板。
    的頭像 發(fā)表于 09-24 09:43 ?429次閱讀
    瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方<b class='flag-5'>輸入法</b>為默認(rèn)<b class='flag-5'>輸入法</b>

    七大嵌入GUI盤點(diǎn)

    MiniGUI-Standalone三種運(yùn)行模式運(yùn)行。它對(duì)中文的支持很友好,支持GB2312與BIG5字符集,其他字符集也可以輕松加入。 Qt for MCU 是一個(gè)專為嵌入式微控制器(MCU)設(shè)計(jì)的圖形框架和工具包,它
    發(fā)表于 09-02 10:58

    【AWTK使用經(jīng)驗(yàn)】如何添加中文輸入法

    目前需要在AWTK程序中用到中文輸入法,并且要自定義輸入法的聯(lián)想詞,此時(shí)需要用到AWStudio添加軟鍵盤和輸入法。下面將介紹如何使用AWStudio在項(xiàng)目中添加
    的頭像 發(fā)表于 06-20 08:25 ?1036次閱讀
    【AWTK使用經(jīng)驗(yàn)】如何添加<b class='flag-5'>中文輸入法</b>

    炬芯科技攜手趣戴科技推動(dòng)LiteGfx GUI框架嵌入式終端智能設(shè)備上應(yīng)用

    炬芯科技與上海趣戴科技有限公司(簡(jiǎn)稱“趣戴科技”)建立緊密合作關(guān)系,雙方攜手推動(dòng)LiteGfx GUI框架嵌入式終端智能設(shè)備上應(yīng)用,降低智能手表設(shè)備GUI界面的開發(fā)門檻。該
    的頭像 發(fā)表于 06-04 16:12 ?1051次閱讀

    鴻蒙Ability Kit(程序框架服務(wù))【ExtensionAbility組件】

    ExtensionAbility組件是基于特定場(chǎng)景(例如服務(wù)卡片、輸入法等)提供的應(yīng)用組件,以便滿足更多的使用場(chǎng)景。
    的頭像 發(fā)表于 06-04 15:54 ?577次閱讀
    鴻蒙Ability Kit(程序<b class='flag-5'>框架</b>服務(wù))【ExtensionAbility組件】

    入門級(jí)指紋密碼智能鎖方案簡(jiǎn)析以及適用芯片SSD210介紹

    智能門鎖的初級(jí)應(yīng)用。 軟件方面,支持嵌入式Linux系統(tǒng),支持Flythings,LittleVGL,AWTK,TD-UI,QT,mini-GUI等多種GUI圖形開發(fā)界面工具。同時(shí)還
    的頭像 發(fā)表于 05-24 17:53 ?1205次閱讀
    入門級(jí)指紋密碼智能鎖方案簡(jiǎn)析以及適用芯片SSD210介紹

    分享幾個(gè)嵌入式中常用的GUI

    一、什么是GUI?GUI是圖形用戶界面(GraphicalUserInterface,簡(jiǎn)稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。通過GUI
    的頭像 發(fā)表于 04-06 08:09 ?1557次閱讀
    分享幾個(gè)<b class='flag-5'>嵌入</b>式中常用的<b class='flag-5'>GUI</b>

    GUI Guider新版本發(fā)布,嵌入GUI開發(fā)體驗(yàn)升級(jí)

    作為恩智浦著力打造的一款嵌入式人機(jī)交互應(yīng)用開發(fā)工具,GUI Guider又迎來了一個(gè)新版本!最新發(fā)布的GUI Guider v1.7.1增加了視頻轉(zhuǎn)換功能,可以幫助用戶靈活地轉(zhuǎn)換原視頻,包括長(zhǎng)度裁剪
    發(fā)表于 03-29 09:47 ?1673次閱讀
    <b class='flag-5'>GUI</b> Guider新版本發(fā)布,<b class='flag-5'>嵌入</b>式<b class='flag-5'>GUI</b>開發(fā)體驗(yàn)升級(jí)

    魅族21 Pro啟動(dòng)Flyme 10.5內(nèi)測(cè),新增AI靈動(dòng)鍵、AI輔助輸入功能

     在新的AI靈動(dòng)鍵功能,魅族從手勢(shì)導(dǎo)航改成了將AI靈動(dòng)鍵整合到mBack導(dǎo)航,短按或長(zhǎng)按mBack即可呼叫Aicy;而AI輔助輸則把輸入法下方添加了一個(gè)新型工具條,用戶可以更快地打開輸入
    的頭像 發(fā)表于 03-04 15:36 ?1427次閱讀

    【飛騰派4G版免費(fèi)試用】+越品越有味道的體驗(yàn)

    輸入法 圖6 完成添加 此時(shí),選取右上角的輸入法圖標(biāo),將EN輸入法切換到拼音輸入法就可以使用中文輸入法了。 圖7切換
    發(fā)表于 01-13 21:10

    【飛騰派4G版免費(fèi)試用】ibus中文輸入法安裝

    為例,如下圖: 不知道什么原因,ibus中文輸入法有時(shí)會(huì)出現(xiàn)bug,可能是系統(tǒng)兼容性的問題,切換到EN再切換回來就恢復(fù)正常了。
    發(fā)表于 01-11 22:23
    主站蜘蛛池模板: 永久免费观看视频| 成年人视频免费在线播放| 国产午夜精品不卡观看| 日韩精品 中文字幕 有码| 99久久综合| 男人一进一出桶女人视频| 亚洲一区在线观看无码欧美| 国产精品外围在线观看| 日日噜噜夜夜躁躁狠狠| 99这里只有是精品2| 欧美18videosex| 98色精品视频在线| 男女夜晚在爽视频免费观看| 中文字幕在线视频观看| 久久看片网| 最新在线黄色网址| 美女内射少妇三区五区| 2020精品国产视| 免费三级播放器| chinesevideos原创麻豆| 泡妞高手在都市完整版视频免费 | 999视频精品全部免费观看| 免费三级网址| 啊灬啊别停灬用力啊老师| 秋霞伦理机在线看片| 国产51麻豆二区精品AV视频| 亚洲 日韩经典 中文字幕| 娇妻在床上迎合男人| 征服丝袜旗袍人妻| 青娱乐国产精品视频| 国产精品九九久久| 国产人妖一区二区| 受被攻做到腿发颤高h文| 国语自产偷成人精品视频| 约艺术院校96年清纯白嫩| 欧美末成年videos在线| 国产成人在线观看网站| 中国少妇内射XXXX狠干| 日日a.v拍夜夜添久久免费| 国产视频精品在线偷拍| 11 13加污女qq看他下面|