在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

LVGL前臺程序開發(fā)相關操作

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2025-01-17 12:43 ? 次閱讀

13.4.4 實現(xiàn)Modbus RTU讀操作

要使用libmodbus操作Modbus RTU傳感器,需要做的事情有2個:

創(chuàng)建modbus_t:調(diào)用“modbus_new_rtu”、“modbus_connect”

調(diào)用“modbus_read_”、“modbus_write_”開頭的函數(shù)

對于多個“點”,它們可能使用同一個“modbus_t”。所以需要先判斷:如果已經(jīng)有了對應的“modbus_t”,就無法再次創(chuàng)建。

以“讀點”為例,代碼在“modbus_client.c”里,如下:

f42999aa-d48c-11ef-9310-92fbcf53809c.png

其中“get_modbus_ctx”函數(shù)如下:

f447d80c-d48c-11ef-9310-92fbcf53809c.png

13.4.5 實現(xiàn)Modbus RTU寫操作

代碼在“modbus_client.c”里,如下:

f4791534-d48c-11ef-9310-92fbcf53809c.png

13.4.6 實現(xiàn)Modbus TCP操作

Modbus TCP的操作跟Modbus RTU的操作時同一套代碼,在如下函數(shù)中根據(jù)port_info確定是創(chuàng)建什么類型的 modbus_t結(jié)構(gòu)體:

f4aa6616-d48c-11ef-9310-92fbcf53809c.png

13.4.7 實現(xiàn)OTA升級

傳感器升級設計各個傳感器內(nèi)部的實現(xiàn),后臺程序(控制中心)只是給出了接口

前臺程序在如下界面中,把如下信息:固件文件名、設置的端口信息、升級哪個設備,發(fā)送給后臺程序(控制中心):

f4d4d45a-d48c-11ef-9310-92fbcf53809c.png

發(fā)送的信息存為如下結(jié)構(gòu)體:

f4ef5eb0-d48c-11ef-9310-92fbcf53809c.png

然后使用如下函數(shù)發(fā)起RPC調(diào)用:

f4f8dcc4-d48c-11ef-9310-92fbcf53809c.png

后臺程序(控制中心)對應的代碼如下:

f51079f6-d48c-11ef-9310-92fbcf53809c.png

在實現(xiàn)真正的傳感器升級時,前臺程序要知道升級進度,它可以調(diào)用如下函數(shù)發(fā)出RPC請求:

f5276044-d48c-11ef-9310-92fbcf53809c.png

后臺程序(控制中心)對應的代碼如下:

f5403862-d48c-11ef-9310-92fbcf53809c.png

13.5 LVGL前臺程序開發(fā)

源碼為:

f54da1a0-d48c-11ef-9310-92fbcf53809c.png

我們要解析的代碼基本都在這個文件里:

“demo_lv_modbus_toollv_100ask_modbus_toolsrclv_modbus_tool.c”。

13.5.1 程序流程

LVGL前臺程序的源碼里,關鍵點有兩個:

如何布局、創(chuàng)建各類控件

它們的回調(diào)函數(shù)

1.布局的重要概念

布局、創(chuàng)建控件時,有一個“parent”的概念。可以認為“parent”是一個“容器”,在上面可以繼續(xù)創(chuàng)建各個控件。

比如下圖中,控件1對應綠色背景的區(qū)域,控件2對應大紅框的區(qū)域,控件1、控件2都是在同一個“parent”上創(chuàng)建處理的。這個“parent”是整個屏幕區(qū)域。

f5718c3c-d48c-11ef-9310-92fbcf53809c.png

對于控件1,它也可以作為“parent”,在它上面有可以繼續(xù)創(chuàng)建按鈕:“+”按鈕、“Upgrade”按鈕、“MQTT Setting”按鈕:

f585a938-d48c-11ef-9310-92fbcf53809c.png

對于控件2,它也可以作為“parent”,在它上面有可以繼續(xù)創(chuàng)建各類控件:

f58e8cec-d48c-11ef-9310-92fbcf53809c.png

