213 lines
7.3 KiB
C
213 lines
7.3 KiB
C
/*
|
||
* @Author: wujunchao wujunchao@wuxismart.com
|
||
* @Date: 2024-12-27 11:51:06
|
||
* @LastEditors: wujunchao wujunchao@wuxismart.com
|
||
* @LastEditTime: 2025-02-07 09:30:00
|
||
* @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];
|
||
|
||
//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 149
|
||
//横线游标起点1,小数点的宽度与数字不一样,因此分成左右两半
|
||
|
||
#define IO_CURSOR_START2 209
|
||
//横线游标起点2
|
||
|
||
#define IO_CURSOR_INTERVAL 17
|
||
//数字之间间隔大小
|
||
|
||
#define SCREEN_SETTING 2
|
||
//设置界面,详细设置菜单
|
||
|
||
#define IO_ON 1
|
||
//主界面,ON
|
||
|
||
#define IO_OFF 0
|
||
//主界面,OFF
|
||
|
||
#define IO_INPUT 0
|
||
//输入模式
|
||
|
||
#define IO_OUTPUT 1
|
||
//输出模式
|
||
|
||
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); //恢复主界面的各项参数显示,用于界面切换(设置界面返回主界面)
|
||
|
||
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 io_numbers[6]; //实时显示的字符
|
||
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;
|
||
|
||
/**********test5**********/
|
||
|
||
|
||
|
||
|
||
|
||
#endif
|
||
|
||
|