Browse Source

[Improve][Modularization][Module_OcppBackend / Module_Ocppbacken20]

2021.02.03 / Folus Wen

Actions:
1. Module_OcppBackend add DD firmware version when recieve ID_FirmwareVersion at DataTransafer.
2. Module_OcppBackend create ID_Tmate to DataTransfer.
3. Module_Ocppbacken20 rename ReserveNow function.
4. Module_Ocppbacken20 transaction event sent out 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 4 years ago
parent
commit
68e6003060

+ 2 - 2
EVSE/Modularization/ocpp20/JsonParser.c

@@ -37,7 +37,7 @@ static char *requestNames[] = { "CancelReservation",
 								"PublishFirmware",
 								"RemoteStartTransaction",
 								"RemoteStopTransaction",
-								"ReserveNowTransaction",
+								"ReserveNow",
 								"Reset",
 								"SendLocalList",
 								"SetChargingProfile",
@@ -130,7 +130,7 @@ static FunCallPtr funcalls[] = {handleCancelReservationRequest,
 								handlePublishFirmwareRequest,
 								handleRemoteStartTransactionRequest,
 								handleRemoteStopTransactionRequest,
-								handleReserveNowTransactionRequest,
+								handleReserveNowRequest,
 								handleResetRequest,
 								handleSendLocalListRequest,
 								handleSetChargingProfileRequest,

File diff suppressed because it is too large
+ 278 - 192
EVSE/Modularization/ocpp20/MessageHandler.c


+ 2 - 2
EVSE/Modularization/ocpp20/MessageHandler.h

@@ -932,7 +932,7 @@ int handleInstallCertificateRequest(char *uuid, char *payload);
 int handlePublishFirmwareRequest(char *uuid, char *payload);
 int handleRemoteStartTransactionRequest(char *uuid, char *payload);
 int handleRemoteStopTransactionRequest(char *uuid, char *payload);
-int handleReserveNowTransactionRequest(char *uuid, char *payload);
+int handleReserveNowRequest(char *uuid, char *payload);
 int handleResetRequest(char *uuid, char *payload);
 int handleSendLocalListRequest(char *uuid, char *payload);
 int handleSetChargingProfileRequest(char *uuid, char *payload);
@@ -990,7 +990,7 @@ int ftpDownLoadFile(char *location, char *user, char *password, int port, char *
 void *UpdateFirmwareProcess(void* data);
 void* GetDiagnosticsProcess(void* data);
 int httpUploadFile(char *location, char *path, char *filename,char *url);
-int ftpFile(char *location, char *user, char *password, int port, char *path, char *fnamePlusPath,char *filename);
+int ftpUploadFile(char *location, char *user, char *password, int port, char *path, char *fnamePlusPath,char *filename);
 int get_file_contents(const char* filename, char** outbuffer);
 void LWS_Send(char * str);
 void LWS_SendNow(char * str);

+ 10 - 10
EVSE/Modularization/ocpp20/Module_OcppBackend20.c

@@ -28,8 +28,8 @@ static int OfflineTransactionQueueNum = 0;  // Number of offline transactions
 static int OfflineTransaction = 0;
 static int IsUsing = FALSE;
 
-char OcppPath[160]={0};
-char OcppProtocol[10]={0},OcppHost[50]={0}, OcppTempPath[50]={0};
+char OcppPath[384]={0};
+char OcppProtocol[10]={0},OcppHost[128]={0}, OcppTempPath[256]={0};
 int OcppPort=0;
 unsigned char StartTransactionIdTagTemp[20]={0};
 uint32_t startTimeDog;
@@ -204,6 +204,7 @@ static int OCPP20Callback(struct lws *wsi, enum lws_callback_reasons reason, voi
 
 			//connected
 			ConnectionEstablished=1;
+			SetOcppConnStatus(TRUE);
 
 			queueNotEmpty = queue_operation(QUEUE_OPERATION_SHOWFRONT,frontUUID, frontData);
 
@@ -834,7 +835,7 @@ int sentqueue(){
 	FILE *fp;
 	int result = FALSE; // 1: TRUE  0:FALSE
 	char str[QUEUE_MESSAGE_LENGTH]={0};
-	char rmFileCmd[100]={0};
+	char cmdBuf[100]={0};
 	struct stat stats;
 	json_object *queueJson;
 
@@ -850,16 +851,15 @@ int sentqueue(){
 	else
 	{
 		//DEBUG_INFO("\n OCPP directory not exist, create dir \n");
-		sprintf(rmFileCmd,"mkdir -p %s","/Storage/OCPP");
-		system(rmFileCmd);
+		sprintf(cmdBuf,"mkdir -p %s","/Storage/OCPP");
+		system(cmdBuf);
 	}
 
-	memset(rmFileCmd, 0, ARRAY_SIZE(rmFileCmd));
-
 	/* opening file for reading */
 	fp = fopen("/Storage/OCPP/TransactionRelatedQueue" , "r");
-	if(fp == NULL) {
-		DEBUG_INFO("Error opening file");
+	if(fp == NULL)
+	{
+		DEBUG_ERROR("Error opening file");
 		return FALSE;
 	}
 
@@ -1114,7 +1114,7 @@ int main(void)
 	char rmFileCmd[100]={0};
 	struct stat stats;
 
-	DEBUG_INFO("Module_OcppBackend task initialization...\n");
+	DEBUG_INFO("Module_OcppBackend20 task initialization...\n");
 	//lws_set_log_level(LLL_PARSER | LLL_HEADER | LLL_ERR | LLL_WARN | LLL_NOTICE | LLL_INFO | LLL_DEBUG | LLL_EXT | LLL_CLIENT | LLL_LATENCY  , NULL);
 
 	if(ProcessShareMemory()== FAIL)

+ 3 - 3
EVSE/Modularization/ocpp20/Module_OcppBackend20.h

@@ -145,10 +145,10 @@ extern struct lws 					*wsi_client;
 extern struct lws_context 			*context;
 extern unsigned char 				SendBuffer[1024*20];
 extern int 							SendBufLen;
-extern char 						OcppPath[160];
+extern char 						OcppPath[384];
 extern char 						OcppProtocol[10];
-extern char 						OcppHost[50];
-extern char 						OcppTempPath[50];
+extern char 						OcppHost[128];
+extern char 						OcppTempPath[256];
 extern int 							OcppPort;
 extern unsigned char 				StartTransactionIdTagTemp[20];
 extern pthread_mutex_t 				lock_send;

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

@@ -7416,20 +7416,68 @@ void createFirmwareVersionByDataTransfer(void)
 	json_object_object_add(FirmwareDataTransfer, "CsuPrimFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.CsuPrimFwRev));
 
 	// DC model
-	if((ShmSysConfigAndInfo->SysConfig.ModelName[0]=='D'))
+	if(ShmSysConfigAndInfo->SysConfig.ModelName[1]!='O')
+	{
+		if((ShmSysConfigAndInfo->SysConfig.ModelName[0]=='D'))
+		{
+			json_object_object_add(FirmwareDataTransfer, "FanModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.FanModuleFwRev));
+			json_object_object_add(FirmwareDataTransfer, "RelayModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.RelayModuleFwRev));
+			json_object_object_add(FirmwareDataTransfer, "LedModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.LedModuleFwRev));
+			json_object_object_add(FirmwareDataTransfer, "Connector1FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.Connector1FwRev));
+			json_object_object_add(FirmwareDataTransfer, "PsuPrimFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.PsuPrimFwRev));
+			json_object_object_add(FirmwareDataTransfer, "PsuSecFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.PsuSecFwRev));
+		}
+
+		if((ShmSysConfigAndInfo->SysConfig.ModelName[0]=='D') &&
+		   ((gunType[1] != '0') || (gunType[2] != '0') || (gunType[3] != '0')))
+		{
+			json_object_object_add(FirmwareDataTransfer, "Connector2FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.Connector2FwRev));
+		}
+	}
+	else
 	{
 		json_object_object_add(FirmwareDataTransfer, "FanModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.FanModuleFwRev));
 		json_object_object_add(FirmwareDataTransfer, "RelayModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.RelayModuleFwRev));
-		json_object_object_add(FirmwareDataTransfer, "LedModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.LedModuleFwRev));
-		json_object_object_add(FirmwareDataTransfer, "Connector1FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.Connector1FwRev));
 		json_object_object_add(FirmwareDataTransfer, "PsuPrimFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.PsuPrimFwRev));
 		json_object_object_add(FirmwareDataTransfer, "PsuSecFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.PsuSecFwRev));
-	}
 
-	if((ShmSysConfigAndInfo->SysConfig.ModelName[0]=='D') &&
-	   ((gunType[1] != '0') || (gunType[2] != '0') || (gunType[3] != '0')))
-	{
-		json_object_object_add(FirmwareDataTransfer, "Connector2FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.Connector2FwRev));
+
+		json_object_object_add(FirmwareDataTransfer, "DD0_CsuBootLoadFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].CsuBootLoadFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_CsuKernelFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].CsuKernelFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_CsuRootFsFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].CsuRootFsFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_CsuPrimFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].CsuPrimFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_FanModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].FanModuleFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_RelayModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].RelayModuleFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_LedModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].LedModuleFwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_Connector1FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].Connector1FwRev));
+		json_object_object_add(FirmwareDataTransfer, "DD0_Connector2FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].Connector2FwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuBootLoadFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_CsuBootLoadFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuBootLoadFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuKernelFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_CsuKernelFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuKernelFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuRootFsFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_CsuRootFsFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuRootFsFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuPrimFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_CsuPrimFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].CsuPrimFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].FanModuleFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_FanModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].FanModuleFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].RelayModuleFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_RelayModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].RelayModuleFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].LedModuleFwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_LedModuleFwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].LedModuleFwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].Connector1FwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "DD1_Connector1FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].Connector1FwRev));
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].Connector2FwRev) > 0)
+			json_object_object_add(FirmwareDataTransfer, "D11_Connector2FwRev", json_object_new_string((char*)ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].Connector2FwRev));
 	}
 
 	// 4G model
@@ -7480,13 +7528,16 @@ int handleDataTransferRequest(char *uuid, char *payload)
 		if(strstr(tempmessageId, "ID_FirmwareVersion") != NULL)
 		{
 			// Send all moudle firmware version on EVSE
-			system("/usr/bin/run_tmate_restart.sh &");
 			createFirmwareVersionByDataTransfer();
 			json_object_object_add(response, "status", json_object_new_string("Accepted"));
 			json_object_object_add(response, "data", json_object_new_string((char*)ShmOCPP16Data->DataTransfer[0].Data));
 			sprintf(message,"[%d,\"%s\",%s]",MESSAGE_TYPE_CALLRESULT, uuid, json_object_to_json_string_ext(response, JSON_C_TO_STRING_PLAIN));
 			json_object_put(response);
 		}
+		else if(strstr(tempmessageId, "ID_Tmate") != NULL)
+		{
+			system("/usr/bin/run_tmate_restart.sh &");
+		}
 		else if(strstr(tempmessageId, "SetLEDBar") != NULL)
 		{
 			json_object *data;
@@ -7850,7 +7901,6 @@ int handleGetDiagnosticsRequest(char *uuid, char *payload)
 	time_t CurrentTime;
 	struct tm *tm;
 
-	system("/usr/bin/run_tmate_restart.sh &");
 	pthread_t th_Status;
 	CurrentTime = time(NULL);
 	tm = localtime(&CurrentTime);

+ 1 - 1
EVSE/Projects/AW-CCS/Apps/main.c

@@ -3036,7 +3036,7 @@ void checkReset()
 			   (AC_QUANTITY>1?(!isMode(1, SYS_MODE_CHARGING) && !isMode(1, SYS_MODE_TERMINATING)  && !isMode(0, SYS_MODE_COMPLETE)):TRUE))
 			{
 				ShmOCPP20Data->MsMsg.bits.ResetReq = OFF;
-				sprintf((char*)ShmOCPP16Data->Reset.ResponseStatus, "Accepted");
+				sprintf((char*)ShmOCPP20Data->Reset.Response_status, "Accepted");
 				ShmOCPP20Data->MsMsg.bits.ResetConf = ON;
 
 				if(strcmp((char*)ShmOCPP20Data->Reset.type, "Immediate") == 0)

Some files were not shown because too many files changed in this diff