表示一個點時,界面如下。它本身又可以作為一個 parent,在里面繼續(xù)繪制各類控件:

f5a0c632-d48c-11ef-9310-92fbcf53809c.png

2.控件的回調(diào)函數(shù)

當我們點擊某個按鈕時,會有對應的函數(shù)被調(diào)用,這就是它的回調(diào)函數(shù)。在回調(diào)函數(shù)里,我們可以彈出對話框,可以使用RPC讀寫傳感器。

3.main函數(shù)

main函數(shù)在“demo_lv_modbus_toolmain.c”中,代碼如下:

f5b9f26a-d48c-11ef-9310-92fbcf53809c.png

13.5.2 使用屏幕和鼠標

LVGL對基于Framebuffer的屏幕、鼠標的支持很完善,只需要提供設備節(jié)點即可。代碼如下:

f5e5746c-d48c-11ef-9310-92fbcf53809c.png

13.5.3 創(chuàng)建初始界面

main函數(shù)里調(diào)用“l(fā)v_modbus_tool”,就開始創(chuàng)建界面了。它的代碼在“demo_lv_modbus_toollv_100ask_modbus_toolsrclv_modbus_tool.c”中。

1.第1個區(qū)域的創(chuàng)建

第1個區(qū)域指:

f61339ba-d48c-11ef-9310-92fbcf53809c.png

第1步:以整個屏幕為parent,創(chuàng)建出控件1。

第2步:以控件1為parent,創(chuàng)建出左邊的3個控件。

代碼如下:

f61d7f9c-d48c-11ef-9310-92fbcf53809c.png

2.第2個區(qū)域的創(chuàng)建

第2個區(qū)域指:

f6336262-d48c-11ef-9310-92fbcf53809c.png

代碼如下:

f64c05c4-d48c-11ef-9310-92fbcf53809c.png

3.“點”的創(chuàng)建

LVGL前臺程序運行時,會使用RPC調(diào)用獲得點的信息。對于每個點,都會創(chuàng)建出類似下面的控件:

f664c460-d48c-11ef-9310-92fbcf53809c.png

代碼如下:

f671bb5c-d48c-11ef-9310-92fbcf53809c.png

add_new_item函數(shù)是核心代碼,單獨講解。

13.5.4 add_new_item函數(shù)解析

1.代碼里層級的注釋

add_new_item函數(shù)里,創(chuàng)建了多層控件。在代碼的注釋里,怎么體現(xiàn)這些一層又一層的嵌套關系呢?使用類似“[0]、[1]”表示第1層,使用“[1-0]、[1-1]”表示第2層。

在使用“add_new_item”函數(shù)創(chuàng)建如下控件時,理解了注釋里的數(shù)字,更容易理解代碼:

f6914c7e-d48c-11ef-9310-92fbcf53809c.png

最底層,表示“點”的整個區(qū)域,它沒有數(shù)字注釋。比如下面的cont2_x,它對應下圖紅框的區(qū)域(忽略里面的內(nèi)容):

f69f3f14-d48c-11ef-9310-92fbcf53809c.png

cont2_x作為parent,作為底層,在上面創(chuàng)建了4個“child”。這些“child”的代碼注釋是“[0]、[1]、[2]、[3]”,如下:

“[0]”對應的控件:

f6abad26-d48c-11ef-9310-92fbcf53809c.png

“[1]”對應的控件:

f6be8c02-d48c-11ef-9310-92fbcf53809c.png

“[1-0]”對應的控件:

f6df327c-d48c-11ef-9310-92fbcf53809c.png

2.代碼分析

add_new_item函數(shù)非常龐大,把源碼和圖案進行對比,才容易理解。

第1步,劃分區(qū)域得到cont2_x,如下:

f6fce344-d48c-11ef-9310-92fbcf53809c.png

第2步,在cont2_x里繼續(xù)劃分,得到cont2_x_1,如下:

f716bb16-d48c-11ef-9310-92fbcf53809c.png

第3步,在cont2_x_1里添加按鈕、復選框,代碼如下:

f72e9308-d48c-11ef-9310-92fbcf53809c.png

