|
|
@@ -452,55 +452,57 @@ int check_or_control_detection(void)
|
|
|
|
|
|
void switch_recode()
|
|
|
{
|
|
|
+
|
|
|
+#if SUPPORT_DETECTION
|
|
|
#if SUPPORT_SWITCH_REMENBER
|
|
|
#if ((RelaySlaveChaNum == 6) || ((RelaySlaveChaNum == 8) && SUPPORT_2_DETECTION))
|
|
|
if((detection_value & 1) == 0)
|
|
|
- {
|
|
|
- if(handle_detection[0] == 1)
|
|
|
+ {
|
|
|
+ if(handle_detection[0] == 1)
|
|
|
+ {
|
|
|
+ for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
+ handle_status[k] = EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State;
|
|
|
+ }
|
|
|
+ handle_detection[0] = 0;
|
|
|
+ for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
+ EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=false;
|
|
|
+ for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
+ RelayState_ch(k);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(handle_detection[0] == 0)
|
|
|
{
|
|
|
+ handle_detection[0] = 1;
|
|
|
for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
- handle_status[k] = EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State;
|
|
|
+ EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=handle_status[k];
|
|
|
+ for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
+ RelayState_ch(k);
|
|
|
}
|
|
|
- handle_detection[0] = 0;
|
|
|
- for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
- EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=false;
|
|
|
- for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
- RelayState_ch(k);
|
|
|
- }else
|
|
|
- {
|
|
|
- if(handle_detection[0] == 0)
|
|
|
- {
|
|
|
- handle_detection[0] = 1;
|
|
|
- for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
- EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=handle_status[k];
|
|
|
- for(uint8_t k = 0; k < (RelaySlaveChaNum/2);k++)
|
|
|
- RelayState_ch(k);
|
|
|
}
|
|
|
- }
|
|
|
- if((detection_value & 2) == 0)
|
|
|
- {
|
|
|
- if(handle_detection[1] == 1)
|
|
|
- {
|
|
|
- for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
- handle_status[k] = EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State;
|
|
|
- }
|
|
|
- handle_detection[1] = 0;
|
|
|
- for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
- EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=false;
|
|
|
-
|
|
|
- for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
- RelayState_ch(k);
|
|
|
- }else
|
|
|
- {
|
|
|
- if(handle_detection[1] == 0)
|
|
|
+ if((detection_value & 2) == 0)
|
|
|
{
|
|
|
- handle_detection[1] = 1;
|
|
|
+ if(handle_detection[1] == 1)
|
|
|
+ {
|
|
|
+ for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
+ handle_status[k] = EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State;
|
|
|
+ }
|
|
|
+ handle_detection[1] = 0;
|
|
|
for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
- EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=handle_status[k];
|
|
|
+ EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=false;
|
|
|
+
|
|
|
for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
RelayState_ch(k);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(handle_detection[1] == 0)
|
|
|
+ {
|
|
|
+ handle_detection[1] = 1;
|
|
|
+ for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
+ EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=handle_status[k];
|
|
|
+ for(uint8_t k = (RelaySlaveChaNum/2); k < RelaySlaveChaNum;k++)
|
|
|
+ RelayState_ch(k);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
#else
|
|
|
if(detection_value == 0)
|
|
|
{
|
|
|
@@ -523,37 +525,38 @@ void switch_recode()
|
|
|
RelayState();
|
|
|
}
|
|
|
}
|
|
|
-#endif
|
|
|
+ #endif
|
|
|
#else
|
|
|
-#if (RelaySlaveChaNum == 6)
|
|
|
- if((detection_value & 1) == 0)
|
|
|
- {
|
|
|
- for(int i = 0; i < 3;i++)
|
|
|
- {
|
|
|
- set_channel_status(i,0);
|
|
|
- }
|
|
|
- RelayState();
|
|
|
- }
|
|
|
- if((detection_value & 2) == 0)
|
|
|
- {
|
|
|
- for(int i = 3; i < RelaySlaveChaNum;i++)
|
|
|
- {
|
|
|
- set_channel_status(i,0);
|
|
|
- }
|
|
|
- RelayState();
|
|
|
- }
|
|
|
-#endif
|
|
|
-#if SUPPORT_DETECTION
|
|
|
- if(detection_value == 0)
|
|
|
- {
|
|
|
+#if (RelaySlaveChaNum == 6 || ((RelaySlaveChaNum == 8) && SUPPORT_2_DETECTION))
|
|
|
+ if((detection_value & 1) == 0)
|
|
|
+ {
|
|
|
+ for(int i = 0; i < (RelaySlaveChaNum)/2;i++)
|
|
|
+ {
|
|
|
+ set_channel_status(i,0);
|
|
|
+ }
|
|
|
+ RelayState();
|
|
|
+ }
|
|
|
+ if((detection_value & 2) == 0)
|
|
|
+ {
|
|
|
+ for(int i = (RelaySlaveChaNum)/2; i < RelaySlaveChaNum;i++)
|
|
|
+ {
|
|
|
+ set_channel_status(i,0);
|
|
|
+ }
|
|
|
+ RelayState();
|
|
|
+ }
|
|
|
+#else
|
|
|
+ if(detection_value == 0)
|
|
|
+ {
|
|
|
for(int i = 0; i < RelaySlaveChaNum;i++)
|
|
|
{
|
|
|
set_channel_status(i,0);
|
|
|
}
|
|
|
RelayState();
|
|
|
}
|
|
|
+#endif
|
|
|
#endif
|
|
|
#endif
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/*********************************************************************************************************
|
|
|
@@ -576,6 +579,20 @@ static void Proc2msTask_Start(void)
|
|
|
Clr2msFlag();
|
|
|
return;
|
|
|
}
|
|
|
+//#if ((RelaySlaveChaNum == 6) || ((RelaySlaveChaNum == 8) && SUPPORT_2_DETECTION))
|
|
|
+// if((detection_value & 0x1) == 0)
|
|
|
+// {
|
|
|
+// uint8_t k = 0;
|
|
|
+// for(k=0;k <(RelaySlaveChaNum)/2;k++)
|
|
|
+// EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
|
|
|
+// }
|
|
|
+// if((detection_value & 0x2) == 0)
|
|
|
+// {
|
|
|
+// uint8_t k = 0;
|
|
|
+// for(k=(RelaySlaveChaNum)/2;k <RelaySlaveChaNum;k++)
|
|
|
+// EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
|
|
|
+// }
|
|
|
+//#endif
|
|
|
#endif
|
|
|
|
|
|
Delay_Ms_1 = Delay_Ms_1 +1;
|