| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- module(...,package.seeall)
- require "sys"
- require "audio"
- require "net"
- require "misc"
- require "lvsym"
- scr0 = nil
- scr1 = nil
- sign = nil
- menu_btn = nil
- ret_btn = nil
- menu_page = nil
- is_hidden = true
- clock = nil
- key_number = lvgl.KEY_NEXT
- key_pending = false
- key_state = lvgl.INDEV_STATE_REL
- local function menu_item_event_cb(label, event)
- --if (label == nil) then
- -- return
- --end
- --if (event == lvgl.EVENT_FOCUSED) then
- -- sys.timerStart(lvgl.page_focus, 500, menu_page, label, lvgl.ANIM_ON)
- lvgl.page_focus(menu_page, label, lvgl.ANIM_ON)
- --end
- end
- local function update_sign()
- quality = net.getRssi()
- lvgl.img_set_src(sign, lvgl.SYMBOL_BATTERY_FULL)
- end
- local function btn_event_cb(btn, event)
- if (btn == nil) then
- return
- end
- --if (event == lvgl.EVENT_CLICKED) then
- --toggle_menu_page()
- if (btn == menu_btn) then
- lvgl.obj_set_hidden(menu_page, false)
- else
- lvgl.obj_set_hidden(menu_page, true)
- end
- --end
- end
- local function send_to_menu_btn()
- lvgl.event_send(menu_btn, lvgl.EVENT_CLICKED, nil)
- end
- local function send_to_ret_btn()
- lvgl.event_send(ret_btn, lvgl.EVENT_CLICKED, nil)
- end
- local function show_scr1()
- lvgl.disp_load_scr(scr1)
- -- sys.timerStart(show_menu, 2000)
- sys.timerStart(send_to_menu_btn, 2000)
- sys.timerStart(send_to_ret_btn, 10000)
- end
- local function create()
- th = lvgl.theme_material_init(80, nil)
- lvgl.theme_set_current(th)
- scr0 = lvgl.cont_create(nil, nil)
- scr1 = lvgl.cont_create(nil, nil)
- logo = lvgl.img_create(scr0, nil)
- lvgl.img_set_src(logo, "/lua/logo.jpg")
- lvgl.obj_align(logo, nil, lvgl.ALIGN_CENTER, 0, -40)
- label = lvgl.label_create(scr0, nil)
- lvgl.label_set_text(label, "上海合宙通信")
- lvgl.obj_align(label, nil, lvgl.ALIGN_CENTER, 0, 50)
- bg = lvgl.img_create(scr1, nil)
- lvgl.img_set_src(bg, "/lua/bg.jpg")
- lvgl.obj_align(bg, nil, lvgl.ALIGN_CENTER, 0, 0)
- sign = lvgl.img_create(scr1, nil)
- lvgl.img_set_src(sign, lvgl.SYMBOL_BATTERY_FULL)
- lvgl.obj_align(sign, nil, lvgl.ALIGN_IN_TOP_LEFT, 2, 1)
- battery = lvgl.img_create(scr1, nil)
- lvgl.img_set_src(battery, lvgl.SYMBOL_NEW_LINE)
- lvgl.obj_align(battery, nil, lvgl.ALIGN_IN_TOP_RIGHT, -2, 1)
- clock = lvgl.label_create(scr1, nil)
- time = misc.getClock()
- lvgl.label_set_text(clock, time.hour..":"..time.min..":"..time.sec)
- lvgl.obj_align(clock, nil, lvgl.ALIGN_CENTER, 0, 0)
- menu_btn = lvgl.btn_create(scr1, nil)
- lvgl.obj_set_size(menu_btn, 40, 30)
- menu_label = lvgl.label_create(menu_btn, nil)
- lvgl.label_set_text(menu_label, "菜单")
- lvgl.obj_align(menu_btn, nil, lvgl.ALIGN_IN_BOTTOM_LEFT, 2, -1)
- lvgl.obj_set_event_cb(menu_btn, btn_event_cb)
- g = lvgl.get_keypad_group()
- --lvgl.group_add_obj(g, menu_btn)
- ret_btn = lvgl.btn_create(scr1, nil)
- lvgl.obj_set_size(ret_btn, 40, 30)
- ret = lvgl.label_create(ret_btn, nil)
- lvgl.label_set_text(ret, "返回")
- lvgl.obj_align(ret_btn, nil, lvgl.ALIGN_IN_BOTTOM_RIGHT, -2, -1)
- lvgl.obj_set_event_cb(ret_btn, btn_event_cb)
- --lvgl.group_add_obj(g, ret_btn)
- menu_page = lvgl.page_create(scr1, nil)
- lvgl.page_set_sb_mode(menu_page, lvgl.SB_MODE_AUTO)
- lvgl.page_set_scrl_layout(menu_page, lvgl.LAYOUT_COL_M)
- lvgl.obj_set_width(menu_page, lvgl.obj_get_width(scr1))
- lvgl.obj_set_height(menu_page, 120)
- lvgl.obj_align(menu_page, nil, lvgl.ALIGN_CENTER, 0, 0)
- menu_opt_0 = lvgl.label_create(menu_page, nil)
- --menu_opts["0"] = menu_opt_0
- lvgl.label_set_text(menu_opt_0, "选项0")
- lvgl.obj_set_width(menu_opt_0, lvgl.page_get_fit_width(menu_page))
- lvgl.obj_set_event_cb(menu_opt_0, menu_item_event_cb)
- lvgl.group_add_obj(g, menu_opt_0)
- menu_opt_1 = lvgl.label_create(menu_page, nil)
- --menu_opts["1"] = menu_opt_1
- lvgl.label_set_text(menu_opt_1, "选项1")
- lvgl.obj_set_width(menu_opt_1, lvgl.page_get_fit_width(menu_page))
- lvgl.obj_set_event_cb(menu_opt_1, menu_item_event_cb)
- lvgl.group_add_obj(g, menu_opt_1)
- menu_opt_2 = lvgl.label_create(menu_page, nil)
- --menu_opts["2"] = menu_opt_2
- lvgl.label_set_text(menu_opt_2, "选项2")
- lvgl.obj_set_width(menu_opt_2, lvgl.page_get_fit_width(menu_page))
- lvgl.obj_set_event_cb(menu_opt_2, menu_item_event_cb)
- lvgl.group_add_obj(g, menu_opt_2)
- menu_opt_3 = lvgl.label_create(menu_page, nil)
- --menu_opts["3"] = menu_opt_3
- lvgl.label_set_text(menu_opt_3, "选项3")
- lvgl.obj_set_width(menu_opt_3, lvgl.page_get_fit_width(menu_page))
- lvgl.obj_set_event_cb(menu_opt_3, menu_item_event_cb)
- lvgl.group_add_obj(g, menu_opt_3)
- lvgl.obj_set_hidden(menu_page, is_hidden)
- lvgl.disp_load_scr(scr0)
- sys.timerStart(show_scr1, 3000)
- end
- local function keyMsg(msg)
- log.info("keyMsg",msg.key_matrix_row,msg.key_matrix_col,msg.pressed)
- if (msg.pressed) then
- key_state = lvgl.INDEV_STATE_PR
- else
- key_state = lvgl.INDEV_STATE_REL
- end
- key_pending = true;
- end
- rtos.on(rtos.MSG_KEYPAD,keyMsg)
- rtos.init_module(rtos.MOD_KEYPAD,0,0x0F,0x0F)
- local function input()
- if (key_pending) then
- local data = {
- type = lvgl.INDEV_TYPE_KEYPAD,
- state = key_state,
- key = key_number
- }
- key_pending = false
- return data
- end
- return nil
- end
- count = 0
- local function key_event_gen()
- key_pending = true
- key_state = (count % 2) == 0 and lvgl.INDEV_STATE_PR or lvgl.INDEV_STATE_REL
- --lvgl.page_focus(menu_page, menu_opts[""..(count % 4)])
- count = count + 1
- end
- local function update_time()
- time = misc.getClock()
- lvgl.label_set_text(clock, time.hour..":"..time.min..":"..time.sec)
- end
- sys.timerLoopStart(update_sign, 5000)
- sys.timerLoopStart(update_time, 1000)
- sys.timerLoopStart(key_event_gen, 1000)
- -- sys.timerStart(lvgl.init, 5000, create, input)
- lvgl.init(create, input)
|