以后的操作是類似的,不再贅述。

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

    關注

    2552

    文章

    51318

    瀏覽量

    755284
  • MODBUS
    +關注

    關注

    28

    文章

    1817

    瀏覽量

    77162
  • 程序開發(fā)

    關注

    0

    文章

    30

    瀏覽量

    10306
  • LibModbus
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7263
  • LVGL
    +關注

    關注

    1

    文章

    90

    瀏覽量

    3009

原文標題:LVGL前臺程序開發(fā)相關操作 - RZ MPU工業(yè)控制教程連載(51)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HMI-Board開發(fā)板工程在添加新組件時LVGL組件會報錯的解決辦法

    在使用HMI-Board開發(fā)開發(fā)lvgl的GUI界面設計時,可以直接在官方提供的lvgl的demo中開發(fā),這樣就可以省去
    的頭像 發(fā)表于 09-13 16:17 ?1590次閱讀
    HMI-Board<b class='flag-5'>開發(fā)</b>板工程在添加新組件時<b class='flag-5'>LVGL</b>組件會報錯的解決辦法

    LVGL開發(fā)入門教程

    LVGL(Light and Versatile Graphics Library)是一個開源的嵌入式圖形庫,由Gábor Kiss-Vámosi于2016年創(chuàng)建,遵守MIT協(xié)議。目前由來自世界各地的志愿者共同維護和開發(fā)
    的頭像 發(fā)表于 01-03 15:23 ?738次閱讀
    <b class='flag-5'>LVGL</b><b class='flag-5'>開發(fā)</b>入門教程

    開發(fā)第1個LVGL程序與實現(xiàn)按鍵操作

    開發(fā)第1個LVGL程序與實現(xiàn)按鍵操作
    的頭像 發(fā)表于 01-07 13:49 ?449次閱讀
    <b class='flag-5'>開發(fā)</b>第1個<b class='flag-5'>LVGL</b><b class='flag-5'>程序</b>與實現(xiàn)按鍵<b class='flag-5'>操作</b>

    前臺運行和后臺運行二者有何區(qū)別

    開發(fā)環(huán)境:DeepIn15.11 開發(fā)語言:C語言 測試軟件:Final Shell3.0.10 目錄分清你的程序前臺運行還是后臺運行,二者有何區(qū)別
    發(fā)表于 11-04 08:18

    LVGL的字體相關資料分享

    前言之前展示過Luatos在win32上運行LVGL的效果,今天帶來LVGL的字體篇介紹LVGL字體支持很全,支持 UTF-8 編碼的 Unicode 字符,分內(nèi)部字體和外部字體,字體制作工具也很多
    發(fā)表于 12-03 07:01

    開源輕量級顯示框架LVGL簡介

    資源的支持;嵌入式應用程序開發(fā)和調(diào)試的跨操作系統(tǒng)支持的屬性;完備的多窗口機制和消息傳遞機制。?優(yōu)點支持多種嵌入式操作系統(tǒng),可移植性強;可伸縮的系統(tǒng)架構(gòu),易于擴展;功能豐富,可靈活剪裁;
    發(fā)表于 03-14 09:28

    開源輕量級顯示框架LVGL簡介

    資源的支持;嵌入式應用程序開發(fā)和調(diào)試的跨操作系統(tǒng)支持的屬性;完備的多窗口機制和消息傳遞機制。?優(yōu)點支持多種嵌入式操作系統(tǒng),可移植性強;可伸縮的系統(tǒng)架構(gòu),易于擴展;功能豐富,可靈活剪裁;
    發(fā)表于 03-31 18:49

    基于NK-N9H30開發(fā)板跑一下LVGL的demo實現(xiàn)

    基于NK-N9H30開發(fā)板的模板工程。跑一下LVGL的demo。初次編譯,報了如下錯誤,找不到demo程序。查找工作目錄,發(fā)現(xiàn)“packagesLVGL-v8.2.0”里面有demo的相關
    發(fā)表于 06-20 11:33

    Purple Pi R1 LVGL使?參考

    LVGL是?個輕量級的,開源的圖形庫。本?詳細介紹了如何在Purple Pi開發(fā)板上運?lvgl應?,同時介紹了如何使?著名的LVGL IDE?具GUI Guider來
    發(fā)表于 09-06 15:25

    基于eRPC的LVGL在線設計器相關資料分享

    它也幫了大忙。另外,筆者手頭上有兩塊新唐的開發(fā)板(NUC970系列和N9H30系列),可以真機運行。  剩下的兩者之間的控制部分,當然是 eRPC 實現(xiàn)嘍。  筆者設想,任何能跑起來 LVGL 的平臺
    發(fā)表于 09-20 15:57

    全面解讀目前LVGL的應用小知識

    概述 本文介紹目前LVGL的應用小知識,希望對采用MCU設計UI界面的用戶有所啟發(fā),開發(fā)出界面更友好的消費品或者工業(yè)產(chǎn)品,造福大眾。 01. LVGL系統(tǒng)架構(gòu) LVGL系統(tǒng)框架 應用
    的頭像 發(fā)表于 06-04 12:01 ?3w次閱讀
    全面解讀目前<b class='flag-5'>LVGL</b>的應用小知識

    LVGL 優(yōu)化幀率技巧

    目錄標題前文LVGL幀率限制代碼優(yōu)化等級前文LVGL——PC模擬器仿真模擬+VS2017f429 discovery開發(fā)LVGL移植(帶操作
    發(fā)表于 12-07 13:21 ?16次下載
    <b class='flag-5'>LVGL</b> 優(yōu)化幀率技巧

    【飛凌OKA40i-C開發(fā)板試用體驗】LVGL移植與測評

    圖形界面開發(fā)工具。不過對于簡單的用戶界面程序,Qt有點殺雞用牛刀的意思。今天介紹一下輕量級的圖形界面庫LVGLLVGL的項目作者是來自匈牙利
    的頭像 發(fā)表于 10-20 10:22 ?4051次閱讀
    【飛凌OKA40i-C<b class='flag-5'>開發(fā)</b>板試用體驗】<b class='flag-5'>LVGL</b>移植與測評

    如何在MDK中部署LVGL

    LVGL的剛剛完成了對LVGL8的維護更新,發(fā)布了v8.3.5版。相對master分支上正在開發(fā)LVGL9,該版本是一個吐血推薦的穩(wěn)定版本。
    的頭像 發(fā)表于 07-27 14:41 ?1354次閱讀
    如何在MDK中部署<b class='flag-5'>LVGL</b>

    LVGL開發(fā)指南介紹

    電子發(fā)燒友網(wǎng)站提供《LVGL開發(fā)指南介紹.pdf》資料免費下載
    發(fā)表于 09-09 10:24 ?17次下載
    主站蜘蛛池模板: 日韩一级片免费| 国产精品免费久久| 国产精品毛片一区二区三区| 97capcom超频在线| 国产性夜夜性夜夜爽91| 亚洲黄色录像| 国内精品一区二区在线观看| 玖玖玖精品视频免费播放| 黄色的视频在线免费观看| 欧美色伊人| 天堂在线中文字幕| 最猛91大神ben与女教师| 中文字幕一区二区三区精品| 亚洲天堂视频在线播放| 亚洲啪啪看看| 在线观看视频一区二区三区| 午夜视频在线观看免费观看在线观看| 热99精品| 亚洲免费在线观看视频| 六月丁香激情综合成人| 国产精品免费看久久久| 国产h视频在线观看高清| 日本视频一区在线观看免费| 亚洲欧美日韩在线观看你懂的| 特黄一级黄色片| 天天摸天天添人人澡| 日韩毛片视频| 日韩一级高清| 久久国产乱子伦精品免| 精品久久久久久中文字幕欧美| 国产片一级特黄aa的大片| 黄色3级| 91亚色视频| www.a级片| 欧美日韩精品乱国产538| 手机看片1024福利| 爽天天天天天天天| 在线看黄网| 在线久综合色手机在线播放| 日本三级高清| 欧美成人性色xxxxx视频大 |