Parcourir la source

[Add][AX80][main]

2022.04.18 / Folus Wen

Actions:
1. Charging session end if emergency stop occur for Bambang customer.

Files:
1. As follow commit history

Image version: D0.01.XX.XXXX.XX
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen il y a 2 ans
Parent
commit
3489d889b9

+ 1 - 0
EVSE/Projects/AX80/Apps/Module_AlarmDetect.c

@@ -1351,6 +1351,7 @@ int main(void)
 				{
 					sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].ErrorCode , "NoError");
 					memset(ShmOCPP16Data->StatusNotification[gun_index].VendorErrorCode, 0x00, ARRAY_SIZE(ShmOCPP16Data->StatusNotification[gun_index].VendorErrorCode));
+					memset(ShmOCPP16Data->StatusNotification[gun_index].Info, 0x00, ARRAY_SIZE(ShmOCPP16Data->StatusNotification[gun_index].Info));
 				}
 			}
 			else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)

+ 4 - 4
EVSE/Projects/AX80/Apps/Module_ConfigTools.c

@@ -525,7 +525,7 @@ int main(void)
 				scanf("%s", &cmd[0]);
 
 				ShmSysConfigAndInfo->SysConfig.isEnableLocalPowerSharing = ((0<=atoi(cmd))&&(atoi(cmd)<=1)?atoi(cmd):0);
-				if(ShmSysConfigAndInfo->SysConfig.RfidCardNumEndian)
+				if(ShmSysConfigAndInfo->SysConfig.isEnableLocalPowerSharing)
 					DEBUG_INFO("Local loading balance: Enable\n");
 				else
 					DEBUG_INFO("Local loading balance: Disable\n");
@@ -881,12 +881,12 @@ int main(void)
 
 				if((0 < atoi(cmd)) && (atoi(cmd) < 3))
 				{
-					DEBUG_INFO("Alarm simulate gun-%d, OVP.\n", atoi(cmd));
+					DEBUG_INFO("Alarm simulate gun-%d, emergency stop.\n", atoi(cmd));
 
 					while(1)
 					{
-						ShmCharger->gun_info[atoi(cmd)-1].systemAlarmCode.SystemAlarmCode |= ALARM_L1_OVER_VOLTAGE;
-						ShmCharger->gun_info[atoi(cmd)-1].primaryMcuAlarm.InputAlarmCode |= ALARM_L1_OVER_VOLTAGE;
+						ShmCharger->gun_info[atoi(cmd)-1].systemAlarmCode.SystemAlarmCode |= ALARM_EMERGENCY_STOP;
+						ShmCharger->gun_info[atoi(cmd)-1].primaryMcuAlarm.InputAlarmCode |= ALARM_EMERGENCY_STOP;
 					}
 				}
 				else

+ 23 - 4
EVSE/Projects/AX80/Apps/main.c

@@ -2847,11 +2847,13 @@ void InitEthernet()
 				// Check is need to reset WIFI/4G module power
 				if(!ShmSysConfigAndInfo->SysInfo.OcppConnStatus &&
 
-				   ((ShmSysConfigAndInfo->SysConfig.AthInterface.WifiMode == 0) ||
+				   ((system("pidof -s Module_Wifi > /dev/null") != 0) ||
+				    (ShmSysConfigAndInfo->SysConfig.AthInterface.WifiMode == 0) ||
 					((ShmSysConfigAndInfo->SysConfig.AthInterface.WifiMode == 1) && (ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectViaWiFi == ON)) ||
 					((ShmSysConfigAndInfo->SysConfig.AthInterface.WifiMode == 2) && (ShmStatusCodeData->InfoCode.InfoEvents.bits.ApDisconnectViaWiFi == ON))) &&
 
-				   ((ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomEnabled == 0) ||
+				   ((system("pidof -s Module_4g > /dev/null") != 0) ||
+				    (ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomEnabled == 0) ||
 				    ((ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomEnabled == 1) && (ShmStatusCodeData->InfoCode.InfoEvents.bits.ApnDisconnectVia4Gi == ON))))
 				{
 					if(getDiffSecNow(startTime[0][TMR_IDX_RESET_WIFI]) > TIMEOUT_SPEC_RESET_WIFI_MODULE)
@@ -5625,6 +5627,7 @@ int main(void)
 							ShmCharger->gun_info[gun_index].isDoEvReadyOnce = OFF;
 							ShmCharger->gun_info[gun_index].resultAuthorization = DEFAULT_RFID;
 							DB_Check_Record_Buf(localDb, gun_index);
+							ShmCharger->gun_info[gun_index].isEmergencyStopReport = OFF;
 						}
 
 						// LED status in Idle mode
@@ -6323,10 +6326,26 @@ int main(void)
 						setLedMotion(gun_index,LED_ACTION_ALARM);
 						setRelay(gun_index, OFF);
 
+						/*
+						 * 	TODO:
+						 * 	1. Customize emergency stop and report stop transaction then return to idle mode if error recover.
+						 * 	2. Customer: Bambang
+						 */
+						if((ShmSysConfigAndInfo->SysConfig.ModelName[12] == 'B') &&
+						   (ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode == ALARM_EMERGENCY_STOP))
+						{
+							if(((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_CHARGING) || (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_TERMINATING)) &&
+								!ShmCharger->gun_info[gun_index].isEmergencyStopReport)
+							{
+								checkStopReason(gun_index);
+								ShmCharger->gun_info[gun_index].isEmergencyStopReport = ON;
+							}
+						}
+
 						if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode == 0) && !ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CCSboardStestFail && !ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP)
 						{
-							if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_CHARGING) ||
-							   (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_TERMINATING))
+							if(((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_CHARGING) || (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_TERMINATING)) &&
+								!ShmCharger->gun_info[gun_index].isEmergencyStopReport)
 							{
 								setChargerMode(gun_index, ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus);
 							}

+ 1 - 0
EVSE/Projects/AX80/Apps/main.h

@@ -794,6 +794,7 @@ typedef struct GUN_INFO
 	uint32_t										isUpgradeReq:1;
 	uint32_t										isUpgradeEnd:1;
 	uint32_t										isUpgradePASS:1;
+	uint32_t										isEmergencyStopReport:1;
 }Gun_Info;
 
 struct Charger