LVGL前台程序开发相关操作

人文 2025-05-30 03:50:40 7485

13.4.4 完成Modbus RTU读操作。

要运用libmodbus操作Modbus RTU。传感器。,需求做的工作有2个:

创立modbus_t:调用“modbus_new_rtu”、“modbus_connect”。

调用“modbus_re。ad。_”、“modbus_wri。te。_”最初的函数。

关于多个“点”,它们或许运用同一个“modbus_t”。所以需求先判别:假如已经有了对应的“modbus_t”,就无法再次创立。

以“读点”为例,代码在“modbus_client.c”里,如下:

其间“get_modbus_ctx”函数如下:

13.4.5 完成Modbus RTU写操作。

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

13.4.6 完成Modbus TCP操作。

Modbus TCP的操作跟Modbus RTU的操作时同一套代码,在如下函数中依据port_info确定是创立什么类型的 modbus_t结构体:

13.4.7 完成OTA晋级。

传感器晋级规划各个传感器内部的完成,后台程序(操控。中心。)仅仅给出了。接口。

前台程序在如下界面中,把如下。信息。:固件文件名、设置的。端口。信息、晋级哪个设备,发送给后台程序(操控中心):

发送的信息存为如下结构体:

然后运用如下函数建议RPC调用:

后台程序(操控中心)对应的代码如下:

在完成真实的传感器晋级时,前台程序要知道晋级进展,它能够调用如下函数宣布RPC恳求:

后台程序(操控中心)对应的代码如下:

13.5。 LVGL。前台程序开发。

源码为:

咱们要解析的代码根本都在这个文件里:

“demo_lv_modbus_toollv_100ask_modbus_toolsrclv_modbus_tool.c”。

13.5.1 程序流程。

LVGL前台程序的源码里,要害点有两个:

怎样布局、创立各类控件。

它们的回调函数。

1.布局的重要概念。

布局、创立控件时,有一个“parent”的概念。能够以为“parent”是一个“容器”,在上面能够持续创立各个控件。

比方下图中,控件1对应绿色布景的区域,控件2对应大红框的区域,控件1、控件2都是在同一个“parent”上创立处理的。这个“parent”是整个屏幕区域。

关于控件1,它也能够作为“parent”,在它上面有能够持续创立按钮:“+”按钮、“Upgrade”按钮、“MQTT Set。ti。ng”按钮:

关于控件2,它也能够作为“parent”,在它上面有能够持续创立各类控件:

表明一个点时,界面如下。它本身又能够作为一个 parent,在里边持续制作各类控件:

2.控件的回调函数。

当咱们点击某个按钮时,会有对应的函数被调用,这便是它的回调函数。在回调函数里,咱们能够弹出对话框,能够运用RPC读写传感器。

3.main函数。

main函数在“demo_lv_modbus_toolmain.c”中,代码如下:

13.5.2 运用屏幕和鼠标。

LVGL对根据Framebuffer的屏幕、鼠标的支撑很完善,只需求供给设备节点即可。代码如下:

13.5.3 创立初始界面。

main函数里调用“lv_modbus_tool”,就开端创立界面了。它的代码在“demo_lv_modbus_toollv_100ask_modbus_toolsrclv_modbus_tool.c”中。

1.第1个区域的创立。

第1个区域指:

第1步:以整个屏幕为parent,创立出控件1。

第2步:以控件1为parent,创立出左面的3个控件。

代码如下:

2.第2个区域的创立。

第2个区域指:

代码如下:

3.“点”的创立。

LVGL前台程序运行时,会运用RPC调用获得点的信息。关于每个点,都会创立出相似下面的控件:

代码如下:

add_new_item函数是中心代码,独自解说。

13.5.4 add_new_item函数解析。

1.代码里层级的注释。

add_new_item函数里,创立了多层控件。在代码的注释里,怎样表现这些一层又一层的嵌套联系呢?运用相似“[0]、[1]”表明第1层,运用“[1-0]、[1-1]”表明第2层。

在运用“add_new_item”函数创立如下控件时,了解了注释里的数字,更简单了解代码:

最底层,表明“点”的整个区域,它没有数字注释。比方下面的cont2_x,它对应下图红框的区域(疏忽里边的内容):

cont2_x作为parent,作为底层,在上面创立了4个“child”。这些“child”的代码注释是“[0]、[1]、[2]、[3]”,如下:

“[0]”对应的控件:

“[1]”对应的控件:

“[1-0]”对应的控件:

2.代码剖析。

add_new_item函数十分巨大,把源码和图画进行比照,才简单了解。

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

第2步,在cont2_x里持续区分,得到cont2_x_1,如下:

第3步,在cont2_x_1里增加按钮、复选框,代码如下:

今后的操作是相似的,不再赘述。

内容来源:https://fastrans.nhobethoi.com/app-1/kết quả xổ số miền bắc tra cứu,http://chatbotjud-teste.saude.mg.gov.br/app-1/terceiroz

本文地址:http://w.21nx.com/news/12252389-87a21999693.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

第二届固件技能峰会隆重举行,共探职业立异开展之路

怎么选择一款合适自己的优质玻璃杯?

沃尔沃S90价格让你瞪大眼睛!2024款落地价福利满满,错失懊悔!

立异演绎古法匠心,胡姬花携《声生不息·大湾区季》交出文明传承满分答卷

Xiaomi Pad 7 Ultra评测:玄戒O1赋能 样样都Ultra -

是家也是舞台!Leader95后情侣用户在“空房子”里造梦!

新年据守:15岁高龄犬在新瑞鹏旗下调皮宗族宠物医院的“重生”接力战

REDMI电竞小平板曝光 搭载满血旗舰渠道 暂定Q3发布 -

友情链接