[發(fā)明專利]一種Lua上降低LVGL圖形界面耦合性的方法和系統(tǒng)在審
| 申請?zhí)枺?/td> | 202210109260.7 | 申請日: | 2022-01-28 |
| 公開(公告)號: | CN114546363A | 公開(公告)日: | 2022-05-27 |
| 發(fā)明(設計)人: | 伍珈沁;曲振 | 申請(專利權)人: | 上海合宙通信科技有限公司 |
| 主分類號: | G06F8/34 | 分類號: | G06F8/34;G06F8/36;G06F8/38 |
| 代理公司: | 上海市匯業(yè)律師事務所 31325 | 代理人: | 金煒霞 |
| 地址: | 200011 上海市黃*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 lua 降低 lvgl 圖形界面 耦合 方法 系統(tǒng) | ||
本發(fā)明提出了通過Lua使用LVGL開發(fā)圖形界面的技術方案,用構造的方法將Lua表中的鍵生成LVGL的各類接口,頁面之間以表來封裝,每個頁面的屬性都在不同的表里,使得腳本耦合性大幅降低;業(yè)務代碼不再冗長,重復率大幅降低,能夠靈活地實現(xiàn)UI業(yè)務邏輯;增加頁面非常簡單,設置好頁面表的鍵值就完成了增加頁面的基本工作,業(yè)務拓展方便;業(yè)務的開發(fā)效率提高,開發(fā)周期縮短,維護方便,適合企業(yè)商用。
技術領域
本發(fā)明涉及圖形界面開發(fā)領域,特別涉及基于Lua語言和LGVL的圖形界面開發(fā)領域。
背景技術
Lua是一種輕量小巧的腳本語言,用標準C語言編寫并以源代碼形式開放,其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua有著輕量級、可拓展性等優(yōu)勢,應用場景有游戲開發(fā)、獨立腳本開發(fā)、Web應用腳本等。
LVGL(輕巧而多功能的圖形庫)是一個免費的開放源代碼圖形庫,它提供創(chuàng)建具有易于使用的圖形元素,精美的視覺效果和低內(nèi)存占用的嵌入式GUI(圖形用戶界面)所需的一切,LVGL有很多優(yōu)點,包括有很多功能強大的控件:按鈕、圖表、頁面等;帶有動畫、抗鋸齒、不透明、平滑滾動的高級圖形;支持各種設備:觸摸板、鼠標、鍵盤、編碼器等。
耦合性是程序結構中各個模塊之間交互的度量。它取決于各個模塊之間的接口的復雜程度、調(diào)用模塊的方式以及哪些信息通過接口。降低耦合度即可以理解為解耦。模塊間有依賴關系必然存在耦合,理論上的絕對零耦合是做不到的,但可以通過一些現(xiàn)有的方法將耦合度降至最低。耦合度最低的方法有非直接耦合,指兩個模塊之間基本沒有聯(lián)系,唯一的聯(lián)系就是通過共用的調(diào)用模塊來實現(xiàn),模塊獨立性很強;稍弱一些的方法有數(shù)據(jù)耦合,指調(diào)用模塊和被調(diào)用模塊之間只傳遞簡單的數(shù)據(jù)參數(shù),模塊獨立性良好;耦合度比較強的方法有外部耦合,一組模塊都共同使用同一全局變量,而且對該全局變量沒有任何參數(shù)傳遞信息,當程序出現(xiàn)異常時定位問題點較困難。
在嵌入式領域,UI(用戶界面)設計常用的操作系統(tǒng)界面庫有很多,例如TouchGFX、AWTK、LVGL等,大部分都是基于C開發(fā)的。使用這些操作系統(tǒng)界面庫開發(fā)界面,普遍存在以下問題:
1、代碼關聯(lián)性強,耦合性較高,導致業(yè)務邏輯之間的關聯(lián)度比較高,維護優(yōu)化成本較大,對企業(yè)來說性價比較低。
2、可拓展性較差,增加頁面或者添加頁面功能需要重寫邏輯,開發(fā)時上手難度比較高并且開發(fā)周期長。
發(fā)明內(nèi)容
本發(fā)明的技術方案解決的技術問題是:
1、通過對代碼的封裝,降低了代碼之間的關聯(lián)性,耦合性較低,使得業(yè)務邏輯之間的關聯(lián)度比較低,維護優(yōu)化成本較低。
2、通過建立相應的框架和對代碼的封裝,提高了界面的拓展性,增加頁面或者添加頁面功能不再需要重寫邏輯,降低了開發(fā)難度,并縮短了開發(fā)周期。
第一方面,本發(fā)明的實施例提出了一種Lua上降低LVGL圖形界面耦合性的方法,該方法包括:
創(chuàng)建頁面表,該頁面表保存了頁面的控件的控件屬性的值;該控件包括容器控件、子控件和各類功能控件;該容器控件用于容納該子控件和該功能控件;該功能控件是通過子控件實現(xiàn)的;該控件屬性包括type鍵和控件設置鍵;該type鍵用于表示該控件的類型;該控件設置鍵用于表示該控件的類型以外的該控件屬性;
當打開該頁面時,根據(jù)該頁面表的內(nèi)容生成該頁面,該生成該頁面包括:構造該容器控件;根據(jù)該type鍵的值為“容器”的該控件的該控件屬性,設置該容器控件;當該type鍵的值為該“容器”以外的值時,根據(jù)該type鍵的值構造相應的該功能控件;根據(jù)該功能控件的該控件設置鍵設置該功能控件。
在一些實施例中,本發(fā)明提供的一種Lua上降低LVGL圖形界面耦合性的方法:
該子控件能夠嵌套,即上一級子控件包含下一級子控件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海合宙通信科技有限公司,未經(jīng)上海合宙通信科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210109260.7/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





