Ver código fonte

[Improve][Noodoe][main]

2021.07.24 / Folus Wen

Actions:
1. Enable whitelist on webpage when OCPP URL does not empty.
2. checkTask() logic improve for OcppBackend and add run interval 10 seconds.

Files:
1. As follow commit history

Image version: V0.52.XX.XXXX.XX
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 3 anos atrás
pai
commit
cda1208cc0
1 arquivos alterados com 24 adições e 16 exclusões
  1. 24 16
      EVSE/Projects/Noodoe/Apps/main.c

+ 24 - 16
EVSE/Projects/Noodoe/Apps/main.c

@@ -21,7 +21,7 @@
 #define TMR_IDX_LOGPPRINTOUT			2
 #define TMR_IDX_PROFILE_PREPARE			3
 #define TMR_IDX_PWN_CHANGE				4
-#define TMR_IDX_5						5
+#define TMR_IDX_CHECK_TASK					5
 #define TMR_IDX_6						6
 #define TMR_IDX_7						7
 #define TMR_IDX_8						8
@@ -477,8 +477,6 @@ uint8_t ocpp_get_remotestop(uint8_t gun_index)
 
 void ocpp_set_auth_req(uint8_t status, ...)
 {
-	va_list args;
-
 	if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
 	{
 		if(ShmOCPP16Data->SpMsg.bits.AuthorizeReq != status)
@@ -2841,6 +2839,8 @@ void checkTask()
 				DEBUG_WARN("OcppBackend watch dog timeout task restart.\n");
 				ShmOCPP16Data->procDogTime =  time((time_t*)NULL);
 				system("pkill OcppBackend");
+				sleep(3);
+				ocpp_process_start();
 			}
 
 			if(system("pidof -s OcppBackend > /dev/null") != 0)
@@ -3373,16 +3373,24 @@ int main(void)
 		//==========================================
 		ShmSysConfigAndInfo->SysInfo.OcppConnStatus = ocpp_get_connection_status();
 
-		//==========================================
-		// Check task processing
-		//==========================================
-		if(ShmSysConfigAndInfo->SysInfo.AcChargingData[0].SystemStatus != SYS_MODE_BOOTING)
-			checkTask();
-
-		//==========================================
-		// Check connection timeout specification
-		//==========================================
-		checkConnectionTimeout();
+		//==============================================
+		// Period check for 10 seconds
+		//==============================================
+		if(DiffTimebWithNow(startTime[0][TMR_IDX_CHECK_TASK]) > 10000)
+		{
+			//==============================================
+			// Check task processing
+			//==============================================
+			if(ShmSysConfigAndInfo->SysInfo.AcChargingData[0].SystemStatus != SYS_MODE_BOOTING)
+				checkTask();
+
+			//==============================================
+			// Check connection timeout specification
+			//==============================================
+			checkConnectionTimeout();
+
+			ftime(&startTime[0][TMR_IDX_CHECK_TASK]);
+		}
 
 		//==========================================
 		// Something need run in Idle mode
@@ -3792,7 +3800,7 @@ int main(void)
 							case START_METHOD_RFID:
 								if((ocpp_get_auth_conf()) ||
 								   (!ocpp_get_connection_status() && ((ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE) || (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_NOCHARGE))) ||
-								   (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST) && (strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppServerURL,"") == 0)))
+								   (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST) && (DiffTimebWithNow(startTime[gun_index][TMR_IDX_AUTH]) > 2000)))
 								{
 									DEBUG_INFO("ShmOCPP16Data->Authorize.ResponseIdTagInfo.Status: %s \n", ShmOCPP16Data->Authorize.ResponseIdTagInfo.Status);
 									if(ocpp_get_auth_result(gun_index) ||
@@ -4017,7 +4025,7 @@ int main(void)
 								{
 									if(ocpp_get_auth_conf() ||
 									  (ShmSysConfigAndInfo->SysConfig.AuthorisationMode == AUTH_MODE_DISABLE) ||
-									  (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST) && (strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppServerURL,"") == 0)) ||
+									  (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST) && (DiffTimebWithNow(startTime[gun_index][TMR_IDX_AUTH]) > 2000)) ||
 									  (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE)))
 									{
 										if(ocpp_get_auth_result(gun_index) ||
@@ -4383,7 +4391,7 @@ int main(void)
 								{
 									if(ocpp_get_auth_conf() ||
 									  (ShmSysConfigAndInfo->SysConfig.AuthorisationMode == AUTH_MODE_DISABLE) ||
-									  (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST) && (strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppServerURL,"") == 0)) ||
+									  (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST) && (DiffTimebWithNow(startTime[gun_index][TMR_IDX_AUTH]) > 2000)) ||
 									  (!ocpp_get_connection_status() && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE)))
 									{
 										if(ocpp_get_auth_result(gun_index) ||