添加
1. 更改模式时进行渐变 2. 开灯渐变 3. 提高亮灯的速度,从flashboot中开始亮灯 4. spotlight_main 调整到app_main中来
This commit is contained in:
@ -27,7 +27,6 @@ typedef enum {
|
||||
#define SVC_ID_CCT "cct" // 色温控制
|
||||
#define SVC_ID_LIGHT_MODE "lightMode" // 场景模式控制
|
||||
#define SVC_ID_FADE_TIME "progressSwitch" // 渐变时长的控制
|
||||
#define SVC_ID_NET_INFO "netInfo" // 配网信息
|
||||
|
||||
// JSON字段名定义
|
||||
#define JSON_FIELD_ON "on" // 开关状态字段
|
||||
@ -36,14 +35,21 @@ typedef enum {
|
||||
#define JSON_FIELD_MODE "mode" // 场景模式字段
|
||||
#define JSON_FIELD_FADE_TIME "fadeTime" // 渐变时长字段
|
||||
|
||||
|
||||
typedef enum {
|
||||
REPORT_SWITCH = 1 << 0,
|
||||
REPORT_BRIGHTNESS = 1 << 1,
|
||||
REPORT_CCT = 1 << 2,
|
||||
REPORT_LIGHT_MODE = 1 << 3,
|
||||
REPORT_FADE_TIME = 1 << 4,
|
||||
REPORT_ALL = REPORT_SWITCH | REPORT_BRIGHTNESS | REPORT_CCT | REPORT_LIGHT_MODE | REPORT_FADE_TIME,
|
||||
} report_mask_e;
|
||||
// 当前亮度和色温状态
|
||||
typedef struct __attribute__((packed, aligned(1))) {
|
||||
// 物模型同步需要 持久化维持
|
||||
uint8_t on; // 开关状态
|
||||
lightMode_e elightMode;
|
||||
uint16_t brightness_local; // 当前亮度 (0-1000)
|
||||
uint16_t fade_time; // s
|
||||
uint16_t fade_time; // 渐变时长(s)
|
||||
uint16_t cct_local; // 当前色温 (2700-6500)
|
||||
// 持久化维持
|
||||
int32_t power_on_cnt; // 上电次数计数
|
||||
@ -102,8 +108,8 @@ typedef struct __attribute__((packed, aligned(1))) {
|
||||
#define NET_CFG_TIMEOUT_BRIGHTNESS 50 // 呼吸灯超时后的亮度
|
||||
#define NET_CFG_TIMEOUT_CCT 4000 // 呼吸灯超时后的色温
|
||||
|
||||
#define FADE_INTERVAL_MIN (1*1000) //us
|
||||
|
||||
#define FADE_INTERVAL_MIN (10*1000) //us
|
||||
#define NORMAL_FADE_TIME 3 //s
|
||||
#define PWM_DUTY_RATIO_MAX 1000
|
||||
|
||||
//呼吸灯定义
|
||||
@ -112,6 +118,9 @@ typedef struct __attribute__((packed, aligned(1))) {
|
||||
#define BREARTH_STEP ((PWM_DUTY_RATIO_MAX) * 2) / (BREARTH_PERIOD / BREARTH_INTERVAL) //每次变化的幅度
|
||||
|
||||
|
||||
// PWM频率和周期定义
|
||||
#define PWM_FREQUENCY 3000 // PWM频率 2KHz
|
||||
|
||||
//渐变范围
|
||||
#define SMOOTH_TIME_MAX 30
|
||||
#define SMOOTH_TIME_MIN 0
|
||||
@ -147,6 +156,15 @@ typedef enum {
|
||||
SAVE_STATE_WAITING // 等待保存
|
||||
} save_state_e;
|
||||
|
||||
|
||||
typedef enum {
|
||||
APP_CHANGE_LIGHT_MODE = 0,
|
||||
APP_CHANGE_LIGHT_BRIGHTNESS_CCT,
|
||||
APP_CLOSE_LIGHT,
|
||||
APP_OPEN_LIGHT,
|
||||
DEV_POWER_ON,
|
||||
} light_ctrl_source_e;
|
||||
|
||||
#define DEFAULT_DEVICE_DATA { \
|
||||
.read_done = false, \
|
||||
.on = true, \
|
||||
@ -161,8 +179,8 @@ typedef enum {
|
||||
};
|
||||
|
||||
int spotlight_main(void);
|
||||
int set_light(int32_t brightness, int32_t cct); // 新的统一控制函数
|
||||
int set_switch(bool open);
|
||||
int set_light(light_ctrl_source_e source,
|
||||
int32_t brightness_local_target, int32_t cct_local_target);
|
||||
int set_smooth_time(uint32_t smooth_time); // 设置渐变时长
|
||||
void update_pwm_output(bool on_state, uint16_t duty_cw, uint16_t duty_ww);
|
||||
|
||||
|
Reference in New Issue
Block a user