| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- --[[
- @module ui_main
- @summary 调试宝UI主程序,负责页面管理和主循环
- @version 1.0
- @date 2026.03.04
- @author 李一玮
- @usage
- 本文件管理所有调试宝UI页面,包括主页和各个演示页面。
- ]]
- require("tsb_login_page")
- require("tsb_home_page")
- require("tsb_bsk_page")
- require("tsb_tq_page")
- require("tsb_bmq_page")
- require("tsb_ywy_page")
- require("tsb_lora_page")
- require("tsb_devlog_page")
- require("tsb_485log_page")
- require("tsb_mqtt_page")
- require("tsb_firm_page")
- require("tsb_upgrade_page")
- require("tsb_reflash_page")
- require("tsb_light_page")
- require("tsb_devinfo_page")
- require("tsb_update_page")
- require("tsb_wlan_page")
- require("tsb_game_page")
- require("tsb_wavein_page")
- require("tsb_waveout_page")
- require("tsb_ywy_1_page")
- require("tsb_ywy_2_page")
- require("tsb_232log_page")
- require("tsb_channel_page")
- require("tsb_log_page")
- require("tsb_help_page")
- require("tsb_waveform_page")
- -- 当前显示的页面
- local current_page = nil
- local page_stack = {} -- 页面,用于返回功能
- -- local frame_time = 20 -- 主循环刷新间隔,单位ms
- -- 页面定义
- local pages = {
- tsb_login_page = "tsb_login_page", -- 调试宝登录页面
- tsb_home_page = "tsb_home_page", -- 调试宝主界面
- tsb_bsk_page = "tsb_bsk_page", -- 报税口页面
- tsb_tq_page = "tsb_tq_page", -- 提枪信号页面
- tsb_bmq_page = "tsb_bmq_page", -- 编码器页面
- tsb_ywy_page = "tsb_ywy_page", -- 液位仪页面
- tsb_lora_page = "tsb_lora_page", -- 无线局域网监测页面
- tsb_devlog_page = "tsb_devlog_page", -- 设备日志监测页面
- tsb_485log_page = "tsb_485log_page", -- 485日志监测页面
- tsb_mqtt_page = "tsb_mqtt_page", -- MQTT配置页面
- tsb_firm_page = "tsb_firm_page", -- 固件包下载页面
- tsb_upgrade_page = "tsb_upgrade_page", -- 升级演示页面
- tsb_reflash_page = "tsb_reflash_page", -- 刷机页面
- tsb_light_page = "tsb_light_page", -- 亮度页面
- tsb_devinfo_page = "tsb_devinfo_page", -- 设备信息页面
- tsb_update_page = "tsb_update_page", -- 更新页面
- tsb_wlan_page = "tsb_wlan_page", -- 网络配置页面
- tsb_wavein_page = "tsb_wavein_page", -- 波形输入页面
- tsb_waveout_page = "tsb_waveout_page", -- 波形输出页面
- tsb_ywy_1_page = "tsb_ywy_1_page", -- 液位仪页面1
- tsb_ywy_2_page = "tsb_ywy_2_page", -- 液位仪页面2
- tsb_232log_page = "tsb_232log_page", -- 232日志监测页面
- tsb_channel_page = "tsb_channel_page", -- 信道切换页面
- tsb_log_page = "tsb_log_page", -- 本机日志页面
- tsb_help_page = "tsb_help_page", -- 帮助页面
- tsb_waveform_page = "tsb_waveform_page", -- 波形页面
- -- tsb_game_page = "tsb_game_page", -- 游戏页面
- }
- -- 显示指定页面
- local function show_page(page_name, params)
- -- 保存当前页面
- if not params or not (params.from_back or params.from_home) then
- if current_page then
- table.insert(page_stack, {
- name = current_page.name,
- instance = current_page.instance
- })
- end
- end
- -- 清理当前页面
- if current_page and current_page.instance.cleanup then
- current_page.instance.cleanup()
- end
- -- 加载新页面
- local module_name = pages[page_name]
- if not module_name then
- log.error("tsb_ui_main", "页面不存在:", page_name)
- return false
- end
- local page_module = require(module_name)
- -- 初始化页面
- if page_module.init then
- page_module.init(params)
- end
- -- 更新当前页面信息
- current_page = {
- name = page_name,
- module = module_name,
- instance = page_module
- }
- log.info("tsb_ui_main", "切换到页面:", page_name)
- return true
- end
- -- 返回上一个页面
- local function go_back()
- if #page_stack > 0 then
- local prev_page = table.remove(page_stack)
- if prev_page.instance and prev_page.instance.show then
- prev_page.instance.show()
- current_page = prev_page
- log.info("tsb_ui_main", "返回页面:", prev_page.name)
- return true
- else
- return show_page(prev_page.name, { from_back = true })
- end
- else
- return show_page("tsb_login_page", { from_back = true })
- end
- end
- -- 返回到首页面
- local function go_home()
- -- 先判断是否已在首页
- if current_page and current_page.name == "tsb_home_page" then
- log.info("tsb_ui_main", "当前已在首页,无需跳转")
- return true
- end
- -- 清空页面栈
- page_stack = {}
- -- 调用show_page,用from_home标识
- return show_page("tsb_home_page", { from_home = true })
- end
- -- 主任务函数
- local function tsb_ui_main_task()
- -- 3V3供电使能
- gpio.setup(153,1, gpio.PULLUP)
- -- 10V供电使能
- gpio.setup(147,1, gpio.PULLUP)
- -- 开启屏幕供电
- gpio.setup(31,0)
- gpio.set(31,0)
- -- 初始化硬件
- lcd_drv.init()
- tp_drv.init()
- -- 显示主页
- show_page("tsb_login_page")
-
- end
- -- 全局函数,方便页面调用
- _G.show_page = show_page
- _G.go_back = go_back
- _G.go_home = go_home
- -- 启动UI主任务
- sys.taskInit(tsb_ui_main_task)
|