Browse Source

[Improve][Modularization][Module_OcppBackend]

2021.08.25 / Folus Wen

Actions:
1. Data time in TTIA info change to UTC+8.

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 years ago
parent
commit
1b41c3839f
1 changed files with 38 additions and 13 deletions
  1. 38 13
      EVSE/Modularization/ocppfiles/MessageHandler.c

+ 38 - 13
EVSE/Modularization/ocppfiles/MessageHandler.c

@@ -573,23 +573,47 @@ int sendTTIAInfo(uint8_t gun_index)
 	// Start date time 6 bytes
 	if((sscanf((char*)ShmOCPP16Data->StartTransaction[gun_index].Timestamp, "%4d-%2d-%2dT%2d:%2d:%2d", &tmStart.tm_year, &tmStart.tm_mon, &tmStart.tm_mday, &tmStart.tm_hour, &tmStart.tm_min, &tmStart.tm_sec) == 6))
 	{
-		tx_buf[64] = (tmStart.tm_year-2000);
-		tx_buf[65] = tmStart.tm_mon;
-		tx_buf[66] = tmStart.tm_mday;
-		tx_buf[67] = tmStart.tm_hour;
-		tx_buf[68] = tmStart.tm_min;
-		tx_buf[69] = tmStart.tm_sec;
+		struct tm *tmTarget;
+		struct timeb tbTarget;
+
+		tmStart.tm_year -= 1900;
+		tmStart.tm_mon -= 1;
+		tmStart.tm_gmtoff = 0;
+		tbTarget.time = mktime(&tmStart);
+		tbTarget.timezone = 0;
+
+		tbTarget.time += (8*3600);
+		tmTarget = gmtime(&tbTarget.time);
+
+		tx_buf[64] = ((tmTarget->tm_year+1900)-2000);
+		tx_buf[65] = (tmTarget->tm_mon+1);
+		tx_buf[66] = tmTarget->tm_mday;
+		tx_buf[67] = tmTarget->tm_hour;
+		tx_buf[68] = tmTarget->tm_min;
+		tx_buf[69] = tmTarget->tm_sec;
 	}
 
 	// Stop date time 6 bytes
 	if((sscanf((char*)ShmOCPP16Data->StopTransaction[gun_index].Timestamp, "%4d-%2d-%2dT%2d:%2d:%2d", &tmEnd.tm_year, &tmEnd.tm_mon, &tmEnd.tm_mday, &tmEnd.tm_hour, &tmEnd.tm_min, &tmEnd.tm_sec) == 6))
 	{
-		tx_buf[70] = (tmEnd.tm_year-2000);
-		tx_buf[71] = tmEnd.tm_mon;
-		tx_buf[72] = tmEnd.tm_mday;
-		tx_buf[73] = tmEnd.tm_hour;
-		tx_buf[74] = tmEnd.tm_min;
-		tx_buf[75] = tmEnd.tm_sec;
+		struct tm *tmTarget;
+		struct timeb tbTarget;
+
+		tmEnd.tm_year -= 1900;
+		tmEnd.tm_mon -= 1;
+		tmEnd.tm_gmtoff = 0;
+		tbTarget.time = mktime(&tmEnd);
+		tbTarget.timezone = 0;
+
+		tbTarget.time += (8*3600);
+		tmTarget = gmtime(&tbTarget.time);
+
+		tx_buf[70] = ((tmTarget->tm_year+1900)-2000);
+		tx_buf[71] = (tmTarget->tm_mon+1);
+		tx_buf[72] = tmTarget->tm_mday;
+		tx_buf[73] = tmTarget->tm_hour;
+		tx_buf[74] = tmTarget->tm_min;
+		tx_buf[75] = tmTarget->tm_sec;
 	}
 
 	// Session energy 2 bytes
@@ -663,7 +687,8 @@ int sendTTIAInfo(uint8_t gun_index)
 				DEBUG_TTIA_INFO("Session end SOC: %d\n", socEnd);
 				DEBUG_TTIA_INFO("=========================================\n");
 				sn++;
-								result = PASS;
+
+				result = PASS;
 			}
 			else
 			{