存档:

代码文件拆分:apps_gather部分内容拆分至app_screen_main和app_screen_setting
This commit is contained in:
吴俊潮 2025-03-20 09:48:49 +08:00
parent 3ff3a5e703
commit d13a90f853
11 changed files with 16058 additions and 16256 deletions

View File

@ -26,7 +26,8 @@
"stm32f4xx_hal_def.h": "c",
"stm32_hal_legacy.h": "c",
"timer.h": "c",
"lv_span.h": "c"
"lv_span.h": "c",
"apps_gather.h": "c"
},
"C_Cpp.errorSquiggles": "disabled",
"idf.pythonInstallPath": "F:\\Espressif\\tools\\idf-python\\3.11.2\\python.exe",

View File

@ -0,0 +1,133 @@
#ifndef _APP_SCREEN_MAIN_H
#define _APP_SCREEN_MAIN_H
#include "apps_gather.h"
//初始界面
//{
//初始界面编号0开机动画
#define SCREEN_INIT 0
//开机动画进度条计数次数
#define SCREEN_INIT_CNT_MAX 4
//}
//主界面
//{
//主界面编号1信号输入输出示波器显示
#define SCREEN_MAIN 1
//主界面ON
#define IO_ON 1
//主界面OFF
#define IO_OFF 0
//主界面,输入模式
#define IO_INPUT 0
//主界面,输出模式
#define IO_OUTPUT 1
//游标-横线起点1小数点的宽度与数字不一样因此分成左右两半
#define IO_CURSOR_START1 136
//游标-横线起点2
#define IO_CURSOR_START2 244
//游标-数字之间间隔大小
#define IO_CURSOR_INTERVAL 24
//游标-y轴坐标值
#define IO_CURSOR_Y 230
//闪烁次数上限
#define TWINKLE_CNT_MAX 10
//绘图等待滴答数上限
#define PLOT_WAIT_TICK_MAX 5
//数码管数值增加(正负情况交替时up和down两个键起到的作用会对调因此专门定义参数用于区分数值的增减)
#define NIXIE_INCREASE 1
//数码管数值增加(正负情况交替时up和down两个键起到的作用会对调因此专门定义参数用于区分数值的增减)
#define NIXIE_DECREASE 0
//}
//菜单数据初始化
void screen_data_init(void);
//绘图数据初始化
void plot_data_init(void);
//界面复位
void menu_reset(void);
//按键功能,主界面
void key_functions_main(void);
//开机动画
void scr_init_run(void);
//主界面
void scr_main_run(void);
//运行时间显示
void runtime_show(void);
//电池电量显示
void battery_show(void);
//设置游标位置【0000.000】0~7
void set_cursor_position(void);
//设置数码管符号位0->熄灭1->显示负号
void set_nixie_cube_sign(uint8_t on2off, uint8_t sg);
//设置数码管显示值io_slc->输入/输出pos->第几个数字num->数值*1000
//补充说明pos = 99时num=[00000009999999]pos = 10时数值显示为空白。
void set_nixie_cube(uint8_t io_slc, uint8_t pos, int32_t num);
//RE按键修改输出值
void keyset_output(int8_t key_step);
//设置当前的输出值1000*实际值->(无符号)数组,可直接输入负数
void set_output_array(int32_t pvo);
//设置输出值:数字显示 + 符号 + 缓存sto->实际值
void set_output(float32 sto);
//获取当前设定的输出值(数组&符号 -> (有符号)实际值)
float32 get_output_value(void);
//显示当前测量值
void input_value_show(void);
//输入输出、ON&OFF状态指示
void io_on2off_status(void);
//恢复主界面的各项参数显示,用于界面切换(设置界面->主界面)
void scr_main_recover(void);
//数值闪烁数值发生变化后开始闪烁10秒无动作后闪烁停止游标移动后恢复前一时刻位置的数值
void num_twinkle(void);
//实时曲线绘制
void plot_drawing(void);
//设置工作模式和工作模式类型
void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type);
#endif

View File

