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调用读取点的数值,代码如下:
需要产品及方案支持
请扫码登记
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
未完待续
推荐阅读
框架设计 - RZ MPU工业控制教程连载(48)
LVGL相关与JSON-RPC相关 - RZ MPU工业控制教程连载(49)
后台程序开发相关操作 - RZ MPU工业控制教程连载(50)
需要产品及方案支持
请扫码登记