瀏覽代碼

2022-11-01/Jerry Wang
[OCPP 1.6]
Action:
1. Modify TCCI occupancy fee DataTransfer logic and naming: ID_GetOccupancyFee --> ID_OccupancyFeeAct.

File:
1. EVSE/Modularization/ocppfiles/MessageHandler.c
--> Action 1
2. EVSE/Projects/define.h
--> Action 1

Jerry Wang 2 年之前
父節點
當前提交
8880d49cd2
共有 2 個文件被更改,包括 23 次插入18 次删除
  1. 16 15
      EVSE/Modularization/ocppfiles/MessageHandler.c
  2. 7 3
      EVSE/Projects/define.h

+ 16 - 15
EVSE/Modularization/ocppfiles/MessageHandler.c

@@ -1633,7 +1633,7 @@ void reportReaderStatus(int gun_index)
 	ShmOCPP16Data->CsMsg.bits[gun_index].DataTransferReq = 1;
 }
 
-void getOccupancyFee(int gun_index)
+void occupancyFeeAct(int gun_index)
 {
 	struct timeval tmnow;
 	struct tm *tm;
@@ -1656,10 +1656,11 @@ void getOccupancyFee(int gun_index)
 	json_object *dataBuf = json_object_new_object();
 
 	sprintf((char*)ShmOCPP16Data->DataTransfer[gun_index].VendorId, "%s", ShmSysConfigAndInfo->SysConfig.chargePointVendor);
-	sprintf((char*)ShmOCPP16Data->DataTransfer[gun_index].MessageId,"%s","ID_GetOccupancyFee");
+	sprintf((char*)ShmOCPP16Data->DataTransfer[gun_index].MessageId,"%s","ID_OccupancyFeeAct");
 
 	json_object_object_add(dataBuf, "ConnectorId", json_object_new_int((gun_index+1)));
-	json_object_object_add(dataBuf, "occupancySN", json_object_new_string((char*)ShmOCPP16Data->TcciCustomData.GetOccupancyFee[gun_index].occupancySN));
+	json_object_object_add(dataBuf, "occupancySN", json_object_new_string((char*)ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[gun_index].occupancySN));
+	json_object_object_add(dataBuf, "action", json_object_new_int(ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[gun_index].action));
 
 	sprintf((char*)ShmOCPP16Data->DataTransfer[gun_index].Data, "%s", json_object_to_json_string_ext(dataBuf, JSON_C_TO_STRING_PLAIN));
 	json_object_put(dataBuf);
@@ -6050,9 +6051,9 @@ void CheckSystemValue(void)
 			//ShmOCPP16Data->TcciCustomData.ReaderStatus[gun_index].ReportReaderStatusReq = 0;
 		}
 
-		if(isWebsocketSendable && (server_sign == TRUE) && (ShmOCPP16Data->TcciCustomData.GetOccupancyFee[gun_index].GetOccupancyFeeReq == 1))
+		if(isWebsocketSendable && (server_sign == TRUE) && (ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[gun_index].OccupancyFeeActReq == 1))
 		{
-			getOccupancyFee(gun_index);
+			occupancyFeeAct(gun_index);
 		}
 
 		//==============================================
@@ -17249,29 +17250,29 @@ void handleDataTransferResponse(char *payload, int gun_index)
 								ShmOCPP16Data->TcciCustomData.ReaderStatus[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].ReportReaderStatusReq = 0;
 						}
 