@ -0,0 +1,128 @@
#ifndef _APP_SCREEN_SETTING_H
#define _APP_SCREEN_SETTING_H
#include "apps_gather.h"
//设置界面
//{
//设置界面编号2详细设置菜单
#define SCREEN_SETTING 2
//设置界面选项卡0从上往下数
#define ITEMS_0 0
//{
//选项卡 0 内部的第 0 个内容的游标位置
#define CONTENT_0_0 1
//选项卡 0 内部的第 1 个内容的游标位置
#define CONTENT_0_1 3
//选项卡 0 内部的第 2 个内容的游标位置
#define CONTENT_0_2 5
//选项卡 0 内部的第 3 个内容的游标位置
#define CONTENT_0_3 9
//选项卡 0 内部的第 4 个内容的游标位置
#define CONTENT_0_4 11
//选项卡 0 内部的第 5 个内容的游标位置
#define CONTENT_0_5 15
//选项卡 0 内部的第 6 个内容的游标位置
#define CONTENT_0_6 17
//选项卡 0 内部的第 7 个内容的游标位置
#define CONTENT_0_7 21
//选项卡 0 内部的第 8 个内容的游标位置
#define CONTENT_0_8 23
//选项卡 0 内部的第 9 个内容的游标位置
#define CONTENT_0_9 27
//选项卡 0 内部的第 10 个内容的游标位置
#define CONTENT_0_10 29
//选项卡 0 内部的第 11 个内容的游标位置
#define CONTENT_0_11 33
//选项卡 0 内部的第 12 个内容的游标位置
#define CONTENT_0_12 35
//选项卡 0 内部的第 13 个内容的游标位置
#define CONTENT_0_13 25
//}
#define ITEMS_1 1
//设置界面选项卡1从上往下数
//{
#define CONTENT_1_0 1
//}
#define ITEMS_2 2
//设置界面选项卡2从上往下数
#define ITEMS_3 3
//设置界面选项卡2从上往下数
//选项卡未选中时的底色0xffffff0x000000
#define COLOR_ITEMS_UNCHECKED 0xffffff
//选项卡选中时的底色
#define COLOR_ITEMS_CHECKED 0xcbefff
//内容未选中时的底色
#define COLOR_CONTENTS_UNCHECKED 0xffffff
//内容选中时的底色
#define COLOR_CONTENTS_CHECKED 0xcbefff
//内容焦点后的底色
#define COLOR_CONTENTS_FOCUSED 0X9dffb0
//}
//设置菜单数据初始化
void tab_dada_init(void);
//按键功能,详细设置菜单界面
void key_functions_setting(void);
//设置界面选项卡选中点亮cursor熄灭cursor_prv
void setting_items_check(uint8_t cursor, uint8_t cursor_prv);
//设置界面选项卡内部内容选中点亮cursor熄灭cursor_prv焦点focus
void setting_contents_check(uint8_t cursor, uint8_t cursor_prv);
//设置界面选项卡内部内容选中之后根据键值key_val和步长step修改内容修改第ite个选项卡的第con个内容
void setting_contents_modify(uint8_t ite, uint8_t con, uint8_t key_val, int8_t step);
//修改选项卡0的内容
void contents_modify_item_0(uint8_t cursor, int8_t step);
//修改选项卡1的内容
void contents_modify_item_1(uint8_t cursor, int8_t step);
//此处仅用于修改设置界面的显示内容修改后的内容会在返回主界面时KEY_BACK再更新
void setting_update(uint8_t ite, uint8_t con);
//设置界面刷新选项卡的内容隐藏items_prv显示items_now
void contents_refresh(uint8_t items_prv, uint8_t items_now);
//将游标的横纵坐标转换成游标值x[0,5], y[0,5], cursor[0,35]
uint8_t contents_xy2cursor(uint8_t px, uint8_t py);
//设置内容的底色
void set_contents_color(uint8_t cursor, uint32_t color);
//恢复设置界面的各项参数显示,用于界面切换(主界面->设置界面)
void scr_setting_recover(void);
//详细设置界面
void scr_setting_run(void);
#endif

View File

