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文章
3795瀏覽量
81286 -
函數
+關注
關注
3文章
4345瀏覽量
62865 -
代碼
+關注
關注
30文章
4821瀏覽量
68890 -
LVGL
+關注
關注
1文章
91瀏覽量
3030
原文標題:LVGL前臺程序開發相關操作 - RZ MPU工業控制教程連載(52)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論