忽略已对码遥控器的重复写入

This commit is contained in:
2026-07-27 23:59:47 +08:00
parent bb7662fda2
commit 36d7db331c
@@ -112,17 +112,24 @@ static uint8_t Pairing_Address_IsEmpty(uint8_t high, uint8_t low)
(high == 0xffU && low == 0xffU));
}
static void Pairing_Address_Touch(uint8_t high, uint8_t low)
static uint8_t Pairing_Address_AddNew(uint8_t high, uint8_t low)
{
uint8_t next_h[5];
uint8_t next_l[5];
uint8_t count = 0U;
uint8_t i;
for(i = 0U; i < 5U; i++)
{
if(adress_H_array[i] == high && adress_L_array[i] == low)
{
return 0U;
}
}
for(i = 0U; i < 5U; i++)
{
if(Pairing_Address_IsEmpty(adress_H_array[i], adress_L_array[i])) continue;
if(adress_H_array[i] == high && adress_L_array[i] == low) continue;
next_h[count] = adress_H_array[i];
next_l[count] = adress_L_array[i];
@@ -156,6 +163,8 @@ static void Pairing_Address_Touch(uint8_t high, uint8_t low)
adress_L_array[i] = 0xffU;
}
}
return 1U;
}
static void Pairing_Feedback_Apply(uint8_t on)
{
@@ -247,6 +256,7 @@ static void Pairing_Candidate_Reset(void)
static void Encoder_key_NoCode(){
uint16_t times_s=0;
uint8_t pairing_data_changed=0U;
if(pair_frame_silence_ticks < 0xffU) pair_frame_silence_ticks++;
if(pair_frame_silence_ticks > PAIR_FRAME_SILENCE_TICKS)
@@ -313,12 +323,20 @@ static void Encoder_key_NoCode(){
adress=receive_data >>8;
adress_H = (receive_data >> 16) & 0xff;
adress_L = (receive_data >> 8) & 0xff;
Pairing_Address_Touch(adress_H, adress_L);
if(Pairing_Address_AddNew(adress_H, adress_L))
{
pairing_data_changed=1U;
}
else if(match_success==0U)
{
pairing_data_changed=1U;
}
times_s=300;
match_success=1;
Pairing_Feedback_Start(times_s);
}
else if(res_data==Brightness_L||res_data==B_Brightness_L||res_data==F_Brightness_100){
pairing_data_changed=1U;
adress_H_array[0] = 0xff;
adress_L_array[0] = 0xff;
adress_H_array[1] = 0xff;
@@ -337,7 +355,7 @@ static void Encoder_key_NoCode(){
}
ssse=1;
set_TaskComps_timer(2,2000);
if(pairing_data_changed) set_TaskComps_timer(2,2000);
}
}