liyi před 1 rokem
rodič
revize
07a046ccd2

+ 8 - 4
truing_control/PDU_AC_OLD/App/Main/Main.c

@@ -429,30 +429,34 @@ static  void  InitHardware(void)
 		key_2 = get_key_io_2();
 		key_3 = get_key_io_3();
 		key_4 = get_key_io_4();
+#if RelaySlaveChaNum >= 1
 		if(key_1  == false)
 		{
 			handle_k_1_status = 0;
-			EE_ACDC_State_ReadReg[0].ACDC_Cha_On_Off_State = false;
 			set_channel_status(0,0);
 		}
+#endif
+#if RelaySlaveChaNum >= 2
 		if(key_2  == false)
 		{
 			handle_k_2_status = 0;
-			EE_ACDC_State_ReadReg[1].ACDC_Cha_On_Off_State = false;
 			set_channel_status(1,0);
 		}
+#endif
+#if RelaySlaveChaNum >= 3
 		if(key_3  == false)
 		{
 			handle_k_3_status = 0;
-			EE_ACDC_State_ReadReg[2].ACDC_Cha_On_Off_State = false;
 			set_channel_status(2,0);
 		}
+#endif
+#if RelaySlaveChaNum >= 4
 		if(key_4  == false)
 		{
 			handle_k_4_status = 0;
-			EE_ACDC_State_ReadReg[3].ACDC_Cha_On_Off_State = false;
 			set_channel_status(3,0);
 		}
+#endif
 #endif
 	while(1)
 	{

+ 1 - 1
truing_control/PDU_AC_OLD/App/Main/cfg.h

@@ -18,7 +18,7 @@
 #define PROGRAME_APP1_SIZE								(48*1024)													//App1 programe Max size
 
 
-#define VERSION                          		"V1.0.0.4"
+#define VERSION                          		"V1.0.0.0"
 
 #define MODBUS_HEAD                        	"GOWONE_UPGRADE"
 

+ 35 - 0
truing_control/PDU_AC_OLD/App/Modbus/BARE/port/port.c

@@ -137,6 +137,14 @@ extern META_DATA_S meta_data ;
 extern information_t infomation;
 
 
+#if SUPPORT_SELF_LOCK
+ extern	uint8_t handle_k_1_status;
+ extern	uint8_t handle_k_2_status;
+ extern	uint8_t handle_k_3_status;
+ extern	uint8_t handle_k_4_status;
+#endif
+
+
 eMBErrorCode
 eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode )
 {
@@ -281,6 +289,33 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 										EE_ACDC_State_ReadReg[i].ACDC_Ele_Upthr_En = false;
 									}
 								}
+#if SUPPORT_SELF_LOCK
+		#if (RelaySlaveChaNum >= 1)
+				if(handle_k_1_status == 0)
+				{
+					EE_ACDC_State_ReadReg[0].ACDC_Cha_On_Off_State = 0;
+				}
+		#endif
+		#if (RelaySlaveChaNum >= 2)
+				if(handle_k_2_status == 0)
+				{
+					EE_ACDC_State_ReadReg[1].ACDC_Cha_On_Off_State = 0;
+				}
+		#endif
+		#if (RelaySlaveChaNum >= 3)
+				if(handle_k_3_status == 0)
+				{
+					EE_ACDC_State_ReadReg[2].ACDC_Cha_On_Off_State = 0;
+				}
+		#endif	
+		#if (RelaySlaveChaNum >= 4)
+				if(handle_k_4_status == 0)
+				{
+					EE_ACDC_State_ReadReg[3].ACDC_Cha_On_Off_State = 0;
+				}
+		#endif				
+								
+#endif
 								memcpy(&Eeprom_Wbuf,&EE_ACDC_State_ReadReg[Chal_num],WusNRegs*2);								   			//将数据由16进制转化为无符号数据存入数组 
 								AT24CxxWrite(Eepr_AC_Sing_State_SmaWAddr+WeeiRegIndex*2,Eeprom_Wbuf, WusNRegs*2); //将数据写入到eeprom中
 							  if((WusNRegs==RelaySlaveChaNum)&&(EE_ACDC_State_ReadReg[0].ACDC_Cha_On_Off_State==true)&&(EE_ACDC_State_ReadReg[0].ACDC_ALLCha_On_State==true))//通过下发的通道数和开关状态可以判断为全开