@ -2,7 +2,7 @@
* @Author: wujunchao wujunchao@wuxismart.com
* @Date: 2024-12-27 11:51:06
* @LastEditors: wujunchao wujunchao@wuxismart.com
* @LastEditTime: 2025-03-19 18:39:43
* @LastEditTime: 2025-03-20 09:35:49
* @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
*/
@ -24,47 +24,6 @@
#include "SIG24130.h"
#include "FreeRTOS.h"
#include "task.h"
#if 0
// typedef enum
// {
// CH0_OUT_VOL_V = 0,
// CH1_OUT_VOL_MV,
// CH2_OUT_CUR,
// CH3_OUT_FRE,
// CH4_OUT_RES,
// CH5_IN_VOL,
// CH6_IN_MVOL,
// CH7_IN_CUR,
// CH8_IN_FRE,
// CH9_IN_TC,
// CH10_IN_RTD,
// CH11_IN_HART,
// CHX_IN_MAX,
// } CHANNEL;
// typedef struct
// {
// uint8_t capture_cnt;
// uint8_t over_cnt;
// float32 high_time; // 高电平时间
// float32 duty_time; // 周期
// float32 freq;
// float32 capture_buf[3];
// } st_freq_signal;
// typedef struct
// {
// CHANNEL channel;
// float32 data_sv;
// float32 data_pv;
// float32 pwr_delay;
// } st_mux_signal;
// extern st_freq_signal freq_signal;
// extern st_mux_signal mux_signal;
#endif
//}
//LVGL
@ -100,159 +59,6 @@ extern const lv_img_dsc_t * screen_main_ani_out_sign_imgs[3];
#include "eeprom_spi.h"
//#include "lv_demo_benchmark.h"
/**********test5**********/
//按键值
#define KEY_OUT 76
#define KEY_UP 84
#define KEY_MENU 68
#define KEY_IN 78
#define KEY_LEFT 77
#define KEY_OK 85
#define KEY_RIGHT 94
#define KEY_SWITCH 69
#define KEY_SOURCE -1
#define KEY_DOWN 86
#define KEY_BACK 70
//绝对值计算
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
//初始界面
//{
//初始界面编号0开机动画
#define SCREEN_INIT 0
//开机动画进度条计数次数
#define SCREEN_INIT_CNT_MAX 4
//}
//主界面
//{
//主界面编号1信号输入输出示波器显示
#define SCREEN_MAIN 1
//游标-横线起点1小数点的宽度与数字不一样因此分成左右两半
#define IO_CURSOR_START1 136
//游标-横线起点2
#define IO_CURSOR_START2 244
//游标-数字之间间隔大小
#define IO_CURSOR_INTERVAL 24
//游标-y轴坐标值
#define IO_CURSOR_Y 230
//闪烁次数上限
#define TWINKLE_CNT_MAX 10
//绘图等待滴答数上限
#define PLOT_WAIT_TICK_MAX 5
//数码管数值增加(正负情况交替时up和down两个键起到的作用会对调因此专门定义参数用于区分数值的增减)
#define NIXIE_INCREASE 1
//数码管数值增加(正负情况交替时up和down两个键起到的作用会对调因此专门定义参数用于区分数值的增减)
#define NIXIE_DECREASE 0
//}
//设置界面
//{
//设置界面编号2详细设置菜单
#define SCREEN_SETTING 2
//主界面ON
#define IO_ON 1
//主界面OFF
#define IO_OFF 0
//主界面,输入模式
#define IO_INPUT 0
//主界面,输出模式
#define IO_OUTPUT 1
//设置界面选项卡0从上往下数
#define ITEMS_0 0
//{
//选项卡 0 内部的第 0 个内容的游标位置
#define CONTENT_0_0 1
//选项卡 0 内部的第 1 个内容的游标位置
#define CONTENT_0_1 3
//选项卡 0 内部的第 2 个内容的游标位置
#define CONTENT_0_2 5
//选项卡 0 内部的第 3 个内容的游标位置
#define CONTENT_0_3 9
//选项卡 0 内部的第 4 个内容的游标位置
#define CONTENT_0_4 11
//选项卡 0 内部的第 5 个内容的游标位置
#define CONTENT_0_5 15
//选项卡 0 内部的第 6 个内容的游标位置
#define CONTENT_0_6 17
//选项卡 0 内部的第 7 个内容的游标位置
#define CONTENT_0_7 21
//选项卡 0 内部的第 8 个内容的游标位置
#define CONTENT_0_8 23
//选项卡 0 内部的第 9 个内容的游标位置
#define CONTENT_0_9 27
//选项卡 0 内部的第 10 个内容的游标位置
#define CONTENT_0_10 29
//选项卡 0 内部的第 11 个内容的游标位置
#define CONTENT_0_11 33
//选项卡 0 内部的第 12 个内容的游标位置
#define CONTENT_0_12 35
//选项卡 0 内部的第 13 个内容的游标位置
#define CONTENT_0_13 25
//}
#define ITEMS_1 1
//设置界面选项卡1从上往下数
//{
#define CONTENT_1_0 1
//}
#define ITEMS_2 2
//设置界面选项卡2从上往下数
#define ITEMS_3 3
//设置界面选项卡2从上往下数
//选项卡未选中时的底色0xffffff0x000000
#define COLOR_ITEMS_UNCHECKED 0xffffff
//选项卡选中时的底色
#define COLOR_ITEMS_CHECKED 0xcbefff
//内容未选中时的底色
#define COLOR_CONTENTS_UNCHECKED 0xffffff
//内容选中时的底色
#define COLOR_CONTENTS_CHECKED 0xcbefff
//内容焦点后的底色
#define COLOR_CONTENTS_FOCUSED 0X9dffb0
//}
typedef enum
{
SIG_VOLTAGE = 0, //电压
@ -281,15 +87,6 @@ typedef enum
RTD_DC //热电阻摄氏度
}SIG_FUNCTIONS_TYPE;
typedef struct
{
SIG_FUNCTIONS tag; //物理量标签
SIG_FUNCTIONS_TYPE typ; //类型
int16_t up; //上限
int16_t low; //下限
float32 pv; //当前值
}PHYSICAL_QUANTITY;
typedef struct
{
//general
@ -360,6 +157,15 @@ typedef struct
}PLOT_DATA;
typedef struct
{
SIG_FUNCTIONS tag; //物理量标签
SIG_FUNCTIONS_TYPE typ; //类型
int16_t up; //上限
int16_t low; //下限
float32 pv; //当前值
}PHYSICAL_QUANTITY;
typedef struct
{
uint8_t item_cursor; //选项卡游标,后续根据实际需求进行宏定义
@ -391,8 +197,38 @@ typedef struct
}TABVIEW_DATA;
//避免无法定位上面自定义的枚举和结构体
#include "app_screen_main.h"
#include "app_screen_setting.h"
extern MENU_DATA m5data; //界面参数初始化
extern PLOT_DATA pltdata; //chart绘图参数初始化
extern TABVIEW_DATA tabdata; //设置页面参数初始化
extern PHYSICAL_QUANTITY VOL[2]; //电压VOL[0]-V, VOL[1]-mV
extern PHYSICAL_QUANTITY CUR; //电流mA
extern PHYSICAL_QUANTITY RES; //电阻,Ω
extern PHYSICAL_QUANTITY FRE; //频率KHz
extern PHYSICAL_QUANTITY TC[8]; //热电偶共8种
extern PHYSICAL_QUANTITY RTD; //热电阻
//按键值
#define KEY_OUT 76
#define KEY_UP 84
#define KEY_MENU 68
#define KEY_IN 78
#define KEY_LEFT 77
#define KEY_OK 85
#define KEY_RIGHT 94
#define KEY_SWITCH 69
#define KEY_SOURCE -1
#define KEY_DOWN 86
#define KEY_BACK 70
//绝对值计算
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
//模拟正式产品,实现基本功能
void menu_test5(void);
void screen_run(void);
//计算a的b次方
float32 my_power(int a, int b);
@ -400,117 +236,18 @@ float32 my_power(int a, int b);
//物理量内容初始化
void physical_quantity_init(void);
//菜单数据初始化
void menu_data_init(void);
//界面复位
void menu_reset(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);
//数值闪烁数值发生变化后开始闪烁10秒无动作后闪烁停止游标移动后恢复前一时刻位置的数值
void num_twinkle(void);
//实时曲线绘制
void plot_drawing(void);
//设置游标位置【0000.000】0~7
void set_cursor_position(void);
//设置数码管符号位0->熄灭1->显示负号
void set_nixie_cube_sign(uint8_t on2off, uint8_t sg);
//设置数码管显示值io_slc->输入/输出pos->第几个数字num->数值*1000
//补充说明pos = 99时num=[00000009999999]pos = 10时数值显示为空白。
void set_nixie_cube(uint8_t io_slc, uint8_t pos, int32_t num);
//获取当前设定的输出值(数组&符号 -> (有符号)实际值)
float32 get_output_value(void);
//设置当前的输出值1000*实际值->(无符号)数组,可直接输入负数
void set_output_array(int32_t pvo);
//设置输出值:数字显示 + 符号 + 缓存sto->实际值
void set_output(float32 sto);
//RE按键修改输出值
void keyset_output(int8_t key_step);
//通道选择与切换
void sig_channel_select(uint8_t io, SIG_FUNCTIONS_TYPE type);
//更新设定值根据ON\OFF状态
void sig_sv_update(void);
//设置工作模式和工作模式类型
void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type);
//恢复主界面的各项参数显示,用于界面切换(设置界面->主界面)
void scr_main_recover(void);
//恢复设置界面的各项参数显示,用于界面切换(主界面->设置界面)
void scr_setting_recover(void);
//显示当前测量值
void input_value_show(void);
//输入输出、ON&OFF状态指示
void io_on2off_status(void);
//设置界面选项卡选中点亮cursor熄灭cursor_prv
void setting_items_check(uint8_t cursor, uint8_t cursor_prv);
//设置界面选项卡内部内容选中点亮cursor熄灭cursor_prv焦点focus
void setting_contents_check(uint8_t cursor, uint8_t cursor_prv);
//设置界面选项卡内部内容选中之后根据键值key_val和步长step修改内容修改第ite个选项卡的第con个内容
void setting_contents_modify(uint8_t ite, uint8_t con, uint8_t key_val, int8_t step);
//此处仅用于修改设置界面的显示内容修改后的内容会在返回主界面时KEY_BACK再更新
void setting_update(uint8_t ite, uint8_t con);
//将游标的横纵坐标转换成游标值x[0,5], y[0,5], cursor[0,35]
uint8_t contents_xy2cursor(uint8_t px, uint8_t py);
//设置内容的底色
void set_contents_color(uint8_t cursor, uint32_t color);
//修改选项卡0的内容
void contents_modify_item_0(uint8_t cursor, int8_t step);
//修改选项卡1的内容
void contents_modify_item_1(uint8_t cursor, int8_t step);
//设置界面刷新选项卡的内容隐藏items_prv显示items_now
void contents_refresh(uint8_t items_prv, uint8_t items_now);
//数据转换mux_signal.pv -> real_value
float32 mux2real(float32 mux_pv);
//数据转换real_value -> mux_signal.sv
float32 real2mux(float32 real_value);
/**********test5**********/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -306,11 +306,11 @@ void start_mux_analog(void const * argument)
void start_menu(void const * argument)
{
/* USER CODE BEGIN start_menu */
menu_data_init();
screen_data_init();
/* Infinite loop */
for(;;)
{
menu_test5();
screen_run();
osDelay(200);
}
/* USER CODE END start_menu */

View File

@ -238,7 +238,7 @@
<Ww>
<count>16</count>
<WinNumber>1</WinNumber>
<ItemText>guider_ui</ItemText>
<ItemText>guider_ui,0x0A</ItemText>
</Ww>
<Ww>
<count>17</count>
@ -270,11 +270,6 @@
<WinNumber>1</WinNumber>
<ItemText>RTD,0x0A</ItemText>
</Ww>
<Ww>
<count>23</count>
<WinNumber>1</WinNumber>
<ItemText>watch_temp</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
@ -3714,6 +3709,30 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>16</GroupNumber>
<FileNumber>272</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\App\APP_WU\Src\app_screen_main.c</PathWithFileName>
<FilenameWithoutPath>app_screen_main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>16</GroupNumber>
<FileNumber>273</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\App\APP_WU\Src\app_screen_setting.c</PathWithFileName>
<FilenameWithoutPath>app_screen_setting.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -3724,7 +3743,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>272</FileNumber>
<FileNumber>274</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3736,7 +3755,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>273</FileNumber>
<FileNumber>275</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3748,7 +3767,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>274</FileNumber>
<FileNumber>276</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3760,7 +3779,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>275</FileNumber>
<FileNumber>277</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3772,7 +3791,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>276</FileNumber>
<FileNumber>278</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3784,7 +3803,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>277</FileNumber>
<FileNumber>279</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3796,7 +3815,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>278</FileNumber>
<FileNumber>280</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3808,7 +3827,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>279</FileNumber>
<FileNumber>281</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3820,7 +3839,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>280</FileNumber>
<FileNumber>282</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3832,7 +3851,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>281</FileNumber>
<FileNumber>283</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3844,7 +3863,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>282</FileNumber>
<FileNumber>284</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3856,7 +3875,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>283</FileNumber>
<FileNumber>285</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3868,7 +3887,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>284</FileNumber>
<FileNumber>286</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3880,7 +3899,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>285</FileNumber>
<FileNumber>287</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3892,7 +3911,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>286</FileNumber>
<FileNumber>288</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3904,7 +3923,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>287</FileNumber>
<FileNumber>289</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3916,7 +3935,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>288</FileNumber>
<FileNumber>290</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3928,7 +3947,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>289</FileNumber>
<FileNumber>291</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3940,7 +3959,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>290</FileNumber>
<FileNumber>292</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3952,7 +3971,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>291</FileNumber>
<FileNumber>293</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3964,7 +3983,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>292</FileNumber>
<FileNumber>294</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3976,7 +3995,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>293</FileNumber>
<FileNumber>295</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -3988,7 +4007,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>294</FileNumber>
<FileNumber>296</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4000,7 +4019,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>295</FileNumber>
<FileNumber>297</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4012,7 +4031,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>296</FileNumber>
<FileNumber>298</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4024,7 +4043,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>297</FileNumber>
<FileNumber>299</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4036,7 +4055,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>298</FileNumber>
<FileNumber>300</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4048,7 +4067,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>299</FileNumber>
<FileNumber>301</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4060,7 +4079,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>300</FileNumber>
<FileNumber>302</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4072,7 +4091,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>301</FileNumber>
<FileNumber>303</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4084,7 +4103,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>302</FileNumber>
<FileNumber>304</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4096,7 +4115,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>303</FileNumber>
<FileNumber>305</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4108,7 +4127,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>304</FileNumber>
<FileNumber>306</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4120,7 +4139,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>305</FileNumber>
<FileNumber>307</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4132,7 +4151,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>306</FileNumber>
<FileNumber>308</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4144,7 +4163,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>307</FileNumber>
<FileNumber>309</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4156,7 +4175,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>308</FileNumber>
<FileNumber>310</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4168,7 +4187,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>309</FileNumber>
<FileNumber>311</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -4180,7 +4199,7 @@
</File>
<File>
<GroupNumber>17</GroupNumber>
<FileNumber>310</FileNumber>
<FileNumber>312</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@ -2478,6 +2478,16 @@
<FileType>1</FileType>
<FilePath>..\App\APP_WU\Src\eeprom_spi.c</FilePath>
</File>
<File>
<FileName>app_screen_main.c</FileName>
<FileType>1</FileType>
<FilePath>..\App\APP_WU\Src\app_screen_main.c</FilePath>
</File>
<File>
<FileName>app_screen_setting.c</FileName>
<FileType>1</FileType>
<FilePath>..\App\APP_WU\Src\app_screen_setting.c</FilePath>
</File>
</Files>
</Group>
<Group>

File diff suppressed because it is too large Load Diff