/* * @Author: wujunchao wujunchao@wuxismart.com * @Date: 2024-12-27 11:51:06 * @LastEditors: wujunchao wujunchao@wuxismart.com * @LastEditTime: 2025-02-19 11:20:22 * @FilePath: \signal_generator\App\APP_WU\Inc\apps_gather.h * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ #ifndef __APPS_GATHER_H #define __APPS_GATHER_H //provided by ZhangXiaoMing #include "main.h" #include "tm1650.h" #include "mux_signal.h" #include "JLX240-00301-BN.h" #include #include "gpio.h" #include "modbus.h" #include "ble.h" #include "hart.h" #include "rn7302.h" #include "SIG24130.h" #include "FreeRTOS.h" #include "task.h" //LVGL #include "lvgl.h" // 它为整个LVGL提供了更完整的头文件引用 #include "lv_port_disp.h" // LVGL的显示 #include "gui_guider.h" // Gui Guider 生成的界面和控件的声明 #include "events_init.h" // Gui Guider 生成的初始化事件、回调函数 extern lv_ui guider_ui; extern const lv_img_dsc_t * screen_main_animimg_1_imgs[6]; extern const lv_img_dsc_t * screen_main_animimg_2_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_3_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_4_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_5_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_6_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_7_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_9_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_10_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_11_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_12_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_13_imgs[11]; extern const lv_img_dsc_t * screen_main_animimg_14_imgs[11]; //written bt WuJunChao #include "timer.h" #include "stdio.h" //#include "lv_demo_benchmark.h" // void menu_test2(void); //竖屏,3个进度条,sggt_test_02 // void menu_test3(void); //横屏,2个界面,sggt_test_03 /**********test4**********/ // void menu_test4(void); //横屏,3个界面,开机动画、简易信号发生器、详细设置 // void scr_init_run(void); //起始界面 // void scr_main_run(void); //主界面 // void nowtime_show(void); //运行时间显示 // void battery_show(void); //电池电量显示 // void dynamic_plot(void); //动态曲线绘制 // void menu_test4_reset(void); //menu_test4复位 // typedef struct //主界面显示数据结构体 // { // char sig_runtime[8]; // char sig_data_io[7]; // }SCR_MAIN; /**********test4**********/ /**********test5**********/ #define KEY_OUT 76 #define KEY_UP 84 #define KEY_MENU 92 #define KEY_IN 69 #define KEY_LEFT 77 #define KEY_OK 85 #define KEY_RIGHT 93 #define KEY_SWITCH 101 #define KEY_SOURCE 78 #define KEY_DOWN 86 #define KEY_BACK 94 #define SCREEN_INIT 0 //初始界面,开机动画 #define SCREEN_INIT_CNT_MAX 4 //开机动画进度条计数次数 #define SCREEN_MAIN 1 //主界面,信号输入输出,示波器显示 //游标定位 //{ #define IO_CURSOR_START1 134 //横线游标起点1,小数点的宽度与数字不一样,因此分成左右两半 #define IO_CURSOR_START2 237 //横线游标起点2 #define IO_CURSOR_INTERVAL 29 //数字之间间隔大小 #define IO_CURSOR_Y 229 //y轴坐标值 //} #define SCREEN_SETTING 2 //设置界面,详细设置菜单 #define IO_ON 1 //主界面,ON #define IO_OFF 0 //主界面,OFF #define IO_INPUT 0 //主界面,输入模式 #define IO_OUTPUT 1 //主界面,输出模式 #define ITEMS_0 0 //设置界面,选项卡0(从上往下数) #define ITEMS_1 1 //设置界面,选项卡1(从上往下数) #define ITEMS_2 2 //设置界面,选项卡2(从上往下数) #define ITEMS_3 3 //设置界面,选项卡2(从上往下数) void menu_test5(void); //模拟正式产品,实现基本功能 void menu_data_init(void); //数据初始化 void scr_init_run(void); //开机动画 void scr_main_run(void); //主界面 void scr_setting_run(void); //详细设置界面 void runtime_show(void); //运行时间显示 void battery_show(void); //电池电量显示 void key_functions_main(void); //按键功能,主界面 void key_functions_setting(void); //按键功能,详细设置菜单界面 void num_twinkle(void); //数值闪烁,数值发生变化后开始闪烁,10秒无动作后闪烁停止,游标移动后恢复前一时刻位置的数值 void plot_drawing(void); //实时曲线绘制 void scr_main_recover(void); //恢复主界面的各项参数显示,用于界面切换(设置界面返回主界面) void input_value_show(void); //显示当前测量值 void io_on2off_status(void); //输入输出、ON&OFF状态指示 //设置界面:点亮cursor;熄灭cursor_prv;tab_cont = 0 选项卡,tab_cont = 1 内容。 void setting_items_check(uint8_t cursor, uint8_t cursor_prv, uint8_t tab_cont); typedef enum { SIG_VOLTAGE = 0, //电压 SIG_CURRENT, //电流 SIG_RESISTANT, //电阻 SIG_FREQUENCE, //频率 SIG_TC, //热电偶 SIG_RTD //热电阻 }SIG_FUNCTIONS; typedef enum { VOLTAGE_MV = 0, //电压mV VOLTAGE_V, //电压V CURRENT_MA, //电流mA RESISTANT_OHM, //电阻Ω FREQUENCE_KHZ, //频率KHz TC_K, //热电偶K TC_S, //热电偶S TC_N, //热电偶N RTD_DC //热电阻摄氏度 }SIG_FUNCTIONS_TYPE; typedef struct { //general uint8_t scr_now; //当前屏幕,通过按键切换, [0->init, 1->main, 2->setting] int tick_prv; //前一个时刻 int tick_cur; //当前时刻 //screen_init uint8_t scr_init_flag; //初始界面标志,是否播放过开机动画 uint8_t scr_init_bar; //进度条实时值 uint8_t scr_init_cnt; //进度条计数 //screen_main uint8_t runtime_seconds; uint8_t runtime_minutes; uint8_t runtime_hours; char runtime_show[8]; //存放运行时间转化得到的字符串 uint8_t battery_cnt; //电池计数 uint8_t io_cursor; //当前游标位置, [000,000], 0~5整数表示6个位置 uint8_t io_cursor_prv; //前一时刻的游标位置 char i_numbers[6]; //实时显示的字符,输入 char o_numbers[6]; //实时显示的字符,输出 uint8_t io_on2off; //ON & OFF uint8_t io_mode; //当前工作模式,0输入,1输出 SIG_FUNCTIONS input_mode; //当前的输入模式 SIG_FUNCTIONS_TYPE input_mode_type; //当前输入模式的类型 SIG_FUNCTIONS output_mode; //当前的输出模式 SIG_FUNCTIONS_TYPE output_mode_type; //当前输出模式的类型 uint8_t twk_flag; //闪烁标志 //screen_setting }MENU_DATA; typedef struct { //lv_chart_set_range(ui->screen_main_chart_1, LV_CHART_AXIS_PRIMARY_Y, y_pri_low, y_pri_up); int y_pri_up; //纵轴(主)上限 int y_pri_low; //纵轴(主)下限 float32 yreal_pri_up; //实际值y上限 float32 yreal_pri_low; //实际值y下限 //lv_chart_set_range(ui->screen_main_chart_1, LV_CHART_AXIS_SECONDARY_Y, y_scd_low, y_scd_up); int y_scd_up; //纵轴(副)上限 int y_scd_low; //纵轴(副)下限 float32 yreal_scd_up; //实际值y上限 float32 yreal_scd_low; //实际值y下限 //lv_chart_set_next_value(ui->screen_main_chart_1, ui->screen_main_chart_1_0, 1); int y_pri_value; //0号曲线的下一个点,主y轴 float32 yreal_pri_value; //0号曲线的下一个实际值 //lv_chart_set_next_value(ui->screen_main_chart_1, ui->screen_main_chart_1_1, 1); int y_scd_value; //1号曲线的下一个点,副y轴 float32 yreal_scd_value; //1号曲线的下一个实际值 }PLOT_DATA; typedef struct { uint8_t tab_cursor; //选项卡游标,后续根据实际需求进行宏定义 uint8_t tab_cursor_prv; //前一时刻的选项卡游标 uint8_t tab_cursor_inner; //选项内部的游标, 99代表未选中。 uint8_t tab_cursor_inner_prv; //前一时刻的内部游标 }TABVIEW_DATA; /**********test5**********/ #endif