Jelajahi Sumber

[Improve][Modularization][Module_OcppBackend / Module_OcppBackend20]

2021.05.07 / Folus Wen

Actions:
1. UpdateFirmware implement retrieve date logic.

Files:
1. As follow commit history

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

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 3 tahun lalu
induk
melakukan
95cc48cb89

+ 11 - 1
EVSE/Modularization/ocpp20/MessageHandler.c

@@ -15495,10 +15495,20 @@ void *UpdateFirmwareProcess(void *data)
 	}
 	json_object_put(UpdateFirmware);
 
-
 	memset(ftppath, 0, ARRAY_SIZE(ftppath));
 	memset(path, 0, ARRAY_SIZE(path));
 
+	// Wait retrieveData
+	if(strlen(retrieveDatestr) > 10)
+	{
+		sprintf((char*)ShmOCPP20Data->FirmwareStatusNotification.status, "%s", FirmwareStatusEnumTypeStr[FirmwareStatusEnumType_DownloadScheduled]);
+		ShmOCPP20Data->SpMsg.bits.FirmwareStatusNotificationReq = ON;
+		do
+		{
+			sleep(1);
+		}while(!isOvertNow((uint8_t*)retrieveDatestr));
+	}
+
 	system("rm -f /mnt/*");
 	if(strncmp(locationstr,"http", 4) == 0)
 	{

+ 1 - 0
EVSE/Modularization/ocpp20/Module_OcppBackend20.c

@@ -329,6 +329,7 @@ static int OCPP20Callback(struct lws *wsi, enum lws_callback_reasons reason, voi
 			break;
 		case LWS_CALLBACK_CLIENT_RECEIVE_PONG:
 			DEBUG_INFO("LWS_CALLBACK_CLIENT_RECEIVE_PONG\n");
+			DEBUG_OCPPMESSAGE_INFO("<==== Get PONG packet.\n");
 			break;
 		case LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION:
 			DEBUG_INFO("LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION\n");

+ 10 - 2
EVSE/Modularization/ocppfiles/MessageHandler.c

@@ -11756,7 +11756,6 @@ void *UpdateFirmwareProcess(void *data)
 	char temp[100];
 	char * pch;
 
-
 	DEBUG_INFO("handleUpdateFirmwareRequest ...\n");
 	json_object *UpdateFirmware;
 	UpdateFirmware = json_tokener_parse(UpdateFirmwarepayloadData);
@@ -11782,10 +11781,19 @@ void *UpdateFirmwareProcess(void *data)
 	}
 	json_object_put(UpdateFirmware);
 
-
 	memset(ftppath, 0, ARRAY_SIZE(ftppath));
 	memset(path, 0, ARRAY_SIZE(path));
 
+	// Wait retrieveData
+	if(strlen(retrieveDatestr) > 10)
+	{
+		do
+		{
+			sleep(1);
+		}while(!isOvertNow((uint8_t*)retrieveDatestr));
+	}
+
+	// Ready to download
 	system("rm -f /mnt/*");
 	if(strncmp(locationstr,"http", 4) == 0)
 	{

+ 1 - 0
EVSE/Modularization/ocppfiles/Module_OcppBackend.c

@@ -374,6 +374,7 @@ static int OCPP16Callback(struct lws *wsi, enum lws_callback_reasons reason, voi
 			break;
 		case LWS_CALLBACK_CLIENT_RECEIVE_PONG:
 			DEBUG_INFO("LWS_CALLBACK_CLIENT_RECEIVE_PONG\n");
+			DEBUG_OCPPMESSAGE_INFO("<===== Get PONG packet.\n");
 			break;
 		case LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION:
 			DEBUG_INFO("LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION\n");