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

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

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

3天內不再提示

LVGL前臺程序開發相關操作

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

13.4.4 實現Modbus RTU讀操作

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

創建modbus_t:調用“modbus_new_rtu”、“modbus_connect”

調用“modbus_read_”、“modbus_write_”開頭的函數

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

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

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

其中“get_modbus_ctx”函數如下:

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

13.4.5 實現Modbus RTU寫操作

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

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

13.4.6 實現Modbus TCP操作

Modbus TCP的操作跟Modbus RTU的操作時同一套代碼,在如下函數中根據port_info確定是創建什么類型的 modbus_t結構體:

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

13.4.7 實現OTA升級

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

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

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

發送的信息存為如下結構體:

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

然后使用如下函數發起RPC調用:

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

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

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

在實現真正的傳感器升級時,前臺程序要知道升級進度,它可以調用如下函數發出RPC請求:

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

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

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

13.5 LVGL前臺程序開發

源碼為:

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

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

“demo_lv_modbus_toollv_100ask_modbus_toolsrclv_modbus_tool.c”。

13.5.1 程序流程

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

如何布局、創建各類控件

它們的回調函數

1.布局的重要概念

布局、創建控件時,有一個“parent”的概念??梢哉J為“parent”是一個“容器”,在上面可以繼續創建各個控件。

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

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

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

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

對于控件2,它也可以作為“parent”,在它上面有可以繼續創建各類控件:

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

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

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

2.控件的回調函數

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

3.main函數

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

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

13.5.2 使用屏幕和鼠標

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

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

13.5.3 創建初始界面

main函數里調用“lv_modbus_tool”,就開始創建界面了。它的代碼在“demo_lv_modbus_toollv_100ask_modbus_toolsrclv_modbus_tool.c”中。

1.第1個區域的創建

第1個區域指:

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

第1步:以整個屏幕為parent,創建出控件1。

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

代碼如下:

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

2.第2個區域的創建

第2個區域指:

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

代碼如下:

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

3.“點”的創建

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

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

代碼如下:

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

add_new_item函數是核心代碼,單獨講解。

13.5.4 add_new_item函數解析

1.代碼里層級的注釋

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

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

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

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

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

cont2_x作為parent,作為底層,在上面創建了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函數非常龐大,把源碼和圖案進行對比,才容易理解。

第1步,劃分區域得到cont2_x,如下:

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

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

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

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

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

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

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

    關注

    2552

    文章

    51320

    瀏覽量

    755303
  • MODBUS
    +關注

    關注

    28

    文章

    1817

    瀏覽量

    77168
  • 程序開發
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10306
  • LibModbus
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7263
  • LVGL
    +關注

    關注

    1

    文章

    90

    瀏覽量

    3011

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    LVGL開發入門教程

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

    開發第1個LVGL程序與實現按鍵操作

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

    前臺運行和后臺運行二者有何區別

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

    LVGL的字體相關資料分享

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

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

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

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

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

    基于NK-N9H30開發板跑一下LVGL的demo實現

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

    Purple Pi R1 LVGL使?參考

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

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

    它也幫了大忙。另外,筆者手頭上有兩塊新唐的開發板(NUC970系列和N9H30系列),可以真機運行?! ∈O碌膬烧咧g的控制部分,當然是 eRPC 實現嘍?! 」P者設想,任何能跑起來 LVGL 的平臺
    發表于 09-20 15:57

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

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

    LVGL 優化幀率技巧

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

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

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

    如何在MDK中部署LVGL

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

    LVGL開發指南介紹

    電子發燒友網站提供《LVGL開發指南介紹.pdf》資料免費下載
    發表于 09-09 10:24 ?17次下載
    主站蜘蛛池模板: 日日摸夜夜添夜夜爽出水| 国产福利不卡在线视频| 国产 高清 无码 在线播放| 国产精品你懂得| 老司机午夜影院味味| 天龙八部慕容属性加点| 中文字幕日本一区| 国产精品九九久久精品视| 绿巨人www| 亚洲国产精品嫩草影院久久| 老司机亚洲精品影院| 天天躁日日躁狠狠躁中文字幕老牛| 孕交videosgratis乌克兰| 野花视频在线观看免费最新动漫| x8国产精品视频| 久久久久久久久久综合情日本| 日本美女毛茸茸| 中国成人在线视频| 国产午夜a理论毛片在线影院 | 亚洲激情一区| 东北真实仑乱| 欧美69xxx| 91国内精品久久久久免费影院| 国产精品一区二区资源| 奇虎成人网| 99精品视频免费在线观看| 久久极品视频| 亚洲天堂999| 国产在线播放91| 无码国产成人777爽死在线观看| 亚洲国产精品高清在线| 二级片免费看| 日韩 国产 中文 无码| av淘宝 在线观看| 蜜桃狠狠色伊人亚洲综合网站| 一二三四在线观看高清电视剧| 国产在线高清亚洲精品一区| 文中字幕一区二区三区视频播放| 动漫H片在线观看播放免费| 人妻 中文无码 中出| 扒开黑女人p大荫蒂老女人|