Forráskód Böngészése

2021-03-18 / Eason Yang
Action
1. Added : checkTask() added check watching dog log for ocpp module.
2. Added : isReachableInternet over 3 times, the system kill dhcp and add new default address.

File
1. main.c

Version : V0.67.XX.XXXX.XX

8009 4 éve
szülő
commit
dbaff2a706

+ 37 - 1
EVSE/Projects/AW-Regular/Apps/main.c

@@ -1641,6 +1641,8 @@ void InitEthernet()
 	sprintf(tmpbuf,"/sbin/ifconfig eth0 %s netmask %s up &",
 	ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress,
 	ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress);
+	DEBUG_INFO("eth0 config as ip: %s, netmask: %s\n", ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress,
+													   ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress);
 	system(tmpbuf);
 	memset(tmpbuf,0,256);
 	sprintf(tmpbuf,"route add default gw %s eth0 &",
@@ -1701,7 +1703,7 @@ void InitEthernet()
 				{
 					system("pgrep -f \"udhcpc -i eth0\" | xargs kill");
 					memset(tmpbuf,0,256);
-				        sprintf(tmpbuf,"/sbin/ifconfig eth0 %s netmask %s up &",
+					sprintf(tmpbuf,"/sbin/ifconfig eth0 %s netmask %s up &",
 					        ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress,
 					        ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress);
 					system(tmpbuf);
@@ -1722,6 +1724,26 @@ void InitEthernet()
 				if(cnt_pingDNS_Fail >= 3)
 				{
 					ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectViaEthernet=ON;
+					if((ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthDhcpClient==0))
+					{
+						system("pgrep -f \"udhcpc -i eth0\" | xargs kill");
+						sprintf(tmpbuf, "/sbin/udhcpc -i eth0 -x hostname:CSU3_%s -s /root/dhcp_script/eth0.script > /dev/null &", ShmSysConfigAndInfo->SysConfig.SystemId);
+						system(tmpbuf);
+					}
+					else
+					{
+						system("pgrep -f \"udhcpc -i eth0\" | xargs kill");
+						memset(tmpbuf,0,256);
+						sprintf(tmpbuf,"/sbin/ifconfig eth0 %s netmask %s up &",
+								ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress,
+								ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress);
+						system(tmpbuf);
+						memset(tmpbuf,0,256);
+						sprintf(tmpbuf,"route add default gw %s eth0 &",
+						ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthGatewayAddress);
+						system(tmpbuf);
+					}
+					cnt_pingDNS_Fail = 0;
 				}
 				else
 				{
@@ -2846,6 +2868,13 @@ void checkTask()
 	{
 		if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
 		{
+			if((time((time_t*)NULL) - ShmOCPP16Data->procDogTime) > 180)
+			{
+				DEBUG_WARN("OcppBackend watch dog timeout task restart.\n");
+				ShmOCPP16Data->procDogTime =  time((time_t*)NULL);
+				system("pkill OcppBackend");
+			}
+			
 			if(system("pidof -s OcppBackend > /dev/null") != 0)
 			{
 				DEBUG_INFO("OcppBackend not running, restart it.\n");
@@ -2854,6 +2883,13 @@ void checkTask()
 		}
 		else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
 		{
+			if((time((time_t*)NULL) - ShmOCPP20Data->procDogTime) > 180)
+			{
+				DEBUG_WARN("OcppBackend20 watch dog timeout task restart.\n");
+				ShmOCPP16Data->procDogTime =  time((time_t*)NULL);
+				system("pkill OcppBackend20");
+			}
+			
 			if(system("pidof -s OcppBackend20 > /dev/null") != 0)
 			{
 				DEBUG_INFO("OcppBackend20 not running, restart it.\n");

BIN
EVSE/Projects/AW-Regular/Images/FactoryDefaultConfig.bin


BIN
EVSE/Projects/AW-Regular/Images/ramdisk.gz


BIN
EVSE/rootfs/root/OcppBackend20