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

描述

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调用读取点的数值,代码如下:

程序

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分