Browse Source

2022-11-25 / Yuanda Tsai / Action : Differentiate the errors of each meter and add error codes

Yuanda_Tsai 2 years ago
parent
commit
a434c11d46
2 changed files with 25 additions and 8 deletions
  1. 21 6
      EVSE/Modularization/DcMeter/Module_DcMeter.c
  2. 4 2
      EVSE/Projects/define.h

+ 21 - 6
EVSE/Modularization/DcMeter/Module_DcMeter.c

@@ -861,10 +861,18 @@ int main(void)
 					{
 							//if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.MeterCommTimeout)
 							//{
-							DEBUG_ERROR("Meter %d communication timeout",gun_index);
+							DEBUG_ERROR("Meter %d communication timeout \n",gun_index);
 							#ifndef DEBUG_STANDALONG
 							ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].LinkStatus = 3;
-							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.MeterCommTimeout = ON;
+							if(gun_index == 0){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter1CommTimeout = ON;
+							}else if(gun_index == 1){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter2CommTimeout = ON;
+							}else if(gun_index == 2){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter3CommTimeout = ON;
+							}else if(gun_index == 3){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter4CommTimeout = ON;
+							}
 							#else
 							meter_info[gun_index].LinkStatus = 3;
 							#endif
@@ -873,7 +881,6 @@ int main(void)
 					}
 					else
 					{
-						
 							if(meter_status_info[gun_index].MeterStatusFlag.bits.timeSyncStatusIsOk == 1 && 
 						  	meter_status_info[gun_index].MeterStatusFlag.bits.suLinkStatusIsOk == 1)
 							{
@@ -884,7 +891,16 @@ int main(void)
 							
 							#ifndef DEBUG_STANDALONG							
 							ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].LinkStatus = meter_info[gun_index].LinkStatus;							
-							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.MeterCommTimeout = OFF;							
+							ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].LinkStatus = 3;
+							if(gun_index == 0){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter1CommTimeout = OFF;
+							}else if(gun_index == 1){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter2CommTimeout = OFF;
+							}else if(gun_index == 2){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter3CommTimeout = OFF;
+							}else if(gun_index == 3){
+								ShmStatusCodeData->AlarmCode.AlarmEvents.bits.Meter4CommTimeout = OFF;
+							}							
 							//linkstatus 1 = los meter slave, 2 is can to be Transaction
 						  if(ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].LinkStatus == 1)
 							{															
@@ -907,8 +923,7 @@ int main(void)
 			PR("shm bits-suLinkStatusIsOk %d : %d \n", gun_index,ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].MeterStatusFlag.bits.suLinkStatusIsOk);
 			PR("shm bits-transactionIsOnGoing %d : %d \n", gun_index,ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].MeterStatusFlag.bits.transactionIsOnGoing);
 			PR("shm bits-timeSyncStatusIsOk %d : %d \n", gun_index,ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].MeterStatusFlag.bits.timeSyncStatusIsOk);
-			
-			
+
 			#else
 			/*
 			DEBUG_INFO("Meter %d - LinkStatus %d :  failCount: %d  ActionCmd: %d  OcmpInfoReady: %d RecordActionCmd: %d RecordOcmpInfoReady: %d \n", gun_index,

+ 4 - 2
EVSE/Projects/define.h

@@ -1680,7 +1680,7 @@ struct AlarmCodeData
 			unsigned char CcsLiquidChillerWaterLevelWarning:1;      //bit 7
 			//AlarmVal[13]
             unsigned char DisconnectedFromDo:1;                     //bit 0
-            unsigned char MeterCommTimeout:1;                       //bit 1
+            unsigned char Meter1CommTimeout:1;                       //bit 1
             unsigned char PsuDipSwitchStestFail:1;                  //bit 2
             unsigned char PsuFuseBurnOut:1;                         //bit 3
             unsigned char PsuPfcAndDcdcCommFault:1;                 //bit 4
@@ -1722,7 +1722,9 @@ struct AlarmCodeData
             unsigned char PsuComminicationErrWithCSU:1;             //bit 2
             unsigned char LocalPowerSharingCommunicationError:1;    //bit 3
             unsigned char ChillerAlarmFail:1;                       //bit 4
-			unsigned char :3;                                       //reserved bit 4 ~ bit 7
+            unsigned char Meter2CommTimeout:1;                      //bit 5
+            unsigned char Meter3CommTimeout:1;                      //bit 6
+            unsigned char Meter4CommTimeout:1;                      //bit 7
             //AlarmVal[19]
             unsigned char PaymentCommTimeout:1;                     //Payment system communication timeout
            	unsigned char MeterSlaveLosLink:1;                     	//DCMB meter slave module los link