PWM32EPRO V3.0:新增方形八键遥控支持
新增八键功能:0x03开关、0x01模式切换、0x07静态暖光W、0x09静态冷光C、0x0B亮度增加、0x05亮度降低、0x0C减速、0x0A加速。静态和动态模式均支持亮度调节,动态模式支持10档速度,模式键循环切换。 修正方形遥控宏定义命名;模式、亮度和速度键复用500ms长按重复处理。沿用原固定窗口433解码及通码/地址过滤机制,最多保存5个遥控;对码窗口内长按冷光C键对码、暖光W键清码。433接收GPIO5及外接按键禁用配置保持不变。 版本更新为V3.0,同步编译产物、完整烧录BIN与OTA文件,校验码15811E00;release/online仅保留最新文件。已完成编译链接及发布文件一致性检查。此前无输出、无蓝牙广播问题仍待硬件复测确认,本次不标记为已解决。
This commit is contained in:
@@ -227,7 +227,7 @@ static uint8_t Pairing_IsTriggerCommand(uint8_t command)
|
||||
{
|
||||
return command == Brightness_H || command == Brightness_L ||
|
||||
command == B_Brightness_H || command == B_Brightness_L ||
|
||||
command == F_Brightness_10 || command == F_Brightness_100;
|
||||
command == F_KEY_COOL_STATIC || command == F_KEY_WARM_STATIC;
|
||||
}
|
||||
|
||||
static void Pairing_Replay_Deferred(void)
|
||||
@@ -353,7 +353,7 @@ static void Encoder_key_NoCode(){
|
||||
if(ssse != 0U || time_5s > PAIRING_WINDOW_TICKS) return;
|
||||
if(!(res_data==Brightness_H||res_data==Brightness_L||
|
||||
res_data==B_Brightness_H||res_data==B_Brightness_L||
|
||||
res_data==F_Brightness_10||res_data==F_Brightness_100))
|
||||
res_data==F_KEY_COOL_STATIC||res_data==F_KEY_WARM_STATIC))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -399,7 +399,7 @@ static void Encoder_key_NoCode(){
|
||||
long_press_cnt=0;
|
||||
pair_deferred_command=0U;
|
||||
|
||||
if(res_data==Brightness_H||res_data==B_Brightness_H||res_data==F_Brightness_10){
|
||||
if(res_data==Brightness_H||res_data==B_Brightness_H||res_data==F_KEY_COOL_STATIC){
|
||||
adress=receive_data >>8;
|
||||
adress_H = (receive_data >> 16) & 0xff;
|
||||
adress_L = (receive_data >> 8) & 0xff;
|
||||
@@ -415,7 +415,7 @@ static void Encoder_key_NoCode(){
|
||||
match_success=1;
|
||||
Pairing_Feedback_Start(times_s);
|
||||
}
|
||||
else if(res_data==Brightness_L||res_data==B_Brightness_L||res_data==F_Brightness_100){
|
||||
else if(res_data==Brightness_L||res_data==B_Brightness_L||res_data==F_KEY_WARM_STATIC){
|
||||
pairing_data_changed=1U;
|
||||
adress_H_array[0] = 0xff;
|
||||
adress_L_array[0] = 0xff;
|
||||
@@ -441,7 +441,7 @@ static void Encoder_key_NoCode(){
|
||||
app_pairing_requested = 0U;
|
||||
if(res_data==Brightness_H ||
|
||||
res_data==B_Brightness_H ||
|
||||
res_data==F_Brightness_10)
|
||||
res_data==F_KEY_COOL_STATIC)
|
||||
ble_remote_event_notify(0x0DU, 2U,
|
||||
rf433_paired_count());
|
||||
else
|
||||
@@ -483,7 +483,7 @@ uint32_t KEY_STATE_re=0; //
|
||||
|
||||
//该函数选择那个按键为单击,哪个为长按按键
|
||||
static void set_click(){
|
||||
if(res_data==Mode_add||res_data==Mode_dow||res_data==F_ON_OFF||res_data==F_Mode_choose||res_data==ON||res_data==OFF){
|
||||
if(res_data==Mode_add||res_data==Mode_dow||res_data==F_KEY_POWER_TOGGLE||res_data==F_KEY_MODE_NEXT||res_data==F_KEY_WARM_STATIC||res_data==F_KEY_COOL_STATIC||res_data==ON||res_data==OFF){
|
||||
Key_TypeDef.KEY_STATE_Click=1; //单击
|
||||
}else{
|
||||
Key_TypeDef.KEY_STATE_LONG_PRESS=1; //长按
|
||||
@@ -493,7 +493,12 @@ static void set_click(){
|
||||
|
||||
static uint8_t rf433_is_mode_step_command(uint8_t command)
|
||||
{
|
||||
return command == Mode_add || command == Mode_dow;
|
||||
return command == Mode_add || command == Mode_dow ||
|
||||
command == F_KEY_MODE_NEXT ||
|
||||
command == F_KEY_BRIGHTNESS_UP ||
|
||||
command == F_KEY_BRIGHTNESS_DOWN ||
|
||||
command == F_KEY_SPEED_UP ||
|
||||
command == F_KEY_SPEED_DOWN;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -593,6 +598,29 @@ void _433_fun(){
|
||||
Stop_PWM();
|
||||
}
|
||||
break;
|
||||
case F_KEY_POWER_TOGGLE:
|
||||
if(deviceStatus==POWEROFF) Start_PWM();
|
||||
else Stop_PWM();
|
||||
break;
|
||||
case F_KEY_MODE_NEXT:
|
||||
if(deviceStatus==POWEROFF) break;
|
||||
if(choose_mode_falsg >= REMOTE_MODE_MAX) choose_mode_falsg=REMOTE_MODE_MIN;
|
||||
else choose_mode_falsg++;
|
||||
choose_mode_bh=0;
|
||||
startTimer(&timer1,1);
|
||||
break;
|
||||
case F_KEY_WARM_STATIC:
|
||||
if(deviceStatus==POWEROFF) Start_PWM();
|
||||
choose_mode_falsg=0U;
|
||||
choose_mode_bh=0U;
|
||||
startTimer(&timer1,1U);
|
||||
break;
|
||||
case F_KEY_COOL_STATIC:
|
||||
if(deviceStatus==POWEROFF) Start_PWM();
|
||||
choose_mode_falsg=1U;
|
||||
choose_mode_bh=0U;
|
||||
startTimer(&timer1,1U);
|
||||
break;
|
||||
case Mode_add:
|
||||
if(POWEROFF==deviceStatus)break;
|
||||
if(choose_mode_falsg>REMOTE_MODE_MAX){
|
||||
@@ -649,6 +677,24 @@ void _433_fun(){
|
||||
if(Speed>SPEED_MIN_LEVEL)Speed--;
|
||||
}
|
||||
break;
|
||||
case F_KEY_BRIGHTNESS_UP:
|
||||
if(deviceStatus==POWEROFF) break;
|
||||
if(Brightness >= (BRIGHTNESS_MAX_PERCENT - BRIGHTNESS_RF_STEP_PERCENT)) Brightness=BRIGHTNESS_MAX_PERCENT;
|
||||
else Brightness+=BRIGHTNESS_RF_STEP_PERCENT;
|
||||
break;
|
||||
case F_KEY_BRIGHTNESS_DOWN:
|
||||
if(deviceStatus==POWEROFF) break;
|
||||
if(Brightness <= (BRIGHTNESS_MIN_PERCENT + BRIGHTNESS_RF_STEP_PERCENT)) Brightness=BRIGHTNESS_MIN_PERCENT;
|
||||
else Brightness-=BRIGHTNESS_RF_STEP_PERCENT;
|
||||
break;
|
||||
case F_KEY_SPEED_UP:
|
||||
if(deviceStatus==POWEROFF || Mode==mode0) break;
|
||||
if(Speed>SPEED_MIN_LEVEL) Speed--;
|
||||
break;
|
||||
case F_KEY_SPEED_DOWN:
|
||||
if(deviceStatus==POWEROFF || Mode==mode0) break;
|
||||
if(Speed<SPEED_MAX_LEVEL) Speed++;
|
||||
break;
|
||||
default:
|
||||
if(POWEROFF==deviceStatus)break;
|
||||
if(res_data>=16&&res_data<=255){
|
||||
|
||||
Reference in New Issue
Block a user