Browse Source

[Improve][AX80 / Modularization][Module_LcmControl / Module_EventLog]

2022.02.23 / Folus Wen

Actions:
1. Module_LcmControl date time display consider time offset.
2. Module_EventLog skip display network relate status code.

Files:
1. As follow commit history

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

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 3 years ago
parent
commit
e04e69cfc9

+ 49 - 12
EVSE/Modularization/Module_EventLogging.c

@@ -630,17 +630,34 @@ int main(void)
 						memcpy(EventCodeTmp,FaultStatusCode[ByteCount*8+BitCount],sizeof(EventCodeTmp)-1);
 						memcpy(EventCodeDisp, EventCodeTmp, ARRAY_SIZE(EventCodeTmp));
 
-						if(((tmp>>BitCount)&0x01)==0)//Recovered
+						if((strstr((char*)EventCodeTmp, "11021") == NULL) &&
+						   (strstr((char*)EventCodeTmp, "11022") == NULL))
 						{
-							EventCodeTmp[0]='1';
-							ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount]&=~(1<<BitCount);
-							RemoveFaultCodeToBuf(EventCodeDisp);
+							if(((tmp>>BitCount)&0x01)==0)//Recovered
+							{
+								EventCodeTmp[0]='1';
+								ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount]&=~(1<<BitCount);
+								RemoveFaultCodeToBuf(EventCodeDisp);
+							}
+							else
+							{
+								ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount]|=(1<<BitCount);
+								AddFaultCodeToBuf(EventCodeDisp);
+							}
 						}
 						else
 						{
-							ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount]|=(1<<BitCount);
-							AddFaultCodeToBuf(EventCodeDisp);
+							if(((tmp>>BitCount)&0x01)==0)//Recovered
+							{
+								EventCodeTmp[0]='1';
+								ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount]&=~(1<<BitCount);
+							}
+							else
+							{
+								ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount]|=(1<<BitCount);
+							}
 						}
+
 						getConnectorStatus(connectorStatus);
 						EVENT_INFO("%s%s\n", EventCodeTmp, connectorStatus);
 						DB_Event_Insert_Record(localDb, EventCodeTmp);
@@ -696,17 +713,37 @@ int main(void)
 						memcpy(EventCodeTmp,InfoStatusCode[ByteCount*8+BitCount],sizeof(EventCodeTmp)-1);
 						memcpy(EventCodeDisp, EventCodeTmp, ARRAY_SIZE(EventCodeTmp));
 
-						if(((tmp>>BitCount)&0x01)==0)//Recovered
+						if((strstr((char*)EventCodeTmp, "13622") == NULL) &&
+						   (strstr((char*)EventCodeTmp, "13623") == NULL) &&
+						   (strstr((char*)EventCodeTmp, "13624") == NULL) &&
+						   (strstr((char*)EventCodeTmp, "13625") == NULL) &&
+						   (strstr((char*)EventCodeTmp, "13626") == NULL))
 						{
-							EventCodeTmp[0]='1';
-							ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount]&=~(1<<BitCount);
-							RemoveFaultCodeToBuf(EventCodeDisp);
+							if(((tmp>>BitCount)&0x01)==0)//Recovered
+							{
+								EventCodeTmp[0]='1';
+								ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount]&=~(1<<BitCount);
+								RemoveFaultCodeToBuf(EventCodeDisp);
+							}
+							else
+							{
+								ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount]|=(1<<BitCount);
+								AddFaultCodeToBuf(EventCodeDisp);
+							}
 						}
 						else
 						{
-							ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount]|=(1<<BitCount);
-							AddFaultCodeToBuf(EventCodeDisp);
+							if(((tmp>>BitCount)&0x01)==0)//Recovered
+							{
+								EventCodeTmp[0]='1';
+								ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount]&=~(1<<BitCount);
+							}
+							else
+							{
+								ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount]|=(1<<BitCount);
+							}
 						}
+
 						getConnectorStatus(connectorStatus);
 						EVENT_INFO("%s%s\n", EventCodeTmp, connectorStatus);
 						DB_Event_Insert_Record(localDb, EventCodeTmp);

+ 20 - 3
EVSE/Projects/AX80/Apps/LCM/Module_LcmControl.c

@@ -270,14 +270,31 @@ uint8_t split(char **arr, char *str, const char *del)
 
 void getDateTimeString(char* result)
 {
+	struct ParsingResult
+	{
+		int scanedElement;
+		int tz_hour;
+		int tz_min;
+	}timeOffset;
 	time_t CurrentTime;
-	struct tm *tm;
+	struct tm *tmOrg;
+	struct tm *tmTarget;
+	struct timeb tbTarget;
 
 	CurrentTime = time(NULL);
-	tm=localtime(&CurrentTime);
+	tmOrg=localtime(&CurrentTime);
+	tmOrg->tm_gmtoff = 0;
+	tbTarget.time = mktime(tmOrg);
+	tbTarget.timezone = 0;
+
+	if((timeOffset.scanedElement = sscanf((char*)ShmOCPP16Data->ConfigurationTable.CoreProfile[TimeOffset].ItemData, "%d:%d", &timeOffset.tz_hour, &timeOffset.tz_min)) == 2)
+	{
+		tbTarget.time += (timeOffset.tz_hour*3600) + (timeOffset.tz_min*60*(timeOffset.tz_hour>=0?1:-1));
+	}
 
+	tmTarget = gmtime(&tbTarget.time);
 	//sprintf(result, "%04d/%02d/%02d %02d:%02d", tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min);
-	sprintf(result, "%04d/%02d/%02d %02d:%02d %s", tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,(tm->tm_hour%12),tm->tm_min,((tm->tm_hour/12)>0?"p.m":"a.m"));
+	sprintf(result, "%04d/%02d/%02d %02d:%02d %s", tmTarget->tm_year+1900,tmTarget->tm_mon+1,tmTarget->tm_mday,(tmTarget->tm_hour%12),tmTarget->tm_min,((tmTarget->tm_hour/12)>0?"p.m":"a.m"));
 }
 
 //======================================================