-						if(strstr(json_object_get_string(json_object_object_get(Data, "msgId")), "ID_GetOccupancyFee") != NULL)
+						if(strstr(json_object_get_string(json_object_object_get(Data, "msgId")), "ID_OccupancyFeeAct") != NULL)
 						{
 							if(json_object_object_get(Data, "ConnectorId") != NULL)
 							{
-								sprintf((char*)ShmOCPP16Data->TcciCustomData.GetOccupancyFee[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_status, "%s", json_object_get_string(json_object_object_get(DataTransfer, "status")));
+								sprintf((char*)ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_status, "%s", json_object_get_string(json_object_object_get(DataTransfer, "status")));
 								if(json_object_object_get(Data, "occupancySN") != NULL)
-									sprintf((char*)ShmOCPP16Data->TcciCustomData.GetOccupancyFee[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_occupancySN, "%s", json_object_get_string(json_object_object_get(Data, "occupancySN")));
+									sprintf((char*)ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_occupancySN, "%s", json_object_get_string(json_object_object_get(Data, "occupancySN")));
 								if(json_object_object_get(Data, "startTime") != NULL)
-									sprintf((char*)ShmOCPP16Data->TcciCustomData.GetOccupancyFee[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_startTime, "%s", json_object_get_string(json_object_object_get(Data, "startTime")));
+									sprintf((char*)ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_startTime, "%s", json_object_get_string(json_object_object_get(Data, "startTime")));
 								if(json_object_object_get(Data, "duration") != NULL)
-									ShmOCPP16Data->TcciCustomData.GetOccupancyFee[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_duration = json_object_get_int(json_object_object_get(Data, "duration"));
+									ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_duration = json_object_get_int(json_object_object_get(Data, "duration"));
 								if(json_object_object_get(Data, "occupancyFee") != NULL)
-									ShmOCPP16Data->TcciCustomData.GetOccupancyFee[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_occupancyFee = json_object_get_double(json_object_object_get(Data, "occupancyFee"));
-								ShmOCPP16Data->TcciCustomData.GetOccupancyFee[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].GetOccupancyFeeReq = 0;
+									ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].response_occupancyFee = json_object_get_double(json_object_object_get(Data, "occupancyFee"));
+								ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[json_object_get_int(json_object_object_get(Data, "ConnectorId"))-1].OccupancyFeeActReq = 0;
 							}
 							else
 							{
 								for(uint8_t idx=0;idx<gunTotalNumber;idx++)
 								{
-									if(ShmOCPP16Data->TcciCustomData.GetOccupancyFee[idx].GetOccupancyFeeReq)
+									if(ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[idx].OccupancyFeeActReq)
 									{
-										strcpy((char*)ShmOCPP16Data->TcciCustomData.GetOccupancyFee[idx].response_status, "Rejected");
-										ShmOCPP16Data->TcciCustomData.GetOccupancyFee[idx].GetOccupancyFeeReq = 0;
+										strcpy((char*)ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[idx].response_status, "Rejected");
+										ShmOCPP16Data->TcciCustomData.OccupancyFeeAct[idx].OccupancyFeeActReq = 0;
 									}
 								}
 							}

+ 7 - 3
EVSE/Projects/define.h

@@ -6029,9 +6029,10 @@ struct StructSetOccupancyPrice
     unsigned char SetOccupancyPriceReq:1;
 };
 
-struct StructGetOccupancyFee
+struct StructOccupancyFeeAct
 {
 	unsigned char occupancySN[64];
+	int action;
 
 	int   response_duration;
 	float response_occupancyFee;
@@ -6039,7 +6040,7 @@ struct StructGetOccupancyFee
     unsigned char response_occupancySN[37];
     unsigned char response_startTime[64];
 
-    unsigned char GetOccupancyFeeReq:1;
+    unsigned char OccupancyFeeActReq:1;
 };
 
 struct StructOccupancyDeductResult
@@ -6059,7 +6060,7 @@ struct StructTcciCustomData
     struct StructReaderStatus ReaderStatus[CONNECTOR_QUANTITY];
     struct StructOccupancyFeeDisplay OccupancyFeeDisplay[CONNECTOR_QUANTITY];
     struct StructSetOccupancyPrice SetOccupancyPrice;
-    struct StructGetOccupancyFee GetOccupancyFee[CONNECTOR_QUANTITY];
+    struct StructOccupancyFeeAct OccupancyFeeAct[CONNECTOR_QUANTITY];
     struct StructOccupancyDeductResult OccupancyDeductResult;
     unsigned char TriggerReaderReq[3];
     unsigned char SerialNo[CONNECTOR_QUANTITY][37];
@@ -6112,6 +6113,9 @@ struct OCPP16Data
     unsigned int                            Timeout_Secs;
     unsigned short                          Ping_Pong_Interval;
     long int                                procDogTime;            // Process watch dog refresh timer
+    unsigned int                            isBootNotificationDone;
+    unsigned char                           preOcppServerURL[512];
+
     union
     {
         //Operations Initiated by Charge Point