sggt/App/APP_WU/Inc/apps_gather.h

248 lines
8.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @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 <string.h>
#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从上往下数
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状态指示
void setting_items_check(uint8_t cursor, uint8_t cursor_prv); //设置界面选项卡内容选中。点亮cursor熄灭cursor_prv
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_inner; //选项内部的游标, 99代表未选中。
uint8_t tab_cursor_inner_prv; //前一时刻的内部游标
}TABVIEW_DATA;
/**********test5**********/
#endif