Kaynağa Gözat

开关检测宏定义包含

liyi 1 yıl önce
ebeveyn
işleme
0cab387eb7
1 değiştirilmiş dosya ile 76 ekleme ve 59 silme
  1. 76 59
      control/PDU-AC-COMBINE/App/Main/Main.c

+ 76 - 59
control/PDU-AC-COMBINE/App/Main/Main.c

@@ -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;