13.5.5 “+”按钮的操作
1.“+”按钮的回调函数
点击如下按钮时,会增加“点”:

在界面里会得到如下图所示的新控件:

点击“+”按钮时它的回调函数“add_new_item_event_handler”被调用,这个回调函数在“lv_modbus_tool”函数中被设置,代码如下:

“add_new_item_event_handler”函数代码如下:

它调用“add_new_item”函数为“点”创建控件,此函数在前面分析过,不再赘述。
2.通过RPC通知后台程序添加点
上图中第2个参数为“-1”,表示要创建一个新点:这会导致“rpc_add_point”函数被调用,代码如下:

13.5.6 “Setting”按钮的操作
1.创建配置界面
点击“Setting”按钮,会弹出一个配件界面:

可以在配置界面里设置“点”的信息:使用哪个串口、串口参数设置、设备地址、寄存器地址、寄存器类别。
这个配置界面在何时被创建?在“add_new_item”函数中创建:

最底层:

“[0]”表示第1层的第0个控件:

“[0-0]”表示第2层的第0个控件:

其他代码都是类似的,不再赘述。
2.显示配置界面
点击“Setting”按钮时它的回调函数“show_conf_event_handler”被调用,这个回调函数在“add_new_item”函数中被设置,代码如下:

“show_conf_event_handler”函数代码如下:

配置界面如下:

3.配件界面的“OK”按钮的回调函数
当设置好各类参数后,点击“OK”按钮将会调用它的回调函数“com_conf_opt_btn_event_handler”,这个回调函数在“配置页面的创建函数com_or_ip_conf_page_init”中被设置,代码如下:

“com_conf_opt_btn_event_handler”回调函数代码如下,它仅仅是发出一个事件:

上图第1124、1126、1128行,一层一层地找到“Send”按钮,如下图:
先在cont2_x中找到它的第2个child,就是“add_new_item”中给某个点创建的、占据66%高度的控件cont2_x_2,对应注释“[2]”。
再在cont2_x_2中找打它的第6个child,即控件 cont2_x_2_x,对应“add_new_item”函数中的注释“[2-6]”。
最后在cont2_x_2_x中找打它的第1个child,对应“add_new_item”函数中的注释“[2-6-1]”,它就是“Send”按键
就可以给“Send”按键发送“MY_LV_EVENT_UPDATE_RPC”事件了。

4.“Send”按钮回调函数
对于“点”,有如下界面:

上图界面是使用“add_new_item”函数创建的,里面的“Send”按钮回调函数,如下图所示:

在“Setting”界面点击“OK”按钮时,会给“Send”按钮发送“MY_LV_EVENT_UPDATE_RPC”事件。导致“btn_send_event_handler”函数被调用,这个函数最终会使用RPC接口修改点的信息,调用关系如下图所示:

13.5.7 写“点”的操作
在如下界面写入数值后,点击“Send”,会调用RPC接口写传感器:

“Send”按钮的回调函数“btn_send_event_handler”被调用,它的代码如下:

对于“0x”、“4x”的寄存器,先写入数据,再读出来。
13.5.8 读“点”的操作
在如下界面勾选“Period”前面的复选框,会周期性地读点:

创建这个复选框时的代码如下:

当勾选“Period”前面的复选框时,“cb_send_period_event_handler”函数被调用:

在定时器的函数里,向“Send”按钮发送“MY_LV_EVENT_READ_PERIOD”事件,代码如下:

“Send”函数的回调函数“btn_send_event_handler”被调用,它会使用RPC调用读取点的数值,代码如下:

-
程序
+关注
关注
117文章
3836浏览量
84765 -
函数
+关注
关注
3文章
4406浏览量
66839 -
代码
+关注
关注
30文章
4941浏览量
73151 -
LVGL
+关注
关注
2文章
115浏览量
4275
发布评论请先 登录
LVGL开发入门教程
前台运行和后台运行二者有何区别
LVGL的字体相关资料分享
LVGL工具使用
Purple Pi R1 LVGL使⽤参考
LuatOS之LVGL字体篇
LVGL系列(二)之二 LVGL常见问题解答 整理自官方文档
LVGL 优化帧率技巧

LVGL前台程序开发相关操作介绍
评论