Browse Source

2021-08-09 / Wendell

Actions
1. add 4g/wifi rest condition to reduce disconnection time
2. add check Module_InternalComm process
3. add common.c and move log function into it

Files
1. As follow commit history

Image version : V1.01.XX.XXXX.XX
Wendell 3 years ago
parent
commit
d96e970c14

+ 66 - 0
EVSE/Projects/DO360/Apps/Common.c

@@ -0,0 +1,66 @@
+/*
+ * Common.c
+ *
+ *  Created on: 202187
+ *      Author: Wendell
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <time.h>
+#include <sys/timeb.h>
+
+int StoreSysLogMsg(const char *fmt, ...)
+{
+    char Buf[4096+256];
+    char buffer[4096];
+    va_list args;
+    struct timeb  SeqEndTime;
+    struct tm *tm;
+
+    va_start(args, fmt);
+    int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
+    va_end(args);
+
+    memset(Buf,0,sizeof(Buf));
+    ftime(&SeqEndTime);
+    SeqEndTime.time = time(NULL);
+    tm=localtime(&SeqEndTime.time);
+
+    sprintf(Buf,"echo \'%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\' >> /Storage/SystemLog/[%04d.%02d]SystemLog",
+        tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
+        buffer,
+        tm->tm_year+1900,tm->tm_mon+1);
+    system(Buf);
+
+    return rc;
+}
+
+int StorePsuLogMsg(const char *fmt, ...)
+{
+    char Buf[4096+256];
+    char buffer[4096];
+    va_list args;
+    struct timeb  SeqEndTime;
+    struct tm *tm;
+
+    va_start(args, fmt);
+    int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
+    va_end(args);
+
+    memset(Buf,0,sizeof(Buf));
+    ftime(&SeqEndTime);
+    SeqEndTime.time = time(NULL);
+    tm=localtime(&SeqEndTime.time);
+
+    sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]PsuLog",
+        tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
+        buffer,
+        tm->tm_year+1900,tm->tm_mon+1);
+    system(Buf);
+
+    return rc;
+}
+

+ 20 - 0
EVSE/Projects/DO360/Apps/Common.h

@@ -0,0 +1,20 @@
+/*
+ * Common.h
+ *
+ *  Created on: 2021年8月7日
+ *      Author: Wendell
+ */
+
+#ifndef COMMON_H_
+#define COMMON_H_
+
+#define LOG_INFO(format, args...) StoreSysLogMsg("[%s:%4d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), __LINE__, __FUNCTION__, ##args)
+#define LOG_WARN(format, args...) StoreSysLogMsg("[%s:%4d][%s][Warn] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), __LINE__, __FUNCTION__, ##args)
+#define LOG_ERROR(format, args...) StoreSysLogMsg("[%s:%4d][%s][Erro] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), __LINE__, __FUNCTION__, ##args)
+#define LOG_DBG(format, args...) StoreSysLogMsg("[%s:%4d][%s][Debg] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), __LINE__, __FUNCTION__, ##args)
+#define PSU_LOG(format, args...) StorePsuLogMsg("[%s:%4d][%s][Info] "format, (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), __LINE__, __FUNCTION__, ##args)
+
+int StoreSysLogMsg(const char *fmt, ...);
+int StorePsuLogMsg(const char *fmt, ...);
+
+#endif /* COMMON_H_ */

+ 2 - 1
EVSE/Projects/DO360/Apps/Config.h

@@ -314,7 +314,8 @@ typedef union
         unsigned int StandardLedIndication:1;       // 0: no led indication,        1: enable standard led indication
         unsigned int E4YOULedIndication:1;          // 0: no led indication,        1: enable e4you led indication
         unsigned int BackendEnable:1;               // 0: backend disable,          1: backend enable
-        unsigned int res:21;
+        unsigned int Wifi4gResetEnable:1;           // 0: wifi/4g reset io disable, 1: wifi/4g reset io enable
+        unsigned int res:20;
     }bits;
 }SystemControl;
 

+ 13 - 10
EVSE/Projects/DO360/Apps/Makefile

@@ -13,34 +13,37 @@ Lib_SQLite3 = "-L../../../Modularization/ocppfiles" -lsqlite3
 all: CopyFile apps Clean
 #apps: Module_CSU Module_EvComm Module_EventLogging Module_InternalComm Module_LcmControl Module_PrimaryComm Module_PsuComm 
 # ReadCmdline kill.sh
-apps: MainTask EvCommTask EventLoggingTask InternalCommTask LcmControlTask PrimaryCommTask InfyGroup_PsuCommObj PsuCommTask ReadCmdlineTask UnsafetyOutputTool FactoryConfigApp OtherTools
+apps: Common MainTask EvCommTask EventLoggingTask InternalCommTask LcmControlTask PrimaryCommTask InfyGroup_PsuCommObj PsuCommTask ReadCmdlineTask UnsafetyOutputTool FactoryConfigApp OtherTools
+
+Common:
+	rm -f Common.o
+	$(CC) -D $(Project) -includeCommon.h -O0 -g3 -Wall -c -fmessage-length=0 -o Common.o Common.c
 
 MainTask:
-	rm -f *.o
 	rm -f main;
 	$(CC) -D $(Project) -include../../../Modularization/ocppfiles/sqlite3.h -include../../../Modularization/Module_Upgrade.h -include../../../Modularization/Module_RFID.h -O0 -g3 -Wall -c -fmessage-length=0 -o main.o main.c
 	$(CC) -D $(Project) -include../../../Modularization/ocppfiles/sqlite3.h -include../../../Modularization/Module_Upgrade.h -include../../../Modularization/Module_RFID.h -O0 -g3 -Wall -c -fmessage-length=0 -o timeout.o timeout.c
-	$(CC) -o main main.o timeout.o ${Lib_Module_RFID} ${Lib_Module_Upgrade} ${Lib_SQLite3}	
+	$(CC) -o main main.o timeout.o Common.o ${Lib_Module_RFID} ${Lib_Module_Upgrade} ${Lib_SQLite3}	
 	cp -f main ../Images/root
 
 EvCommTask:
 	rm -f Module_EvComm;
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o Ev_Comm.o Ev_Comm.c
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o Module_EvComm.o Module_EvComm.c
-	$(CC) -o Module_EvComm Ev_Comm.o Module_EvComm.o
+	$(CC) -o Module_EvComm Ev_Comm.o Module_EvComm.o Common.o
 	cp -f Module_EvComm ../Images/root	
 	
 EventLoggingTask:
 	rm -f Module_EventLogging;
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o Module_EventLogging.o Module_EventLogging.c
-	$(CC) -o Module_EventLogging Module_EventLogging.o 	
+	$(CC) -o Module_EventLogging Module_EventLogging.o Common.o
 	cp -f Module_EventLogging ../Images/root	
 	
 InternalCommTask:
 	rm -f Module_InternalComm; 
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o internalComm.o internalComm.c
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o Module_InternalComm.o Module_InternalComm.c
-	$(CC) -o Module_InternalComm Module_InternalComm.o internalComm.o 	
+	$(CC) -o Module_InternalComm Module_InternalComm.o internalComm.o Common.o
 	cp -f Module_InternalComm ../Images/root
 	
 LcmControlTask:
@@ -53,7 +56,7 @@ PrimaryCommTask:
 	rm -f Module_PrimaryComm; 
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o Module_PrimaryComm.o Module_PrimaryComm.c
 	$(CC) -D $(Project) -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o PrimaryComm.o PrimaryComm.c
-	$(CC) -o Module_PrimaryComm Module_PrimaryComm.o PrimaryComm.o
+	$(CC) -o Module_PrimaryComm Module_PrimaryComm.o PrimaryComm.o Common.o
 	cp -f Module_PrimaryComm ../Images/root	
 
 InfyGroup_PsuCommObj:
@@ -65,7 +68,7 @@ InfyGroup_PsuCommObj:
 PsuCommTask:
 	rm -f Module_PsuComm; 
 	$(CC) -D $(Project) -includeInfyGroup_PsuCommObj.h -includeConfig.h -O0 -g3 -Wall -c -fmessage-length=0 -o Module_PsuComm.o Module_PsuComm.c
-	$(CC) -o Module_PsuComm Module_PsuComm.o libInfyGroup_PsuCommObj.a
+	$(CC) -o Module_PsuComm Module_PsuComm.o libInfyGroup_PsuCommObj.a Common.o
 	cp -f Module_PsuComm ../Images/root	
 	
 ReadCmdlineTask:
@@ -83,13 +86,13 @@ UnsafetyOutputTool:
 FactoryConfigApp:
 	@echo "===== Module_FactoryConfig_Task =================================="
 	rm -f FactoryConfig
-	gcc -D $(Project) "-I../../" -o FactoryConfig "./FactoryConfig.c"
+	gcc -D $(Project) "-I../../" -o FactoryConfig "./FactoryConfig.c" 
 	mkdir -p /Storage/SystemLog	
 	./FactoryConfig -f;true
 	cp /mnt/FactoryDefaultConfig.bin ../Images
 	rm -f FactoryConfig; 
 	$(CC) -D $(Project) -O0 -g3 -Wall -c -fmessage-length=0 -o FactoryConfig.o FactoryConfig.c 
-	$(CC) -o FactoryConfig FactoryConfig.o 
+	$(CC) -o FactoryConfig FactoryConfig.o
 	cp -f FactoryConfig ../Images/root
 
 OtherTools:

+ 107 - 161
EVSE/Projects/DO360/Apps/Module_EvComm.c

@@ -40,6 +40,7 @@
 #include	"../../define.h"
 #include 	"Module_EvComm.h"
 #include	"Config.h"
+#include    "Common.h"
 
 #define ARRAY_SIZE(A)				(sizeof(A) / sizeof(A[0]))
 #define PASS						1
@@ -55,61 +56,6 @@ struct SysConfigAndInfo				*ShmSysConfigAndInfo;
 ChargerInfoData                     *ShmChargerInfo;
 struct ChargingInfoData             *chargingInfo[CONNECTOR_QUANTITY];
 
-//struct WARNING_CODE_INFO            LastWarningInfo[GENERAL_GUN_QUANTITY];
-
-void PRINTF_FUNC(char *string, ...);
-
-int StoreLogMsg(const char *fmt, ...);
-#define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-
-int StoreLogMsg(const char *fmt, ...)
-{
-	char Buf[4096+256];
-	char buffer[4096];
-	va_list args;
-	struct timeb  SeqEndTime;
-	struct tm *tm;
-
-	va_start(args, fmt);
-	int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
-	va_end(args);
-
-	memset(Buf,0,sizeof(Buf));
-	ftime(&SeqEndTime);
-	SeqEndTime.time = time(NULL);
-	tm=localtime(&SeqEndTime.time);
-
-	if (ShmSysConfigAndInfo->SysConfig.SwitchDebugFlag == YES)
-	{
-		sprintf(Buf,"%02d:%02d:%02d:%03d - %s",
-			tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm, buffer);
-		printf("%s \n", Buf);
-	}
-	else
-	{
-		sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
-			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
-			buffer,
-			tm->tm_year+1900,tm->tm_mon+1);
-		system(Buf);
-	}
-
-	return rc;
-}
-
-void PRINTF_FUNC(char *string, ...)
-{
-	va_list args;
-	char buffer[4096];
-	va_start(args, string);
-	vsnprintf(buffer, sizeof(buffer), string, args);
-	va_end(args);
-
-	DEBUG_INFO("%s \n", buffer);
-}
-
 void ShowSocketData(struct PACKET_STRUCTURE *packet)
 {
 	printf("se: %02X, id: %02X, op: %d, len: %3d, reg: %02X",
@@ -138,14 +84,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo), IPC_CREAT | 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmSysConfigAndInfo NG\n");
+		LOG_ERROR("shmget ShmSysConfigAndInfo NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmSysConfigAndInfo NG\n");
+		LOG_ERROR("shmat ShmSysConfigAndInfo NG");
 		#endif
 		result = FAIL;
 	 }
@@ -157,14 +103,14 @@ int InitShareMemory()
     if ((MeterSMId = shmget(SM_ChargerInfoKey, sizeof(ChargerInfoData), 0777)) < 0)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG \n");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
     else if ((ShmChargerInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG \n");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
@@ -346,7 +292,7 @@ int DispenserModelNameCheckIn(int socket, unsigned char se)
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Dispenser_Model_Name && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Write Model Name OK");
+						LOG_INFO("Write Model Name OK");
 						result = PASS;
 						break;
 					}
@@ -386,7 +332,7 @@ int DispenserConnectorRequest(int socket, unsigned char se)
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Connector_ID && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Get Connector ID: %02X, %02X", receiveBuffer.Payload.data[1], receiveBuffer.Payload.data[2]);
+						LOG_INFO("Get Connector ID: %02X, %02X", receiveBuffer.Payload.data[1], receiveBuffer.Payload.data[2]);
 						result = PASS;
 						break;
 					}
@@ -424,7 +370,7 @@ int DispenserReadPowerCabinetStatus(int socket, unsigned char connector, unsigne
 
 				if(receiveBuffer.Payload.reg == _Reg_Power_Cabinet_Status && receiveBuffer.Payload.data[0] == _R_OK)
 				{
-					PRINTF_FUNC("Get Cabinet Status Code, Len: %d", (receiveBuffer.Header.len - 2) / 6);
+					LOG_INFO("Get Cabinet Status Code, Len: %d", (receiveBuffer.Header.len - 2) / 6);
 					result = PASS;
 				}
 			}
@@ -462,7 +408,7 @@ int DispenserWriteStatusCode(int socket, unsigned char connector, unsigned char
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Dispenser_Status && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Write Dispenser Status Code OK");
+						LOG_INFO("Write Dispenser Status Code OK");
 						result = PASS;
 					}
 				}
@@ -506,7 +452,7 @@ int DispenserReadChargingCapability(int socket, unsigned char connector, unsigne
 						current = (receiveBuffer.Payload.data[3] << 8) + receiveBuffer.Payload.data[4];
 						power = (receiveBuffer.Payload.data[5] << 8) + receiveBuffer.Payload.data[6];
 
-						PRINTF_FUNC("Capability Voltage: %d.%dV, Current: %d.%dA, Power: %d.%dkW",
+						LOG_INFO("Capability Voltage: %d.%dV, Current: %d.%dA, Power: %d.%dkW",
 							voltage / 10, voltage % 10, current / 10, current % 10, power / 10, power % 10);
 						result = PASS;
 					}
@@ -546,7 +492,7 @@ int DispenserWriteChargingTarget(int socket, unsigned char connector, unsigned c
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Charging_Target && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Write Charging Target OK");
+						LOG_INFO("Write Charging Target OK");
 						result = PASS;
 					}
 				}
@@ -585,7 +531,7 @@ int DispenserWritePlugInStatus(int socket, unsigned char connector, unsigned cha
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Plug_In_Status && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Write Plug In Status OK");
+						LOG_INFO("Write Plug In Status OK");
 						result = PASS;
 					}
 				}
@@ -624,7 +570,7 @@ int DispenserWriteConnectorState(int socket, unsigned char connector, unsigned c
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Connector_State && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Write Connector State OK");
+						LOG_INFO("Write Connector State OK");
 						result = PASS;
 					}
 				}
@@ -663,7 +609,7 @@ int DispenserWriteUserID(int socket, unsigned char connector, unsigned char se)
 				{
 					if(receiveBuffer.Payload.reg == _Reg_User_ID && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Write User ID OK");
+						LOG_INFO("Write User ID OK");
 						result = PASS;
 					}
 				}
@@ -702,7 +648,7 @@ int DispenserReadChargingPermission(int socket, unsigned char connector, unsigne
 				{
 					if(receiveBuffer.Payload.reg == _Reg_Charging_Permission && receiveBuffer.Payload.data[0] == _R_OK)
 					{
-						PRINTF_FUNC("Charging Permission: %s", receiveBuffer.Payload.data[1] == _PS_Permitted ? "Permitted" : "Not Permitted");
+						LOG_INFO("Charging Permission: %s", receiveBuffer.Payload.data[1] == _PS_Permitted ? "Permitted" : "Not Permitted");
 						result = PASS;
 					}
 				}
@@ -745,18 +691,18 @@ void tcpSocketClientStart(void)
 		sockfd = socket(AF_INET, SOCK_STREAM, 0);
 		if (sockfd == -1)
 		{
-			PRINTF_FUNC("Fail to create a socket.");
+			LOG_INFO("Fail to create a socket.");
 			return;
 		}
-		PRINTF_FUNC("TCP Client Start");
+		LOG_INFO("TCP Client Start");
 
 		if(connect(sockfd, (struct sockaddr *)&info, sizeof(info)) == -1)
 		{
-			PRINTF_FUNC("Connection error");
+			LOG_INFO("Connection error");
 		}
 		else
 		{
-			PRINTF_FUNC("Connect to %s success", inet_ntoa(info.sin_addr));
+			LOG_INFO("Connect to %s success", inet_ntoa(info.sin_addr));
 			tv.tv_sec = 0;
 			tv.tv_usec = 500000;
 			setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof tv);
@@ -974,7 +920,7 @@ void PowerCabinetStatusResponse(int socket, struct PACKET_STRUCTURE *packet, uns
             sprintf(temp, " %02X", CabinetStatusToDispenser[sendBuffer.Header.id].Payload.data[1 + i]);
             strcat(str, temp);
         }
-        PRINTF_FUNC("%s", str);
+        LOG_INFO("%s", str);
     }
 
 	SendPacket(socket, &sendBuffer);
@@ -1048,7 +994,7 @@ void ChargingCapabilityResponse(int socket, struct PACKET_STRUCTURE *packet)
         (ConnectorCapability[packet->Header.id - 1].MaxOuputCurrent / 10) != (current / 10) ||
         (ConnectorCapability[packet->Header.id - 1].MaxOuputPower / 10) != (power / 10))
 	{
-        PRINTF_FUNC("Connector %d Capability Voltage: %4d.%d V, Current: %3d.%d A, Power: %d kW", packet->Header.id,
+        LOG_INFO("Connector %d Capability Voltage: %4d.%d V, Current: %3d.%d A, Power: %d kW", packet->Header.id,
             (voltage / 10), (voltage % 10), (current / 10), (current % 10), (power / 10));
 	}
 
@@ -1057,7 +1003,7 @@ void ChargingCapabilityResponse(int socket, struct PACKET_STRUCTURE *packet)
         ConnectorCapability[packet->Header.id - 1].TotalCost != cost ||
         ConnectorCapability[packet->Header.id - 1].AccountBalance != account)
 	{
-	    PRINTF_FUNC("Connector %d Currency: %d, UserPrice: %d, Cost: %d, Account: %d", packet->Header.id, (int)(currency), (int)(price), (int)(cost), (int)(account));
+	    LOG_INFO("Connector %d Currency: %d, UserPrice: %d, Cost: %d, Account: %d", packet->Header.id, (int)(currency), (int)(price), (int)(cost), (int)(account));
 	}
 
 	ConnectorCapability[packet->Header.id - 1].MaxOuputVoltage = voltage;
@@ -1230,7 +1176,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
             misc.Command = _MiscCmd_ChangeOperative;
             misc.Value = ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.IsAvailable;
 
-            PRINTF_FUNC("Announce Connector %d Availability: %d", packet->Header.id, misc.Value);
+            LOG_INFO("Announce Connector %d Availability: %d", packet->Header.id, misc.Value);
             AddMiscCommand(&sendBuffer, &misc);
         }
 
@@ -1241,7 +1187,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
             misc.Command = _MiscCmd_RemoteStart;
             misc.Value = true;
 
-            PRINTF_FUNC("Announce Connector %d Remote Start: %d", packet->Header.id, misc.Value);
+            LOG_INFO("Announce Connector %d Remote Start: %d", packet->Header.id, misc.Value);
             AddMiscCommand(&sendBuffer, &misc);
         }
 
@@ -1252,7 +1198,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
 //            misc.Command = _MiscCmd_RemoteStop;
 //            misc.Value = true;
 
-//            PRINTF_FUNC("Announce Connector %d Remote Stop: %d", packet->Header.id, misc.Value);
+//            LOG_INFO("Announce Connector %d Remote Stop: %d", packet->Header.id, misc.Value);
 //            AddMiscCommand(&sendBuffer, &misc);
 //        }
 
@@ -1263,7 +1209,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
 //            misc.Command = _MiscCmd_UnlockStop;
 //            misc.Value = true;
 
-//            PRINTF_FUNC("Announce Connector %d Unlock Stop: %d", packet->Header.id, misc.Value);
+//            LOG_INFO("Announce Connector %d Unlock Stop: %d", packet->Header.id, misc.Value);
 //            AddMiscCommand(&sendBuffer, &misc);
 //        }
 
@@ -1273,7 +1219,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
             misc.Command = _MiscCmd_AccountBalance;
             misc.Value = ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].AccountBalance;
 
-            PRINTF_FUNC("Announce Connector %d Account Balance: %d", packet->Header.id, (misc.Value));
+            LOG_INFO("Announce Connector %d Account Balance: %d", packet->Header.id, (misc.Value));
             AddMiscCommand(&sendBuffer, &misc);
         }
 
@@ -1286,7 +1232,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_ConnectorTimeout;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectorTimeout;
 
-                PRINTF_FUNC("Announce Dispenser %d Connection Timeout: %d", dispenserIndex + 1, misc.Value);
+                LOG_INFO("Announce Dispenser %d Connection Timeout: %d", dispenserIndex + 1, misc.Value);
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1296,7 +1242,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_DefaultPrice;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.DispenserInfo.DefaultPrice;
 
-                PRINTF_FUNC("Announce Dispenser %d Default Price: %d", dispenserIndex + 1, misc.Value);
+                LOG_INFO("Announce Dispenser %d Default Price: %d", dispenserIndex + 1, misc.Value);
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1306,7 +1252,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_Currency;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.DispenserInfo.Currency;
 
-                PRINTF_FUNC("Announce Dispenser %d Currency Index: %d", dispenserIndex + 1, misc.Value);
+                LOG_INFO("Announce Dispenser %d Currency Index: %d", dispenserIndex + 1, misc.Value);
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1316,7 +1262,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_BackendStatus;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.CabinetMicsStatus.BackendStatus;
 
-                PRINTF_FUNC("Announce Dispenser %d BackendStatus: %d", dispenserIndex + 1, (misc.Value));
+                LOG_INFO("Announce Dispenser %d BackendStatus: %d", dispenserIndex + 1, (misc.Value));
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1326,7 +1272,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_EthernetStatus;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.CabinetMicsStatus.EthernetStatus;
 
-                PRINTF_FUNC("Announce Dispenser %d EthernetStatus: %d", dispenserIndex + 1, (misc.Value));
+                LOG_INFO("Announce Dispenser %d EthernetStatus: %d", dispenserIndex + 1, (misc.Value));
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1336,7 +1282,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_WiFiStatus;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.CabinetMicsStatus.WiFiStatus;
 
-                PRINTF_FUNC("Announce Dispenser %d WiFiStatus: %d", dispenserIndex + 1, (misc.Value));
+                LOG_INFO("Announce Dispenser %d WiFiStatus: %d", dispenserIndex + 1, (misc.Value));
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1346,7 +1292,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_4GStatus;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.CabinetMicsStatus.TelcomModemStatus;
 
-                PRINTF_FUNC("Announce Dispenser %d TelcomModemStatus: %d", dispenserIndex + 1, (misc.Value));
+                LOG_INFO("Announce Dispenser %d TelcomModemStatus: %d", dispenserIndex + 1, (misc.Value));
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1356,7 +1302,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_Billing;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.CabinetMicsStatus.BillingStatus;
 
-                PRINTF_FUNC("Announce Dispenser %d %s Billing Information", dispenserIndex + 1, misc.Value ? "Enable" : "Disable");
+                LOG_INFO("Announce Dispenser %d %s Billing Information", dispenserIndex + 1, misc.Value ? "Enable" : "Disable");
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1366,7 +1312,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_StopButton;
                 misc.Value = ShmSysConfigAndInfo->SysInfo.CabinetMicsStatus.StopChargingButton;
 
-                PRINTF_FUNC("Announce Dispenser %d %s Stop Charging Button", dispenserIndex + 1, misc.Value ? "Enable" : "Disable");
+                LOG_INFO("Announce Dispenser %d %s Stop Charging Button", dispenserIndex + 1, misc.Value ? "Enable" : "Disable");
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1377,7 +1323,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_HardwareReboot;
                 misc.Value = true;
 
-                PRINTF_FUNC("Announce Dispenser %d Hardware Reboot: %d", dispenserIndex + 1, misc.Value);
+                LOG_INFO("Announce Dispenser %d Hardware Reboot: %d", dispenserIndex + 1, misc.Value);
                 AddMiscCommand(&sendBuffer, &misc);
             }
 
@@ -1388,7 +1334,7 @@ void MiscControlResponse(int socket, struct PACKET_STRUCTURE *packet, unsigned c
                 misc.Command = _MiscCmd_SoftwareRestart;
                 misc.Value = true;
 
-                PRINTF_FUNC("Announce Dispenser %d Software Reset: %d", dispenserIndex + 1, misc.Value);
+                LOG_INFO("Announce Dispenser %d Software Reset: %d", dispenserIndex + 1, misc.Value);
                 AddMiscCommand(&sendBuffer, &misc);
             }
         }
@@ -1515,7 +1461,7 @@ void ChargerSystemIdResponse(int socket, struct PACKET_STRUCTURE *packet, unsign
         strLen = strlen(TimeSync);
         memcpy(&sendBuffer.Payload.data[sendBuffer.Header.len - 1], TimeSync, strLen);
         sendBuffer.Header.len += strLen + 1;
-        //PRINTF_FUNC("Dispenser %d Read System Id: %s", dispenserIndex + 1, ShmSysConfigAndInfo->SysConfig.ChargeBoxId);
+        //LOG_INFO("Dispenser %d Read System Id: %s", dispenserIndex + 1, ShmSysConfigAndInfo->SysConfig.ChargeBoxId);
     }
 
     SendPacket(socket, &sendBuffer);
@@ -1609,7 +1555,7 @@ void ConnectorTypeBindingHandler(unsigned char dispenserIndex, unsigned char *ty
 		ShmSysConfigAndInfo->SysInfo.ConnectorInfo[gunIndex].GeneralChargingData.Type = type[i];
         ConnectorPhysicalLimitBindingHandler(gunIndex, physicalType[i]);
 
-		PRINTF_FUNC("Dispenser %d Connector %d type %s, MaxVol: %4d, MaxCur: %4d",
+		LOG_INFO("Dispenser %d Connector %d type %s, MaxVol: %4d, MaxCur: %4d",
             dispenserIndex + 1, gunIndex + 1, str_gun_type[type[i]],
             ShmSysConfigAndInfo->SysInfo.ConnectorInfo[gunIndex].RemoteMaxPhysicalVoltage,
             ShmSysConfigAndInfo->SysInfo.ConnectorInfo[gunIndex].RemoteMaxPhysicalCurrent);
@@ -1660,7 +1606,7 @@ void DispenserCheckInInfoUpdate(void)
 
 	if(change)
 	{
-		PRINTF_FUNC("Total Dispenser: %d, Total Connector: %d\n",
+		LOG_INFO("Total Dispenser: %d, Total Connector: %d\n",
 			ShmSysConfigAndInfo->SysInfo.DispenserInfo.PresentDispenserQuantity,
 			ShmSysConfigAndInfo->SysInfo.DispenserInfo.PresentConnectorQuantity);
 	}
@@ -1691,7 +1637,7 @@ BOOL CheckNewDispenserSequence(unsigned char index, unsigned char quantity)
 {
     if(index == ShmSysConfigAndInfo->SysConfig.WiringInfo.DispenserSequence)
     {
-        PRINTF_FUNC("Get New Dispenser %d, Connector Quantity: %d\n", index + 1, quantity);
+        LOG_INFO("Get New Dispenser %d, Connector Quantity: %d\n", index + 1, quantity);
 
         ShmSysConfigAndInfo->SysInfo.DispenserInfo.CheckInLog.Status |= (1 << index);
         ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectorLog[index] = quantity;
@@ -1724,13 +1670,13 @@ BOOL DispenserIdentificationHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 		if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectorLog[dispenserIndex] != 0 &&
 			quantity != ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectorLog[dispenserIndex])
 		{
-			PRINTF_FUNC("The same dispenser id (%d) but connector quantity not match", dispenserIndex + 1);
+			LOG_INFO("The same dispenser id (%d) but connector quantity not match", dispenserIndex + 1);
 			return false;
 		}
         if(dispenserIndex == ShmSysConfigAndInfo->SysConfig.WiringInfo.DispenserSequence &&
             (quantity + ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity) > ShmChargerInfo->Control.MaxConnector)
         {
-            PRINTF_FUNC("Dispenser %d connector quantity %d over range, total quantity: %d",
+            LOG_INFO("Dispenser %d connector quantity %d over range, total quantity: %d",
                 dispenserIndex + 1, quantity, ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity);
             return false;
         }
@@ -1747,7 +1693,7 @@ BOOL DispenserIdentificationHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 
 			ConnectorTypeBindingHandler(dispenserIndex, connectorType, physicalType);
 
-			PRINTF_FUNC("Dispenser id %d identified, Connector quantity: %d\n", dispenserIndex + 1, quantity);
+			LOG_INFO("Dispenser id %d identified, Connector quantity: %d\n", dispenserIndex + 1, quantity);
 
 			DispenserCheckInInfoUpdate();
 
@@ -1755,12 +1701,12 @@ BOOL DispenserIdentificationHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 		}
 		else
 		{
-			PRINTF_FUNC("Conflict dispenser ID: %d", dispenserIndex + 1);
+			LOG_INFO("Conflict dispenser ID: %d", dispenserIndex + 1);
 		}
 	}
 	else
 	{
-        PRINTF_FUNC("Connector quantity fail, model name: %s", modelName);
+        LOG_INFO("Connector quantity fail, model name: %s", modelName);
 	}
 	return false;
 }
@@ -1810,7 +1756,7 @@ BOOL DispenserStatusCodeHandler(struct PACKET_STRUCTURE *packet, unsigned char d
 		        strcat(strDispenserStatus, strTemp);
 		    }
 		}
-		PRINTF_FUNC(strDispenserStatus);
+		LOG_INFO("%s", strDispenserStatus);
 	}
 	else
 	{
@@ -1859,7 +1805,7 @@ BOOL ConnectorChargingTargetHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 		    ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteTargetCurrent = current;
 		    if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.OutputLimitEnable)
 		    {
-		        PRINTF_FUNC("Connector %d Remote Voltage: %d, Remote Current: %d", packet->Header.id, voltage, current);
+		        LOG_INFO("Connector %d Remote Voltage: %d, Remote Current: %d", packet->Header.id, voltage, current);
 		    }
 		}
 
@@ -1872,10 +1818,10 @@ BOOL ConnectorChargingTargetHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 		    if(!ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.OutputLimitEnable)
 		    {
 		        ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.OutputLimitEnable = true;
-		        PRINTF_FUNC("Connector %d Remote Voltage: %d, Remote Current: %d", packet->Header.id,
+		        LOG_INFO("Connector %d Remote Voltage: %d, Remote Current: %d", packet->Header.id,
                     ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteTargetVoltage,
                     ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteTargetCurrent);
-		        PRINTF_FUNC("Connector %d Limit Voltage: %d, Limit Current: %d", packet->Header.id, voltage, current);
+		        LOG_INFO("Connector %d Limit Voltage: %d, Limit Current: %d", packet->Header.id, voltage, current);
 		    }
 		}
 		else
@@ -1894,7 +1840,7 @@ BOOL ConnectorChargingTargetHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 			if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.EvBatterytargetVoltage != targetVol ||
 				ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.EvBatterytargetCurrent != targetCur)
 			{
-                PRINTF_FUNC("Connector %d Target Voltage: %d V, Current: %d A",
+                LOG_INFO("Connector %d Target Voltage: %d V, Current: %d A",
                     packet->Header.id, (int)(targetVol), (int)(targetCur));
 			}
 
@@ -1908,7 +1854,7 @@ BOOL ConnectorChargingTargetHandler(struct PACKET_STRUCTURE *packet, unsigned ch
 			if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.EvBatterytargetVoltage != 0 ||
 				ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.EvBatterytargetCurrent != 0)
 			{
-				PRINTF_FUNC("Connector %d Not Charging Status, Set Voltage & Current Fail", packet->Header.id);
+				LOG_INFO("Connector %d Not Charging Status, Set Voltage & Current Fail", packet->Header.id);
 			}
 			ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.EvBatterytargetVoltage = 0;
 			ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.EvBatterytargetCurrent = 0;
@@ -1940,7 +1886,7 @@ unsigned char FirmwareUpgradeHandler(struct PACKET_STRUCTURE *packet, unsigned c
                 {
                     ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.FirmwareUpdateConfirm = true;
                     ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.FirmwareUpdateRequest = false;
-                    PRINTF_FUNC("Dispenser %d Updating...", dispenserIndex + 1);
+                    LOG_INFO("Dispenser %d Updating...", dispenserIndex + 1);
                 }
             }
         }
@@ -1953,7 +1899,7 @@ unsigned char FirmwareUpgradeHandler(struct PACKET_STRUCTURE *packet, unsigned c
                     if(!ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.FirmwareUpdateCompleted)
                     {
                         ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.FirmwareUpdateCompleted = true;
-                        PRINTF_FUNC("Dispenser %d Upgrade Completed", dispenserIndex + 1);
+                        LOG_INFO("Dispenser %d Upgrade Completed", dispenserIndex + 1);
                     }
                 }
             }
@@ -1971,7 +1917,7 @@ BOOL ConnectorPlugInHandler(struct PACKET_STRUCTURE *packet, unsigned char dispe
 	{
 		if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.ConnectorPlugIn != packet->Payload.data[0])
 		{
-			PRINTF_FUNC("Connector %d %s", packet->Header.id, packet->Payload.data[0] == _PIS_PluggedIn ? "Pluged In" : "Un Plugged");
+			LOG_INFO("Connector %d %s", packet->Header.id, packet->Payload.data[0] == _PIS_PluggedIn ? "Pluged In" : "Un Plugged");
 		}
 		ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.ConnectorPlugIn = packet->Payload.data[0];
 	}
@@ -2006,7 +1952,7 @@ BOOL ConnectorStateHandler(struct PACKET_STRUCTURE *packet, unsigned char dispen
 
 		if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus != ConnectionState)
 		{
-			PRINTF_FUNC("Connector %d Remote Status: %d", packet->Header.id, ConnectionState);
+			LOG_INFO("Connector %d Remote Status: %d", packet->Header.id, ConnectionState);
 
 			switch(ConnectionState)
 			{
@@ -2017,7 +1963,7 @@ BOOL ConnectorStateHandler(struct PACKET_STRUCTURE *packet, unsigned char dispen
                     {
                         if(chargingInfo[packet->Header.id - 1]->SystemStatus != S_IDLE)
                         {
-                            PRINTF_FUNC("*********** Connector id %d Set Normal Stop Flag ***********\n", packet->Header.id);
+                            LOG_INFO("*********** Connector id %d Set Normal Stop Flag ***********\n", packet->Header.id);
                             ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.NormalStopRequest = true;
                         }
                     }
@@ -2028,7 +1974,7 @@ BOOL ConnectorStateHandler(struct PACKET_STRUCTURE *packet, unsigned char dispen
 
                     if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus == _CRS_Idle)
                     {
-                        PRINTF_FUNC("*********** Connector id %d Set Fault Status [%s] ***********", packet->Header.id,
+                        LOG_INFO("*********** Connector id %d Set Fault Status [%s] ***********", packet->Header.id,
                             ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemotenAlarmCode);
                         ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.FaultStatusRequest = true;
                     }
@@ -2036,7 +1982,7 @@ BOOL ConnectorStateHandler(struct PACKET_STRUCTURE *packet, unsigned char dispen
                         ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus == _CRS_Charging)
                     {
 
-                        PRINTF_FUNC("*********** Connector id %d Set Alarm Stop Flag [%s] ***********", packet->Header.id,
+                        LOG_INFO("*********** Connector id %d Set Alarm Stop Flag [%s] ***********", packet->Header.id,
                             ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemotenAlarmCode);
                         ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.AlarmStopRequest = true;
                     }
@@ -2081,12 +2027,12 @@ unsigned char UserIDHandler(struct PACKET_STRUCTURE *packet, unsigned char dispe
 
 	    if(*result == _AuthResult_Valid)
 	    {
-            PRINTF_FUNC("Dispenser %d Target %d user id %s authorizing ok", dispenserIndex + 1, packet->Header.id, CardNumber);
+            LOG_INFO("Dispenser %d Target %d user id %s authorizing ok", dispenserIndex + 1, packet->Header.id, CardNumber);
             authorize = _DAS_Allowed;
 	    }
 	    else if(*result == _AuthResult_Invalid)
 	    {
-            PRINTF_FUNC("Dispenser %d Target %d user id %s authorizing fail", dispenserIndex + 1, packet->Header.id, CardNumber);
+            LOG_INFO("Dispenser %d Target %d user id %s authorizing fail", dispenserIndex + 1, packet->Header.id, CardNumber);
             authorize = _DAS_NotAllowed;
 	    }
 	    else if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].AuthStatus == _AuthorizeStatus_Idle &&
@@ -2096,7 +2042,7 @@ unsigned char UserIDHandler(struct PACKET_STRUCTURE *packet, unsigned char dispe
 	        ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].AuthTarget = packet->Header.id;
 	        ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.AuthorizeRequest = true;
 
-	        PRINTF_FUNC("Dispenser %d connector %d user id %s need authorize", dispenserIndex + 1, packet->Header.id, CardNumber);
+	        LOG_INFO("Dispenser %d connector %d user id %s need authorize", dispenserIndex + 1, packet->Header.id, CardNumber);
 	        authorize = _DAS_Wait;
 	    }
 	    else
@@ -2132,7 +2078,7 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
                     permission = _DAS_NotAllowed;
                     if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.ChargingPermission != permission)
                     {
-                        PRINTF_FUNC("Cabinet status idle, not allow dispenser %d connector %d charging",
+                        LOG_INFO("Cabinet status idle, not allow dispenser %d connector %d charging",
                             dispenserIndex + 1, packet->Header.id);
                     }
                 }
@@ -2152,7 +2098,7 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
                     permission = _DAS_NotAllowed;
                     if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.ChargingPermission != permission)
                     {
-                        PRINTF_FUNC("RemoteStop or UnlockStop, not allow dispenser index %d connector id %d preparing to charge", dispenserIndex, packet->Header.id);
+                        LOG_INFO("RemoteStop or UnlockStop, not allow dispenser index %d connector id %d preparing to charge", dispenserIndex, packet->Header.id);
                     }
                 }
                 else if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus >= _CRS_Preparing &&
@@ -2161,14 +2107,14 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
                     if(!ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.PermissionRequest)
                     {
                         ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.PermissionRequest = true;
-                        PRINTF_FUNC("Allow dispenser index %d connector id %d start preparing to charge", dispenserIndex, packet->Header.id);
+                        LOG_INFO("Allow dispenser index %d connector id %d start preparing to charge", dispenserIndex, packet->Header.id);
                     }
                     permission = _DAS_Allowed;
                 }
                 else if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus == _CRS_Terminating)
                 {
                     permission = _DAS_NotAllowed;
-                    PRINTF_FUNC("Dispenser Terminating, Not allow dispenser index %d connector id %d preparing to charge", dispenserIndex, packet->Header.id);
+                    LOG_INFO("Dispenser Terminating, Not allow dispenser index %d connector id %d preparing to charge", dispenserIndex, packet->Header.id);
                 }
                 else
                 {
@@ -2187,7 +2133,7 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
                     permission = _DAS_NotAllowed;
                     if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.ChargingPermission != permission)
                     {
-                        PRINTF_FUNC("RemoteStop or UnlockStop, not allow dispenser index %d connector id %d charging", dispenserIndex, packet->Header.id);
+                        LOG_INFO("RemoteStop or UnlockStop, not allow dispenser index %d connector id %d charging", dispenserIndex, packet->Header.id);
                     }
                 }
                 else if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus == _CRS_Preparing ||
@@ -2200,7 +2146,7 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
                     permission = _DAS_NotAllowed;
                     if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.ChargingPermission != permission)
                     {
-                        PRINTF_FUNC("Dispenser index %d connector id %d remote status not in charging mode", dispenserIndex, packet->Header.id);
+                        LOG_INFO("Dispenser index %d connector id %d remote status not in charging mode", dispenserIndex, packet->Header.id);
                     }
                 }
                 break;
@@ -2214,7 +2160,7 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
                 permission = _DAS_NotAllowed;
                 if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.ChargingPermission != permission)
                 {
-                    PRINTF_FUNC("Cabinet status(%d) not match, not allow dispenser index %d connector id %d charging",
+                    LOG_INFO("Cabinet status(%d) not match, not allow dispenser index %d connector id %d charging",
                         ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.SystemStatus,
                         dispenserIndex, packet->Header.id);
                 }
@@ -2226,13 +2172,13 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
 	}
 	else
 	{
-	    PRINTF_FUNC("Dispenser index %d Connector id %d not found", dispenserIndex, packet->Header.id);
+	    LOG_INFO("Dispenser index %d Connector id %d not found", dispenserIndex, packet->Header.id);
 	    permission = _DAS_NotAllowed;
 	}
 
 	ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.ChargingPermission = permission;
 
-//	PRINTF_FUNC("Dispenser %d Permission %s, Gun Status: %d, Connector Status: %d, Wait Plug: %d, PlugIn: %d, Available: %d, Order: %d", dispenserIndex, permission == true ? "OK" : "NG",
+//	LOG_INFO("Dispenser %d Permission %s, Gun Status: %d, Connector Status: %d, Wait Plug: %d, PlugIn: %d, Available: %d, Order: %d", dispenserIndex, permission == true ? "OK" : "NG",
 //		ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.SystemStatus,
 //		ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].RemoteStatus,
 //		ShmSysConfigAndInfo->SysInfo.WaitForPlugit,
@@ -2291,11 +2237,11 @@ unsigned char DispenserWriteCsuVersionInfoHandler(struct PACKET_STRUCTURE *packe
 
     if(showVersion)
     {
-        PRINTF_FUNC("********** Dispenser id %d:   Csu Version information **********", dispenserIndex + 1);
-        PRINTF_FUNC("********** CsuBootLoadRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuBootLoadFwRev);
-        PRINTF_FUNC("********** CsuKernelFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuKernelFwRev);
-        PRINTF_FUNC("********** CsuRootFsFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuRootFsFwRev);
-        PRINTF_FUNC("**********   CsuPrimFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuPrimFwRev);
+        LOG_INFO("********** Dispenser id %d:   Csu Version information **********", dispenserIndex + 1);
+        LOG_INFO("********** CsuBootLoadRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuBootLoadFwRev);
+        LOG_INFO("********** CsuKernelFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuKernelFwRev);
+        LOG_INFO("********** CsuRootFsFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuRootFsFwRev);
+        LOG_INFO("**********   CsuPrimFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].CsuPrimFwRev);
     }
     writeVersion = TRUE;
 
@@ -2344,12 +2290,12 @@ unsigned char DispenserWriteOtherVersionInfoHandler(struct PACKET_STRUCTURE *pac
 
     if(showVersion)
     {
-        PRINTF_FUNC("********** Dispenser id %d: Other Version information **********", dispenserIndex + 1);
-        PRINTF_FUNC("********** FanModuleFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].FanModuleFwRev);
-        PRINTF_FUNC("********** RelayModuleRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].RelayModuleFwRev);
-        PRINTF_FUNC("**********  Connector1Rev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Connector1FwRev);
-        PRINTF_FUNC("**********  Connector2Rev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Connector2FwRev);
-        PRINTF_FUNC("********** LedModuleFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].LedModuleFwRev);
+        LOG_INFO("********** Dispenser id %d: Other Version information **********", dispenserIndex + 1);
+        LOG_INFO("********** FanModuleFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].FanModuleFwRev);
+        LOG_INFO("********** RelayModuleRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].RelayModuleFwRev);
+        LOG_INFO("**********  Connector1Rev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Connector1FwRev);
+        LOG_INFO("**********  Connector2Rev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Connector2FwRev);
+        LOG_INFO("********** LedModuleFwRev: %32s ***", ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].LedModuleFwRev);
     }
     writeVersion = TRUE;
 
@@ -2380,7 +2326,7 @@ unsigned char DispenserWriteChargingInfoHandler(struct PACKET_STRUCTURE *packet,
 
         if(diffVoltage > 10 || diffCurrent > 10 || ShmSysConfigAndInfo->SysInfo.ConnectorInfo[gun].RemoteSoc != soc)
         {
-            PRINTF_FUNC("Connector %d Charging Info: Voltage: %4d.%d V, Current: %3d.%d A, Soc: %3d, Temp: %3d, Chiller: %3d",
+            LOG_INFO("Connector %d Charging Info: Voltage: %4d.%d V, Current: %3d.%d A, Soc: %3d, Temp: %3d, Chiller: %3d",
                 packet->Header.id, (voltage / 10), (voltage % 10), (current / 10), (current % 10), soc,
                 chargingInfo[gun]->ConnectorTemp - 60, chargingInfo[gun]->ChillerTemp - 60);
         }
@@ -2418,7 +2364,7 @@ unsigned char WriteWaitPlugInHandler(struct PACKET_STRUCTURE *packet, unsigned c
         {
             if(!ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.StartWaitPlug)
             {
-                PRINTF_FUNC("Connector %d Start Wait Plug In", packet->Header.id);
+                LOG_INFO("Connector %d Start Wait Plug In", packet->Header.id);
                 ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.SwipeRfidConfirm = true;
             }
             ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.StartWaitPlug = true;
@@ -2429,7 +2375,7 @@ unsigned char WriteWaitPlugInHandler(struct PACKET_STRUCTURE *packet, unsigned c
             {
                 if(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].GeneralChargingData.SystemStatus != S_IDLE)
                 {
-                    PRINTF_FUNC("Connector %d Stop Wait Plug In", packet->Header.id);
+                    LOG_INFO("Connector %d Stop Wait Plug In", packet->Header.id);
                     ShmSysConfigAndInfo->SysInfo.ConnectorInfo[packet->Header.id - 1].Parameter.bits.NeedCleanAuthorizeInfo = true;
                 }
             }
@@ -2463,7 +2409,7 @@ void DispenserSocketProcess(int socketFd, struct sockaddr_in clientInfo, unsigne
 	unsigned char ackResult = _R_NG;
 	DispenserAck_Status ack = _DAS_Wait;
 
-	PRINTF_FUNC("IP %s connection(%d) is established, start dispenser process", (inet_ntoa(clientInfo.sin_addr)), index);
+	LOG_INFO("IP %s connection(%d) is established, start dispenser process", (inet_ntoa(clientInfo.sin_addr)), index);
 
 	while(1)
 	{
@@ -2494,7 +2440,7 @@ void DispenserSocketProcess(int socketFd, struct sockaddr_in clientInfo, unsigne
 	                            {
 	                                ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectionInfo[index].DispenserIndex = dispenserIndex;
 	                                ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectionInfo[index].Status = _CNS_DispenserMatched;
-	                                PRINTF_FUNC("********** Dispenser id %d check in, model name: %s **********\n", dispenserID, modelName);
+	                                LOG_INFO("********** Dispenser id %d check in, model name: %s **********\n", dispenserID, modelName);
 	                                memcpy(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].ModelName, modelName, 64);
 	                                ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].ConnectionChannel = index;
 	                                ackResult = _R_OK;
@@ -2502,18 +2448,18 @@ void DispenserSocketProcess(int socketFd, struct sockaddr_in clientInfo, unsigne
 	                            else
 	                            {
 	                                // response NG: gun quantity fail
-	                                PRINTF_FUNC("Dispenser ID %d Identification Fail", dispenserID);
+	                                LOG_INFO("Dispenser ID %d Identification Fail", dispenserID);
 	                            }
 	                        }
 	                        else
 	                        {
 	                            // response NG: dispenser Index fail
-	                            PRINTF_FUNC("Dispenser ID %d Fail, Need Wait Another Dispenser", dispenserID);
+	                            LOG_INFO("Dispenser ID %d Fail, Need Wait Another Dispenser", dispenserID);
 	                        }
 						}
 						else
 						{
-						    PRINTF_FUNC("Dispenser ID: %d Over Range", dispenserID);
+						    LOG_INFO("Dispenser ID: %d Over Range", dispenserID);
 						}
 
 						ModelNameResponse(socketFd, &receiveBuffer, ackResult);
@@ -2540,7 +2486,7 @@ void DispenserSocketProcess(int socketFd, struct sockaddr_in clientInfo, unsigne
 							ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].LocalStatus = _DS_Idle;
 							ackResult = _R_OK;
 						}
-						PRINTF_FUNC("Dispenser ID %d Get Connector ID %s", dispenserID, ackResult == _R_OK ? "OK" : "NG");
+						LOG_INFO("Dispenser ID %d Get Connector ID %s", dispenserID, ackResult == _R_OK ? "OK" : "NG");
 						ConnectorIDResponse(socketFd, &receiveBuffer, ackResult, dispenserIndex);
 
 						if(ackResult == _R_OK)
@@ -2549,7 +2495,7 @@ void DispenserSocketProcess(int socketFd, struct sockaddr_in clientInfo, unsigne
                             {
                                 ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.DispenserConfigSync = true;
 
-                                PRINTF_FUNC("Dispenser ID %d Configuration Need To Synchronize", dispenserID);
+                                LOG_INFO("Dispenser ID %d Configuration Need To Synchronize", dispenserID);
                                 ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.ConnectorTimeoutConfigRequest = true;
                                 ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.DefaultPriceConfigRequest = true;
                                 ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.CurrencyConfigRequest = true;
@@ -2721,12 +2667,12 @@ void DispenserSocketProcess(int socketFd, struct sockaddr_in clientInfo, unsigne
         {
             if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].Setting.bits.DuplicateIp)
             {
-                PRINTF_FUNC("Dispenser %d has been kick", dispenserIndex + 1);
+                LOG_INFO("Dispenser %d has been kick", dispenserIndex + 1);
             }
             else
             {
                 //timeout
-                PRINTF_FUNC("IP: %s, Socket %d connection timeout", (inet_ntoa(clientInfo.sin_addr)), index);
+                LOG_INFO("IP: %s, Socket %d connection timeout", (inet_ntoa(clientInfo.sin_addr)), index);
             }
 
 			if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectionInfo[index].Status == _CNS_DispenserMatched)
@@ -2872,7 +2818,7 @@ void DispenserIpConflictedCheck(void)
                 {
                     gettimeofday(&_IpConflicted_time[i], NULL);
                     ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].Setting.bits.DuplicateIpConfirm = true;
-                    PRINTF_FUNC("Dispenser %d IP Conflicted Confirm", i + 1);
+                    LOG_INFO("Dispenser %d IP Conflicted Confirm", i + 1);
                 }
                 else
                 {
@@ -2885,7 +2831,7 @@ void DispenserIpConflictedCheck(void)
 
                             if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectionInfo[channel].Status != _CNS_FREE)
                             {
-                                PRINTF_FUNC("Dispenser %d IP Conflicted Stop", i + 1);
+                                LOG_INFO("Dispenser %d IP Conflicted Stop", i + 1);
                                 DisableConnector(i);
                                 memset(&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i], 0x00, sizeof(struct DispenserModule));
                                 ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].LocalStatus = _DS_Timeout;
@@ -2895,7 +2841,7 @@ void DispenserIpConflictedCheck(void)
                         }
                         ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].Setting.bits.DuplicateIp = false;
                         ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].Setting.bits.DuplicateIpConfirm = false;
-                        PRINTF_FUNC("Dispenser %d IP Conflicted Clean", i + 1);
+                        LOG_INFO("Dispenser %d IP Conflicted Clean", i + 1);
                     }
                 }
             }
@@ -2916,7 +2862,7 @@ void ForkIpConflictedCheck(void)
     }
     else if(forkId == -1)
     {
-        PRINTF_FUNC("fork fail");
+        LOG_INFO("fork fail");
     }
 }
 
@@ -2936,7 +2882,7 @@ int tcpSocketServerStart(void)
     sockFd = socket(AF_INET, SOCK_STREAM, 0);
     if(sockFd == -1)
     {
-        PRINTF_FUNC("InitSocketServer NG\n");
+        LOG_INFO("InitSocketServer NG\n");
         sleep(5);
         return FAIL;
     }
@@ -2952,12 +2898,12 @@ int tcpSocketServerStart(void)
     bindStatus = bind(sockFd, (struct sockaddr *)&serverInfo, sizeof(serverInfo));
     if(bindStatus < 0)
     {
-        PRINTF_FUNC("socket bind fail");
+        LOG_INFO("socket bind fail");
         return FAIL;
     }
 	listen(sockFd, CONNECTION_LIMIT);
 
-	PRINTF_FUNC("TCP Server Start");
+	LOG_INFO("TCP Server Start");
 
 	signal(SIGCHLD, SIG_IGN);
 
@@ -2988,7 +2934,7 @@ int tcpSocketServerStart(void)
             //break;
             //exit(EXIT_FAILURE);
 		}*/
-		PRINTF_FUNC("Client ip: %s is accepted at port: %d", inet_ntoa(clientInfo.sin_addr), clientInfo.sin_port);
+		LOG_INFO("Client ip: %s is accepted at port: %d", inet_ntoa(clientInfo.sin_addr), clientInfo.sin_port);
 
 		connectIndex = FindFreeChannel();
 		if(connectIndex >= 0)
@@ -3009,13 +2955,13 @@ int tcpSocketServerStart(void)
 				}
 				else if(forkId == -1)
 				{
-					PRINTF_FUNC("fork fail");
+					LOG_INFO("fork fail");
 				}
 			}
 			else
 			{
 				// conflict ip address
-				PRINTF_FUNC("Conflict IP address, close socket");
+				LOG_INFO("Conflict IP address, close socket");
 				close(clientSockFd);
 				memset(&ShmSysConfigAndInfo->SysInfo.DispenserInfo.ConnectionInfo[connectIndex], 0x00, sizeof(struct ConnectionInfoData));
 			}
@@ -3023,7 +2969,7 @@ int tcpSocketServerStart(void)
 		else
 		{
 			// no free channel
-			PRINTF_FUNC("No free channel, close socket");
+			LOG_INFO("No free channel, close socket");
 			close(clientSockFd);
 		}
 		usleep(10000);
@@ -3045,7 +2991,7 @@ int main(void)
 	if(InitShareMemory() == FAIL)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("InitShareMemory NG\n");
+		LOG_ERROR("InitShareMemory NG");
 		#endif
 
 		sleep(5);

+ 12 - 64
EVSE/Projects/DO360/Apps/Module_EventLogging.c

@@ -27,6 +27,7 @@
 #include	<ctype.h>
 #include 	<ifaddrs.h>
 #include	"../../define.h"
+#include    "Common.h"
 
 #define ARRAY_SIZE(A)		(sizeof(A) / sizeof(A[0]))
 #define PASS				1
@@ -38,48 +39,6 @@ struct SysConfigAndInfo			*ShmSysConfigAndInfo;
 struct StatusCodeData 			*ShmStatusCodeData;
 struct StatusCodeData           StatusCodeDisableMask;
 
-void PRINTF_FUNC(char *string, ...);
-
-int StoreLogMsg(const char *fmt, ...);
-#define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-
-int StoreLogMsg(const char *fmt, ...)
-{
-	char Buf[4096+256];
-	char buffer[4096];
-	va_list args;
-	struct timeb  SeqEndTime;
-	struct tm *tm;
-
-	va_start(args, fmt);
-	int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
-	va_end(args);
-
-	memset(Buf,0,sizeof(Buf));
-	ftime(&SeqEndTime);
-	SeqEndTime.time = time(NULL);
-	tm=localtime(&SeqEndTime.time);
-
-	if (ShmSysConfigAndInfo->SysConfig.SwitchDebugFlag == YES)
-	{
-		sprintf(Buf,"%02d:%02d:%02d:%03d - %s",
-			tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm, buffer);
-		printf("%s \n", Buf);
-	}
-	else
-	{
-		sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
-			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
-			buffer,
-			tm->tm_year+1900,tm->tm_mon+1);
-		system(Buf);
-	}
-
-	return rc;
-}
-
 int DiffTimeb(struct timeb ST, struct timeb ET)
 {
 	//return milli-second
@@ -90,17 +49,6 @@ int DiffTimeb(struct timeb ST, struct timeb ET)
 	return (StopTime-StartTime)*1000+ET.millitm-ST.millitm;
 }
 
-void PRINTF_FUNC(char *string, ...)
-{
-	va_list args;
-	char buffer[4096];
-	va_start(args, string);
-	vsnprintf(buffer, sizeof(buffer), string, args);
-	va_end(args);
-
-	DEBUG_INFO("%s \n", buffer);
-}
-
 //=================================
 // Common routine
 //=================================
@@ -129,14 +77,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo),  0777)) < 0)
     {
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmSysConfigAndInfo NG\n");
+		LOG_ERROR("shmget ShmSysConfigAndInfo NG");
 		#endif
 		result = FAIL;
 	}
     else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
     	#ifdef SystemLogMessage
-    	DEBUG_ERROR("shmat ShmSysConfigAndInfo NG\n");
+    	LOG_ERROR("shmat ShmSysConfigAndInfo NG");
 		#endif
     	result = FAIL;
    	 }
@@ -147,14 +95,14 @@ int InitShareMemory()
    	 if ((MeterSMId = shmget(ShmStatusCodeKey, sizeof(struct StatusCodeData),  0777)) < 0)
     {
 		#ifdef SystemLogMessage
-   		DEBUG_ERROR("shmget ShmStatusCodeData NG\n");
+   		LOG_ERROR("shmget ShmStatusCodeData NG");
 		#endif
    		result = FAIL;
 	}
     else if ((ShmStatusCodeData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
     	#ifdef SystemLogMessage
-    	DEBUG_ERROR("shmat ShmStatusCodeData NG\n");
+    	LOG_ERROR("shmat ShmStatusCodeData NG");
 		#endif
     	result = FAIL;
    	}
@@ -217,7 +165,7 @@ int main(void)
 	if(InitShareMemory() == FAIL)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("InitShareMemory NG\n");
+		LOG_ERROR("InitShareMemory NG");
 		#endif
 		if(ShmStatusCodeData!=NULL)
 		{
@@ -288,13 +236,13 @@ int main(void)
 						if(((tmp>>BitCount)&0x01)==0)//Recovered
 						{
 							//EventCodeTmp[0]=1;
-							DEBUG_INFO("Recovery Fault Code = %s\n", EventCodeTmp);
+							LOG_INFO("Recovery Fault Code = %s", EventCodeTmp);
 							ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount] &= ~(1<<BitCount);
 							RemoveFaultCodeToBuf(EventCodeTmp);
 						}
 						else
 						{
-							DEBUG_INFO("Fault Code = %s\n", EventCodeTmp);
+							LOG_INFO("Fault Code = %s", EventCodeTmp);
 							ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount] |= (1<<BitCount);
 							AddFaultCodeToBuf(EventCodeTmp);
 						}
@@ -325,7 +273,7 @@ int main(void)
 						if(((tmp>>BitCount)&0x01)==0)//Recovered
 						{
 							//EventCodeTmp[0]=1;
-							DEBUG_INFO("Recovery Alarm Code = %s\n", EventCodeTmp);
+							LOG_INFO("Recovery Alarm Code = %s", EventCodeTmp);
 							ShmStatusCodeData->AlarmCode.PreviousAlarmVal[ByteCount] &= ~(1<<BitCount);
 							if(!(StatusCodeDisableMask.AlarmCode.AlarmEvents.AlarmVal[ByteCount] & (1<<BitCount)))
 							{
@@ -334,7 +282,7 @@ int main(void)
 						}
 						else
 						{
-							DEBUG_INFO("Alarm Code = %s\n", EventCodeTmp);
+							LOG_INFO("Alarm Code = %s", EventCodeTmp);
 							ShmStatusCodeData->AlarmCode.PreviousAlarmVal[ByteCount] |= (1<<BitCount);
 							if(!(StatusCodeDisableMask.AlarmCode.AlarmEvents.AlarmVal[ByteCount] & (1<<BitCount)))
 							{
@@ -368,7 +316,7 @@ int main(void)
 						if(((tmp>>BitCount)&0x01)==0)//Recovered
 						{
 							//EventCodeTmp[0]=1;
-							DEBUG_INFO("Recovery Info Code = %s\n", EventCodeTmp);
+							LOG_INFO("Recovery Info Code = %s", EventCodeTmp);
 							ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount] &= ~(1<<BitCount);
 							if(!(StatusCodeDisableMask.InfoCode.InfoEvents.InfoVal[ByteCount] & (1<<BitCount)))
 							{
@@ -377,7 +325,7 @@ int main(void)
 						}
 						else
 						{
-							DEBUG_INFO("Info Code = %s\n", EventCodeTmp);
+							LOG_INFO("Info Code = %s", EventCodeTmp);
 							ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount] |= (1<<BitCount);
 							if(!(StatusCodeDisableMask.InfoCode.InfoEvents.InfoVal[ByteCount] & (1<<BitCount)))
 							{

+ 109 - 161
EVSE/Projects/DO360/Apps/Module_InternalComm.c

@@ -31,6 +31,7 @@
 #include	"internalComm.h"
 #include 	<stdbool.h>
 #include    "Config.h"
+#include    "Common.h"
 
 #define ARRAY_SIZE(A)		(sizeof(A) / sizeof(A[0]))
 #define PASS				1
@@ -198,15 +199,8 @@ int _alarm_code[] = {AC_OVP, AC_UVP, AC_OCP, AC_OTP, AC_GMI_FAULT, AC_CP_ERROR,
 		, AC_GF_MODULE_FAULT, AC_SHUTTER_FAULT, AC_LOCKER_FAULT, AC_POWER_DROP, AC_CIRCUIT_SHORT
 		, AC_ROTARY_SWITCH_FAULT, AC_RELAY_DRIVE_FAULT};
 
-void PRINTF_FUNC(char *string, ...);
-
-int StoreLogMsg(const char *fmt, ...);
 unsigned long GetTimeoutValue(struct timeval _sour_time);
 
-#define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-
 unsigned long GetTimeoutValue(struct timeval _sour_time)
 {
 	struct timeval _end_time;
@@ -215,41 +209,6 @@ unsigned long GetTimeoutValue(struct timeval _sour_time)
 	return 1000000 * (_end_time.tv_sec - _sour_time.tv_sec) + _end_time.tv_usec - _sour_time.tv_usec;
 }
 
-int StoreLogMsg(const char *fmt, ...)
-{
-	char Buf[4096+256];
-	char buffer[4096];
-	va_list args;
-	struct timeb  SeqEndTime;
-	struct tm *tm;
-
-	va_start(args, fmt);
-	int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
-	va_end(args);
-
-	memset(Buf,0,sizeof(Buf));
-	ftime(&SeqEndTime);
-	SeqEndTime.time = time(NULL);
-	tm=localtime(&SeqEndTime.time);
-
-	if (ShmSysConfigAndInfo->SysConfig.SwitchDebugFlag == YES)
-	{
-		sprintf(Buf,"%02d:%02d:%02d:%03d - %s",
-			tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm, buffer);
-		printf("%s \n", Buf);
-	}
-	else
-	{
-		sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
-			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
-			buffer,
-			tm->tm_year+1900,tm->tm_mon+1);
-		system(Buf);
-	}
-
-	return rc;
-}
-
 int DiffTimeb(struct timeb ST, struct timeb ET)
 {
 	//return milli-second
@@ -266,17 +225,6 @@ unsigned short MaxValue(unsigned short value1, unsigned short value2)
 	return value1 >= value2 ? value1 : value2;
 }
 
-void PRINTF_FUNC(char *string, ...)
-{
-	va_list args;
-	char buffer[4096];
-	va_start(args, string);
-	vsnprintf(buffer, sizeof(buffer), string, args);
-	va_end(args);
-
-	DEBUG_INFO("%s \n", buffer);
-}
-
 //==========================================
 // Communication Function
 //==========================================
@@ -288,14 +236,14 @@ void GetFwAndHwVersion_Fan()
 		strcpy((char *) ShmFanModuleData->version, ver.Version_FW);
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.FanModuleFwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_Fan s1 = %s", ver.Version_FW);
+		LOG_INFO("GetFwAndHwVersion_Fan s1 = %s", ver.Version_FW);
 	}
 
 	if (Query_HW_Ver(Uart5Fd, Addr.Fan, &ver) == PASS)
 	{
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.FanModuleHwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_Fan s2 = %s", ver.Version_HW);
+		LOG_INFO("GetFwAndHwVersion_Fan s2 = %s", ver.Version_HW);
 	}
 }
 
@@ -307,14 +255,14 @@ void GetFwAndHwVersion_Relay()
 		strcpy((char *) ShmRelayModuleData[0]->version, ver.Version_FW);
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.RelayModuleFwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_RC1 s1 = %s", ver.Version_FW);
+		LOG_INFO("GetFwAndHwVersion_RC1 s1 = %s", ver.Version_FW);
 	}
 
 	if (Query_HW_Ver(Uart5Fd, Addr.DO360_RC1, &ver) == PASS)
 	{
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.RelayModuleHwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_RC1 s2 = %s", ver.Version_HW);
+		LOG_INFO("GetFwAndHwVersion_RC1 s2 = %s", ver.Version_HW);
 	}
 }
 
@@ -327,14 +275,14 @@ void GetFwAndHwVersion_Relay2()
 		strcpy((char *) ShmRelayModuleData[1]->version, ver.Version_FW);
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.Relay2ModuleFwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_RC2 s1 = %s", ver.Version_FW);
+		LOG_INFO("GetFwAndHwVersion_RC2 s1 = %s", ver.Version_FW);
 	}
 
 	if (Query_HW_Ver(Uart5Fd, Addr.DO360_RC2, &ver) == PASS)
 	{
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.Relay2ModuleHwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_RC2 s2 = %s", ver.Version_HW);
+		LOG_INFO("GetFwAndHwVersion_RC2 s2 = %s", ver.Version_HW);
 	}
 }
 
@@ -346,19 +294,19 @@ void GetFwAndHwVersion_Led()
 		strcpy((char *) ShmLedModuleData->version, ver.Version_FW);
 		// SystemInfo
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.LedModuleFwRev, ver.Version_FW);
-		PRINTF_FUNC("GetFwAndHwVersion_Led s1 = %s \n", ver.Version_FW);
+		LOG_INFO("GetFwAndHwVersion_Led s1 = %s", ver.Version_FW);
 		ShmLedModuleData->SelfTest_Comp = YES;
 	}
 	else
 	{
-		//PRINTF_FUNC("GetFwAndHwVersion_Led fail \n");
+		//LOG_INFO("GetFwAndHwVersion_Led fail");
 	}
 
 //	if (Query_HW_Ver(Uart5Fd, Addr.Led, &ver) == PASS)
 //	{
 //		// SystemInfo
 //		strcpy((char *) ShmSysConfigAndInfo->SysInfo.RelayModuleHwRev, ver.Version_FW);
-//		//PRINTF_FUNC("GetFwAndHwVersion_Relay s2 = %s \n", ver.Version_HW);
+//		//LOG_INFO("GetFwAndHwVersion_Relay s2 = %s", ver.Version_HW);
 //	}
 }
 
@@ -376,7 +324,7 @@ void GetAcModelName()
 	memset(ShmSysConfigAndInfo->SysConfig.AcModelName, 0x00, sizeof(ShmSysConfigAndInfo->SysConfig.AcModelName));
 	if (Query_Model_Name(Uart5Fd, Addr.AcPlug, ShmSysConfigAndInfo->SysConfig.AcModelName) == PASS)
 	{
-		PRINTF_FUNC("ac model name = %s \n", ShmSysConfigAndInfo->SysConfig.AcModelName);
+		LOG_INFO("ac model name = %s", ShmSysConfigAndInfo->SysConfig.AcModelName);
 	}
 }
 
@@ -387,7 +335,7 @@ void SetRtcData_Relay(unsigned char index)
 
 	ftime(&csuTime);
 	tmCSU = localtime(&csuTime.time);
-	//	PRINTF_FUNC("Time : %04d-%02d-%02d %02d:%02d:%02d \n", tmCSU->tm_year + 1900,
+	//	LOG_INFO("Time : %04d-%02d-%02d %02d:%02d:%02d", tmCSU->tm_year + 1900,
 	//			tmCSU->tm_mon + 1, tmCSU->tm_mday, tmCSU->tm_hour, tmCSU->tm_min,
 	//			tmCSU->tm_sec);
 
@@ -415,14 +363,14 @@ void SetRtcData_Relay(unsigned char index)
 	{
 		if (Config_Rtc_Data(Uart5Fd, Addr.DO360_RC1, &rtc) == PASS)
 		{
-			//PRINTF_FUNC("SetRtc (RB) sucessfully. \n");
+			//LOG_INFO("SetRtc (RB) sucessfully.");
 		}
 	}
 	else
 	{
 		if (Config_Rtc_Data(Uart5Fd, Addr.DO360_RC2, &rtc) == PASS)
 		{
-			//PRINTF_FUNC("SetRtc (RB) sucessfully. \n");
+			//LOG_INFO("SetRtc (RB) sucessfully.");
 		}
 	}
 }
@@ -434,7 +382,7 @@ void SetRtcData_Fan()
 
 	ftime(&csuTime);
 	tmCSU = localtime(&csuTime.time);
-	//	PRINTF_FUNC("Time : %04d-%02d-%02d %02d:%02d:%02d \n", tmCSU->tm_year + 1900,
+	//	LOG_INFO("Time : %04d-%02d-%02d %02d:%02d:%02d", tmCSU->tm_year + 1900,
 	//			tmCSU->tm_mon + 1, tmCSU->tm_mday, tmCSU->tm_hour, tmCSU->tm_min,
 	//			tmCSU->tm_sec);
 
@@ -460,7 +408,7 @@ void SetRtcData_Fan()
 
 	if (Config_Rtc_Data(Uart5Fd, Addr.Fan, &rtc) == PASS)
 	{
-		//PRINTF_FUNC("SetRtc (FB) sucessfully. \n");
+		//LOG_INFO("SetRtc (FB) sucessfully.");
 	}
 }
 
@@ -468,7 +416,7 @@ void SetModelName_Fan()
 {
 	if (Config_Model_Name(Uart5Fd, Addr.Fan, ShmSysConfigAndInfo->SysConfig.ModelName) == PASS)
 	{
-		PRINTF_FUNC("Set Model name PASS = %s", ShmSysConfigAndInfo->SysConfig.ModelName);
+		LOG_INFO("Set Model name PASS = %s", ShmSysConfigAndInfo->SysConfig.ModelName);
 	}
 }
 
@@ -490,7 +438,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L1N_L12 <= VIN_MIN_VOLTAGE_IEC)
                 {
-                    PRINTF_FUNC("In Uvp L1N_L12 = %f \n", inputVoltage.L1N_L12);
+                    LOG_INFO("In Uvp L1N_L12 = %f", inputVoltage.L1N_L12);
                     if (_threePhaseUvp[0] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP = YES;
                     else
@@ -510,7 +458,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L2N_L23 <= VIN_MIN_VOLTAGE_IEC)
                 {
-                    PRINTF_FUNC("In Uvp L2N_L23 = %f \n", inputVoltage.L2N_L23);
+                    LOG_INFO("In Uvp L2N_L23 = %f", inputVoltage.L2N_L23);
                     if (_threePhaseUvp[1] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP = YES;
                     else
@@ -530,7 +478,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L3N_L31 <= VIN_MIN_VOLTAGE_IEC)
                 {
-                    PRINTF_FUNC("In Uvp L3N_L31 = %f \n", inputVoltage.L3N_L31);
+                    LOG_INFO("In Uvp L3N_L31 = %f", inputVoltage.L3N_L31);
                     if (_threePhaseUvp[2] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP = YES;
                     else
@@ -552,7 +500,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L1N_L12 <= VIN_MIN_VOLTAGE_UL)
                 {
-                    PRINTF_FUNC("In Uvp L1N_L12 = %f \n", inputVoltage.L1N_L12);
+                    LOG_INFO("In Uvp L1N_L12 = %f", inputVoltage.L1N_L12);
                     if (_threePhaseUvp[0] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP = YES;
                     else
@@ -572,7 +520,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L2N_L23 <= VIN_MIN_VOLTAGE_UL)
                 {
-                    PRINTF_FUNC("In Uvp L2N_L23 = %f \n", inputVoltage.L2N_L23);
+                    LOG_INFO("In Uvp L2N_L23 = %f", inputVoltage.L2N_L23);
                     if (_threePhaseUvp[1] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP = YES;
                     else
@@ -592,7 +540,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L3N_L31 <= VIN_MIN_VOLTAGE_UL)
                 {
-                    PRINTF_FUNC("In Uvp L3N_L31 = %f \n", inputVoltage.L3N_L31);
+                    LOG_INFO("In Uvp L3N_L31 = %f", inputVoltage.L3N_L31);
                     if (_threePhaseUvp[2] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP = YES;
                     else
@@ -616,7 +564,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L1N_L12 >= VIN_MAX_VOLTAGE_IEC)
                 {
-                    PRINTF_FUNC("In Ovp L1N_L12 = %f \n", inputVoltage.L1N_L12);
+                    LOG_INFO("In Ovp L1N_L12 = %f", inputVoltage.L1N_L12);
                     if (_threePhaseOvp[0] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP = YES;
                     else
@@ -636,7 +584,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L2N_L23 >= VIN_MAX_VOLTAGE_IEC)
                 {
-                    PRINTF_FUNC("In Ovp L2N_L23 = %f \n", inputVoltage.L2N_L23);
+                    LOG_INFO("In Ovp L2N_L23 = %f", inputVoltage.L2N_L23);
                     if (_threePhaseOvp[1] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP = YES;
                     else
@@ -656,7 +604,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L3N_L31 >= VIN_MAX_VOLTAGE_IEC)
                 {
-                    PRINTF_FUNC("In Ovp L3N_L31 = %f \n", inputVoltage.L3N_L31);
+                    LOG_INFO("In Ovp L3N_L31 = %f", inputVoltage.L3N_L31);
                     if (_threePhaseOvp[2] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP = YES;
                     else
@@ -678,7 +626,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L1N_L12 >= VIN_MAX_VOLTAGE_UL)
                 {
-                    PRINTF_FUNC("In Ovp L1N_L12 = %f \n", inputVoltage.L1N_L12);
+                    LOG_INFO("In Ovp L1N_L12 = %f", inputVoltage.L1N_L12);
                     if (_threePhaseOvp[0] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP = YES;
                     else
@@ -698,7 +646,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L2N_L23 >= VIN_MAX_VOLTAGE_UL)
                 {
-                    PRINTF_FUNC("In Ovp L2N_L23 = %f \n", inputVoltage.L2N_L23);
+                    LOG_INFO("In Ovp L2N_L23 = %f", inputVoltage.L2N_L23);
                     if (_threePhaseOvp[1] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP = YES;
                     else
@@ -718,7 +666,7 @@ void GetPresentInputVol()
 		    {
                 if (inputVoltage.L3N_L31 >= VIN_MAX_VOLTAGE_UL)
                 {
-                    PRINTF_FUNC("In Ovp L3N_L31 = %f \n", inputVoltage.L3N_L31);
+                    LOG_INFO("In Ovp L3N_L31 = %f", inputVoltage.L3N_L31);
                     if (_threePhaseOvp[2] >= OVP_UVP_CHK_COUNT)
                         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP = YES;
                     else
@@ -791,17 +739,17 @@ void GetPersentOutputVol()
 // 風扇速度
 void GetFanSpeed()
 {
-	//PRINTF_FUNC("Get fan board speed \n");
+	//LOG_INFO("Get fan board speed");
 	if (Query_Fan_Speed(Uart5Fd, Addr.Fan, &fanSpeed) == PASS)
 	{
 		ShmFanModuleData->PresentFan1Speed = fanSpeed.speed[0];
 		ShmFanModuleData->PresentFan2Speed = fanSpeed.speed[1];
 		ShmFanModuleData->PresentFan3Speed = fanSpeed.speed[2];
 		ShmFanModuleData->PresentFan4Speed = fanSpeed.speed[3];
-//		PRINTF_FUNC("SystemFanRotaSpeed_1 = %d \n", fanSpeed.speed[0]);
-//		PRINTF_FUNC("SystemFanRotaSpeed_2 = %d \n", fanSpeed.speed[1]);
-//		PRINTF_FUNC("SystemFanRotaSpeed_3 = %d \n", fanSpeed.speed[2]);
-//		PRINTF_FUNC("SystemFanRotaSpeed_4 = %d \n", fanSpeed.speed[3]);
+//		LOG_INFO("SystemFanRotaSpeed_1 = %d", fanSpeed.speed[0]);
+//		LOG_INFO("SystemFanRotaSpeed_2 = %d", fanSpeed.speed[1]);
+//		LOG_INFO("SystemFanRotaSpeed_3 = %d", fanSpeed.speed[2]);
+//		LOG_INFO("SystemFanRotaSpeed_4 = %d", fanSpeed.speed[3]);
 		// Config_Fan_Speed(Uart5Fd, Addr.Fan, &fanSpeed[0]);
 		//SysInfoData (SystemFanRotaSpeed)
 	}
@@ -831,14 +779,14 @@ void GetRelayOutputStatus()
 
         if(ShmOutputRelayConfirmed[i]->bits.Output_N != LocationRelayResponse[location]->bits.Gun_N)
         {
-            PRINTF_FUNC("Gun %d Get K1K2 N %s at Location %d",
+            LOG_INFO("Gun %d Get K1K2 N %s at Location %d",
                 i + 1, LocationRelayResponse[location]->bits.Gun_N ? "On" : "Off", location + 1);
         }
         ShmOutputRelayConfirmed[i]->bits.Output_N = LocationRelayResponse[location]->bits.Gun_N;
 
         if(ShmOutputRelayConfirmed[i]->bits.Output_P != LocationRelayResponse[location]->bits.Gun_P)
         {
-            PRINTF_FUNC("Gun %d Get K1K2 P %s at Location %d",
+            LOG_INFO("Gun %d Get K1K2 P %s at Location %d",
                 i + 1, LocationRelayResponse[location]->bits.Gun_P ? "On" : "Off", location + 1);
         }
         ShmOutputRelayConfirmed[i]->bits.Output_P = LocationRelayResponse[location]->bits.Gun_P;
@@ -862,7 +810,7 @@ void GetRelayOutputStatus()
 #if 0
             if(LocationRelayResponse[i]->bits.Gun_Parallel_N_P != LocationRelayResponse[i + 1]->bits.Gun_Parallel_N_P)
             {
-                PRINTF_FUNC("Parallel Relay N & P at Location %d is Not Match: %d, %d",
+                LOG_INFO("Parallel Relay N & P at Location %d is Not Match: %d, %d",
                     i + 1, LocationRelayResponse[i]->bits.Gun_Parallel_N_P, LocationRelayResponse[i + 1]->bits.Gun_Parallel_N_P);
             }
 #endif
@@ -870,7 +818,7 @@ void GetRelayOutputStatus()
 
         if((ShmParallelRelayConfirmed->CtrlValue & (1 << i)) != (relayOnOff << i))
         {
-            PRINTF_FUNC("Get Parallel Relay N & P %s at Location %d", relayOnOff ? "On" : "Off", i + 1);
+            LOG_INFO("Get Parallel Relay N & P %s at Location %d", relayOnOff ? "On" : "Off", i + 1);
         }
 
         if(relayOnOff)
@@ -946,7 +894,7 @@ void CheckK1K2RelayOutput(byte index)
         else
             ShmSysConfigAndInfo->SysInfo.BridgeRelayStatus = NO;
     }
-//	PRINTF_FUNC("Check Relay Output. index = %d, RelayKPK2Status = %d, BridgeRelayStatus = %d \n",
+//	LOG_INFO("Check Relay Output. index = %d, RelayKPK2Status = %d, BridgeRelayStatus = %d",
 //			index, _chargingData[index]->RelayKPK2Status, ShmSysConfigAndInfo->SysInfo.BridgeRelayStatus);
 #endif
 }
@@ -970,11 +918,11 @@ void GetGfdAdc()
 //			if (i == 0)
 //			{
 //				_chargingData[i]->GroundFaultStatus = gfd_adc.result_conn1;
-//				PRINTF_FUNC("GFD ******** Result = %d, Step = %d, R = %d, Vol = %d \n",
+//				LOG_INFO("GFD ******** Result = %d, Step = %d, R = %d, Vol = %d",
 //						_chargingData[i]->GroundFaultStatus, gfd_adc.rb_step_1, gfd_adc.Resister_conn1, gfd_adc.voltage_conn1);
 //				if (_chargingData[i]->GroundFaultStatus == GFD_FAIL)
 //				{
-//					PRINTF_FUNC("GFD Fail. index = %d, Step = %d, R = %d, Vol = %d \n",
+//					LOG_INFO("GFD Fail. index = %d, Step = %d, R = %d, Vol = %d",
 //							i, gfd_adc.rb_step_1, gfd_adc.Resister_conn1, gfd_adc.voltage_conn1);
 //				}
 //				else if (_chargingData[i]->GroundFaultStatus == GFD_PASS ||
@@ -982,7 +930,7 @@ void GetGfdAdc()
 //				{
 //					if (_chargingData[i]->GroundFaultStatus == GFD_WARNING)
 //					{
-//						PRINTF_FUNC("GFD Warning. index = %d, Result = %d, R = %d, Vol = %d \n",
+//						LOG_INFO("GFD Warning. index = %d, Result = %d, R = %d, Vol = %d",
 //								i, _chargingData[i]->GroundFaultStatus, gfd_adc.Resister_conn1, gfd_adc.voltage_conn1);
 //					}
 //				}
@@ -992,7 +940,7 @@ void GetGfdAdc()
 //				_chargingData[i]->GroundFaultStatus = gfd_adc.result_conn2;
 //				if (_chargingData[i]->GroundFaultStatus == GFD_FAIL)
 //				{
-//					PRINTF_FUNC("GFD Fail. index = %d, Step = %d, R = %d, Vol = %d \n",
+//					LOG_INFO("GFD Fail. index = %d, Step = %d, R = %d, Vol = %d",
 //							i, gfd_adc.rb_step_2, gfd_adc.Resister_conn2, gfd_adc.voltage_conn2);
 //				}
 //				else if (_chargingData[i]->GroundFaultStatus == GFD_PASS ||
@@ -1000,7 +948,7 @@ void GetGfdAdc()
 //				{
 //					if (_chargingData[i]->GroundFaultStatus == GFD_WARNING)
 //					{
-//						PRINTF_FUNC("GFD Warning. index = %d, Result = %d, R = %d, Vol = %d \n",
+//						LOG_INFO("GFD Warning. index = %d, Result = %d, R = %d, Vol = %d",
 //							i, _chargingData[i]->GroundFaultStatus, gfd_adc.Resister_conn1, gfd_adc.voltage_conn1);
 //					}
 //				}
@@ -1017,19 +965,19 @@ void GetGpioInput()
 		if (gpio_in.AC_MainBreaker == 1)
 		{
 			// AC Main Breaker ON
-			PRINTF_FUNC("RB AC Main Breaker. \n");
+			LOG_INFO("RB AC Main Breaker.");
 		}
 
 		if (gpio_in.SPD == 1)
 		{
 			// SPD (雷擊保護) ON
-			PRINTF_FUNC("RB SPD. \n");
+			LOG_INFO("RB SPD.");
 		}
 
 		if (gpio_in.Door_Open == 1)
 		{
 			// Door Open
-			PRINTF_FUNC("RB Door Open. \n");
+			LOG_INFO("RB Door Open.");
 		}
 
 		if (gpio_in.GFD[0] == 1)
@@ -1045,13 +993,13 @@ void GetGpioInput()
 		if (gpio_in.AC_Drop == 1)
 		{
 			// AC Drop
-			PRINTF_FUNC("RB AC Drop. \n");
+			LOG_INFO("RB AC Drop.");
 		}
 
 		if (gpio_in.Emergency_IO == 1)
 		{
 			// Emergency IO ON
-			PRINTF_FUNC("RB Emergency IO ON. \n");
+			LOG_INFO("RB Emergency IO ON.");
 		}
 
 		if (gpio_in.Button_Emergency_Press == 1)
@@ -1101,8 +1049,8 @@ void GetAuxPower()
 		//ShmSysConfigAndInfo->SysInfo.AuxPower12V = auxPower.voltage[4];
 		//ShmSysConfigAndInfo->SysInfo.AuxPower5V = auxPower.voltage[6];
 		// aux power voltage
-		//PRINTF_FUNC("aux1 = %x, \n", auxPower.voltage[0]);
-		//PRINTF_FUNC("aux2 = %x, \n", auxPower.voltage[1]);
+		//LOG_INFO("aux1 = %x,", auxPower.voltage[0]);
+		//LOG_INFO("aux2 = %x,", auxPower.voltage[1]);
 	}
 }
 
@@ -1127,7 +1075,7 @@ void SetFanModuleSpeed()
 
 		if (Config_Fan_Speed(Uart5Fd, Addr.Fan, &_fanSpeed) == PASS)
 		{
-			//PRINTF_FUNC("successfully Fan\n");
+			//LOG_INFO("successfully Fan");
 		}
 	}
 }
@@ -1146,7 +1094,7 @@ void SetK1K2RelayStatus(byte index)
         {
             if(!ShmOutputRelayConfig[index]->bits.Output_N || !ShmOutputRelayConfig[index]->bits.Output_P)
             {
-                PRINTF_FUNC("Gun %d Set K1K2 Close And Prepare To Charging", index + 1);
+                LOG_INFO("Gun %d Set K1K2 Close And Prepare To Charging", index + 1);
             }
             ShmOutputRelayConfig[index]->bits.Output_N = true;
             ShmOutputRelayConfig[index]->bits.Output_P = true;
@@ -1159,7 +1107,7 @@ void SetK1K2RelayStatus(byte index)
             {
                 if(ShmOutputRelayConfig[index]->bits.Output_N || ShmOutputRelayConfig[index]->bits.Output_P)
                 {
-                    PRINTF_FUNC("Gun %d Set K1K2 Open And Charging Stop", index + 1);
+                    LOG_INFO("Gun %d Set K1K2 Open And Charging Stop", index + 1);
                 }
                 ShmOutputRelayConfig[index]->bits.Output_N = false;
                 ShmOutputRelayConfig[index]->bits.Output_P = false;
@@ -1169,7 +1117,7 @@ void SetK1K2RelayStatus(byte index)
         {
             if(ShmOutputRelayConfig[index]->bits.Output_N || ShmOutputRelayConfig[index]->bits.Output_P)
             {
-                PRINTF_FUNC("Gun %d Set K1K2 Open At Idle Mode", index + 1);
+                LOG_INFO("Gun %d Set K1K2 Open At Idle Mode", index + 1);
             }
             ShmOutputRelayConfig[index]->bits.Output_N = false;
             ShmOutputRelayConfig[index]->bits.Output_P = false;
@@ -1180,7 +1128,7 @@ void SetK1K2RelayStatus(byte index)
         if(ShmOutputRelayConfig[index]->bits.Output_N != LocationRelayCtrl[location]->bits.Gun_N)
         {
 #if 0
-            PRINTF_FUNC("Connector %d Set K1K2 N %s at Location %d",
+            LOG_INFO("Connector %d Set K1K2 N %s at Location %d",
                 index + 1, ShmOutputRelayConfig[index]->bits.Output_N ? "On" : "Off", location + 1);
 #endif
         }
@@ -1189,7 +1137,7 @@ void SetK1K2RelayStatus(byte index)
         if(ShmOutputRelayConfig[index]->bits.Output_P != LocationRelayCtrl[location]->bits.Gun_P)
         {
 #if 0
-            PRINTF_FUNC("Connector %d Set K1K2 P %s at Location %d",
+            LOG_INFO("Connector %d Set K1K2 P %s at Location %d",
                 index + 1, ShmOutputRelayConfig[index]->bits.Output_P ? "On" : "Off", location + 1);
 #endif
         }
@@ -1204,7 +1152,7 @@ void SetParalleRelayStatus()
         if((ShmParallelRelayConfig->CtrlValue & (1 << i)) != (LocationRelayCtrl[i]->bits.Gun_Parallel_N_P << i))
         {
 #if 0
-            PRINTF_FUNC("Set Parallel Relay N & P %s at Location %d",
+            LOG_INFO("Set Parallel Relay N & P %s at Location %d",
                 (ShmParallelRelayConfig->CtrlValue & (1 << i)) ? "On" : "Off", i + 1);
 #endif
         }
@@ -1215,7 +1163,7 @@ void SetParalleRelayStatus()
             if((ShmParallelRelayConfig->CtrlValue & (1 << i)) != (LocationRelayCtrl[i]->bits.Gun_Parallel_P << i))
             {
 #if 0
-                PRINTF_FUNC("Set Parallel Relay P %s at Location %d",
+                LOG_INFO("Set Parallel Relay P %s at Location %d",
                     (ShmParallelRelayConfig->CtrlValue & (1 << i)) ? "On" : "Off", i + 1);
 #endif
             }
@@ -1434,14 +1382,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmSysConfigAndInfo NG\n");
+		LOG_ERROR("shmget ShmSysConfigAndInfo NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("[shmat ShmSysConfigAndInfo NG\n");
+		LOG_ERROR("[shmat ShmSysConfigAndInfo NG");
 		#endif
 		result = FAIL;
 	}
@@ -1449,14 +1397,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmStatusCodeKey, sizeof(struct StatusCodeData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmStatusCodeData NG\n");
+		LOG_ERROR("shmget ShmStatusCodeData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmStatusCodeData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmStatusCodeData NG\n");
+		LOG_ERROR("shmat ShmStatusCodeData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1464,14 +1412,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmFanBdKey, sizeof(struct FanModuleData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmFanModuleData NG\n");
+		LOG_ERROR("shmget ShmFanModuleData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmFanModuleData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmFanModuleData NG\n");
+		LOG_ERROR("shmat ShmFanModuleData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1480,14 +1428,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmRelayBdKey, sizeof(struct RelayModuleData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmRelayModuleData NG\n");
+		LOG_ERROR("shmget ShmRelayModuleData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmRelayModuleData[0] = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmRelayModuleData NG\n");
+		LOG_ERROR("shmat ShmRelayModuleData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1497,14 +1445,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmRelay2BdKey, sizeof(struct RelayModuleData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmRelay2ModuleData NG\n");
+		LOG_ERROR("shmget ShmRelay2ModuleData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmRelayModuleData[1] = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmRelay2ModuleData NG\n");
+		LOG_ERROR("shmat ShmRelay2ModuleData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1514,14 +1462,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmLedBdKey, sizeof(struct LedModuleData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmLedModuleData NG\n");
+		LOG_ERROR("shmget ShmLedModuleData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmLedModuleData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmLedModuleData NG\n");
+		LOG_ERROR("shmat ShmLedModuleData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1530,14 +1478,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmPsuKey, sizeof(struct PsuData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmPsuData NG \n");
+		LOG_ERROR("shmget ShmPsuData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmPsuData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmPsuData NG \n");
+		LOG_ERROR("shmat ShmPsuData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1545,14 +1493,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmOcppModuleKey, sizeof(struct OCPP16Data), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmOCPP16Data NG \n");
+		LOG_ERROR("shmat ShmOCPP16Data NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmOCPP16Data = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmOCPP16Data NG \n");
+		LOG_ERROR("shmat ShmOCPP16Data NG");
 		#endif
 		result = FAIL;
 	}
@@ -1560,14 +1508,14 @@ int InitShareMemory()
     if ((MeterSMId = shmget(SM_ChargerInfoKey, sizeof(ChargerInfoData), 0777)) < 0)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG \n");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
     else if ((ShmChargerInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG \n");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
@@ -1611,7 +1559,7 @@ int InitComPort()
 	if(fd <= 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("Module_InternalComm. InitComPort NG\n");
+		LOG_ERROR("Module_InternalComm. InitComPort NG");
 		#endif
 		if(ShmStatusCodeData!=NULL)
 		{
@@ -1705,7 +1653,7 @@ void Initialization()
 		{
 			if (!FindChargingInfoData(_index, &_chargingData[0]))
 			{
-				DEBUG_ERROR("InternalComm : FindChargingInfoData false \n");
+				LOG_ERROR("InternalComm : FindChargingInfoData false");
 				isPass = false;
 				break;
 			}
@@ -1725,7 +1673,7 @@ void Initialization()
 			{
 				if (!FindAcChargingInfoData(_index, &ac_chargingInfo[0]))
 				{
-					DEBUG_ERROR("EvComm : FindAcChargingInfoData false \n");
+					LOG_ERROR("EvComm : FindAcChargingInfoData false");
 					isPass = false;
 					break;
 				}
@@ -1746,69 +1694,69 @@ bool IsNoneMatchRelayStatus(byte index)
 	{
         if(TempRegRelay[index].relay_event.bits.AC_Contactor != outputRelay[index].relay_event.bits.AC_Contactor)
         {
-            PRINTF_FUNC("[%d]AC Contact Relay none match, need to %s", index,
+            LOG_INFO("[%d]AC Contact Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.AC_Contactor == YES ? "On" : "Off");
         }
         if(TempRegRelay[index].relay_event.bits.CCS_Precharge != outputRelay[index].relay_event.bits.CCS_Precharge)
         {
 #if 0
-            PRINTF_FUNC("[%d]CCS Precharge Relay none match, need to %s", index,
+            LOG_INFO("[%d]CCS Precharge Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.CCS_Precharge == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun1_P != outputRelay[index].relay_event.bits.Gun1_P)
         {
 #if 0
-            PRINTF_FUNC("[%d]SMR1:D+ Relay none match, need to %s", index,
+            LOG_INFO("[%d]SMR1:D+ Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun1_P == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun1_N != outputRelay[index].relay_event.bits.Gun1_N)
         {
 #if 0
-            PRINTF_FUNC("[%d]SMR1:D- Relay none match, need to %s", index,
+            LOG_INFO("[%d]SMR1:D- Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun1_N == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun2_P != outputRelay[index].relay_event.bits.Gun2_P)
         {
 #if 0
-            PRINTF_FUNC("[%d]SMR2:D+ Relay none match, need to %s", index,
+            LOG_INFO("[%d]SMR2:D+ Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun2_P == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun2_N != outputRelay[index].relay_event.bits.Gun2_N)
         {
 #if 0
-            PRINTF_FUNC("[%d]SMR2:D- Relay none match, need to %s", index,
+            LOG_INFO("[%d]SMR2:D- Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun2_N == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun1_Parallel_P != outputRelay[index].relay_event.bits.Gun1_Parallel_P)
         {
 #if 0
-            PRINTF_FUNC("[%d]Parallel:D+ Relay none match, need to %s", index,
+            LOG_INFO("[%d]Parallel:D+ Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun1_Parallel_P == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun1_Parallel_N != outputRelay[index].relay_event.bits.Gun1_Parallel_N)
         {
 #if 0
-            PRINTF_FUNC("[%d]Parallel:D- Relay none match, need to %s", index,
+            LOG_INFO("[%d]Parallel:D- Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun1_Parallel_N == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun2_Parallel_P != outputRelay[index].relay_event.bits.Gun2_Parallel_P)
         {
 #if 0
-            PRINTF_FUNC("[%d]Parallel2:D+ Relay none match, need to %s", index,
+            LOG_INFO("[%d]Parallel2:D+ Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun2_Parallel_P == YES ? "On" : "Off");
 #endif
         }
         if(TempRegRelay[index].relay_event.bits.Gun2_Parallel_N != outputRelay[index].relay_event.bits.Gun2_Parallel_N)
         {
 #if 0
-            PRINTF_FUNC("[%d]Parallel2:D- Relay none match, need to %s", index,
+            LOG_INFO("[%d]Parallel2:D- Relay none match, need to %s", index,
                 outputRelay[index].relay_event.bits.Gun2_Parallel_N == YES ? "On" : "Off");
 #endif
         }
@@ -1849,10 +1797,10 @@ void SetGfdConfig(byte index, byte resister)
 	gfd_config.index = index;
 	gfd_config.state = resister;
 
-	//PRINTF_FUNC("************************GFD Vol = %d, GFD Res = %d \n", gfd_config.reqVol, gfd_config.resister);
+	//LOG_INFO("************************GFD Vol = %d, GFD Res = %d", gfd_config.reqVol, gfd_config.resister);
 	if (Config_Gfd_Value(Uart5Fd, Addr.Relay, &gfd_config) == PASS)
 	{
-//		PRINTF_FUNC("Set reqVol = %f, resister = %d \n",
+//		LOG_INFO("Set reqVol = %f, resister = %d",
 //				gfd_config.reqVol,
 //				gfd_config.resister);
 	}
@@ -1912,9 +1860,9 @@ void CheckOutputPowerOverCarReq(byte index)
 	{
 		if (fireV >= (carV + (carV * 0.1)))
 		{
-			PRINTF_FUNC("[Module_InternalComm]CheckOutputPowerOverCarReq NG : fire = %f, battery = %f \n",
+			LOG_INFO("[Module_InternalComm]CheckOutputPowerOverCarReq NG : fire = %f, battery = %f",
 					_chargingData[index]->FireChargingVoltage, (_chargingData[index]->EvBatterytargetVoltage * 10));
-			DEBUG_ERROR("[Module_InternalComm]CheckOutputPowerOverCarReq NG : fire = %f, battery = %f \n",
+			LOG_INFO("[Module_InternalComm]CheckOutputPowerOverCarReq NG : fire = %f, battery = %f",
 					_chargingData[index]->FireChargingVoltage, (_chargingData[index]->EvBatterytargetVoltage * 10));
 			_chargingData[index]->StopChargeFlag = YES;
 		}
@@ -1940,9 +1888,9 @@ void CheckOutputVolNoneMatchFire(byte index)
 			{
 				if ((GetTimeoutValue(_checkOutputNoneMatchTimer[index]) / 1000) >= 5000)
 				{
-					PRINTF_FUNC("[Module_InternalComm]CheckOutputVolNoneMatchFire NG (%d) : pre = %f, fire = %f \n",
+					LOG_INFO("[Module_InternalComm]CheckOutputVolNoneMatchFire NG (%d) : pre = %f, fire = %f",
 							index, (_chargingData[index]->PresentChargingVoltage * 10), _chargingData[index]->FireChargingVoltage);
-					DEBUG_ERROR("[Module_InternalComm]CheckOutputVolNoneMatchFire NG (%d): pre = %f, fire = %f \n",
+					LOG_INFO("[Module_InternalComm]CheckOutputVolNoneMatchFire NG (%d): pre = %f, fire = %f",
 							index, (_chargingData[index]->PresentChargingVoltage * 10), _chargingData[index]->FireChargingVoltage);
 					_chargingData[index]->StopChargeFlag = YES;
 				}
@@ -1980,7 +1928,7 @@ void CheckRelayWeldingStatus(byte index)
 			else if (_chargingData[index]->Type == _Type_CCS_2)
 				ShmStatusCodeData->FaultCode.FaultEvents.bits.CcsOutputRelayWelding = YES;
 
-			PRINTF_FUNC("CheckRelayWeldingStatus : fail \n");
+			LOG_INFO("CheckRelayWeldingStatus : fail");
 			_chargingData[index]->StopChargeFlag = YES;
 		}
 	}
@@ -2088,7 +2036,7 @@ void GetAcStatus()
 			ShmSysConfigAndInfo->SysConfig.AcMaxChargingCurrent = ShmSysConfigAndInfo->SysConfig.AcRatingCurrent;
 
 		ac_chargingInfo[0]->ConnectorPlugIn = acStatus.CpStatus;
-	//	PRINTF_FUNC("CpStatus = %d \n", acStatus.CpStatus);
+	//	LOG_INFO("CpStatus = %d \n", acStatus.CpStatus);
 	//				printf("CurLimit = %d \n", acStatus.CurLimit);
 	//				printf("PilotVol_P = %d \n", acStatus.PilotVol_P);
 	//				printf("PilotVol_N = %d \n", acStatus.PilotVol_N);
@@ -2104,7 +2052,7 @@ void GetAcStatus()
 	//				ac_chargingInfo[0]->SystemStatus = acStatus.CpStatus;
 	}
 //	else
-//		PRINTF_FUNC("GetAcStatus return fail. \n");
+//		LOG_INFO("GetAcStatus return fail. \n");
 }
 
 void GetAcAlarmCode()
@@ -2182,7 +2130,7 @@ void OcppStartTransation(byte gunIndex)
 	else
 		strcpy((char *)ShmOCPP16Data->StartTransaction[gunIndex].IdTag, (char *)ac_chargingInfo[0]->StartUserId);
 
-	PRINTF_FUNC("AC IdTag = %s \n", ShmOCPP16Data->StartTransaction[gunIndex].IdTag);
+	LOG_INFO("AC IdTag = %s", ShmOCPP16Data->StartTransaction[gunIndex].IdTag);
 	ShmOCPP16Data->CpMsg.bits[gunIndex].StartTransactionReq = YES;
 }
 
@@ -2193,7 +2141,7 @@ void OcppStopTransation(byte gunIndex)
 	else
 		strcpy((char *)ShmOCPP16Data->StopTransaction[gunIndex].IdTag, (char *)ac_chargingInfo[0]->StartUserId);
 
-	PRINTF_FUNC("AC IdTag = %s \n", ShmOCPP16Data->StopTransaction[gunIndex].IdTag);
+	LOG_INFO("AC IdTag = %s", ShmOCPP16Data->StopTransaction[gunIndex].IdTag);
 	ShmOCPP16Data->CpMsg.bits[gunIndex].StopTransactionReq = YES;
 }
 
@@ -2280,7 +2228,7 @@ void AcChargeTypeProcess()
 			{
 				if (ac_chargingInfo[0]->RemoteStartFlag == YES)
 				{
-					PRINTF_FUNC("** AC Remote \n");
+					LOG_INFO("** AC Remote");
 					ac_chargingInfo[0]->RemoteStartFlag = NO;
 					strcpy((char *)ac_chargingInfo[0]->StartUserId, "");
 					ShmSysConfigAndInfo->SysInfo.WaitForPlugit = NO;
@@ -2288,9 +2236,9 @@ void AcChargeTypeProcess()
 				}
 				else if (ShmSysConfigAndInfo->SysInfo.OrderCharging == NO_DEFINE)
 				{
-					PRINTF_FUNC("** UserId = %s \n", ShmSysConfigAndInfo->SysConfig.UserId);
+					LOG_INFO("** UserId = %s", ShmSysConfigAndInfo->SysConfig.UserId);
 					strcpy((char *)ac_chargingInfo[0]->StartUserId, (char *)ShmSysConfigAndInfo->SysConfig.UserId);
-					PRINTF_FUNC("** CardNumber = %s \n", ac_chargingInfo[0]->StartUserId);
+					LOG_INFO("** CardNumber = %s", ac_chargingInfo[0]->StartUserId);
 					strcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, "");
 					ShmSysConfigAndInfo->SysInfo.WaitForPlugit = NO;
 					_status = S_PREPARNING;
@@ -2428,7 +2376,7 @@ int main(void)
 	if(InitShareMemory() == FAIL)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("InitShareMemory NG\n");
+		LOG_ERROR("InitShareMemory NG");
 		#endif
 		if(ShmStatusCodeData!=NULL)
 		{
@@ -2447,7 +2395,7 @@ int main(void)
 
 	if(Uart5Fd < 0)
 	{
-		PRINTF_FUNC("(Internal) open port error. \n");
+	    LOG_ERROR("(Internal) open port error.");
 		return 0;
 	}
 
@@ -2457,12 +2405,12 @@ int main(void)
     if(ShmChargerInfo->Control.SysCtrl.bits.RelayBoardDisable == false)
     {
         if(Config_Relay_Output(Uart5Fd, Addr.DO360_RC1, &outputRelay[0]) != PASS)
-            PRINTF_FUNC("Config_Relay1_Output fail");
+            LOG_INFO("Config_Relay1_Output fail");
 
         if(ShmChargerInfo->Control.SysCtrl.bits.SecondRelayBoardEnable)
         {
             if(Config_Relay_Output(Uart5Fd, Addr.DO360_RC2, &outputRelay[1]) != PASS)
-                PRINTF_FUNC("Config_Relay2_Output fail");
+                LOG_INFO("Config_Relay2_Output fail");
         }
     }
 
@@ -2669,7 +2617,7 @@ int main(void)
                     ShmFanModuleData->SetFan3Speed = TargetSpeed;
                     ShmFanModuleData->SetFan4Speed = TargetSpeed;
 
-                    //PRINTF_FUNC("set fan = %d \n", ShmFanModuleData->SetFan1Speed);
+                    //LOG_INFO("set fan = %d", ShmFanModuleData->SetFan1Speed);
                     SetFanModuleSpeed();
                 }
             }

+ 26 - 77
EVSE/Projects/DO360/Apps/Module_PrimaryComm.c

@@ -31,6 +31,7 @@
 #include	"PrimaryComm.h"
 #include 	<stdbool.h>
 #include    "Config.h"
+#include    "Common.h"
 
 #define ARRAY_SIZE(A)		(sizeof(A) / sizeof(A[0]))
 #define PASS				1
@@ -65,48 +66,6 @@ byte _acStatus = 0;
 byte _acChkCount = 0;
 int _CommFailCount = 0;
 
-void PRINTF_FUNC(char *string, ...);
-
-int StoreLogMsg(const char *fmt, ...);
-#define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-
-int StoreLogMsg(const char *fmt, ...)
-{
-	char Buf[4096+256];
-	char buffer[4096];
-	va_list args;
-	struct timeb  SeqEndTime;
-	struct tm *tm;
-
-	va_start(args, fmt);
-	int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
-	va_end(args);
-
-	memset(Buf,0,sizeof(Buf));
-	ftime(&SeqEndTime);
-	SeqEndTime.time = time(NULL);
-	tm=localtime(&SeqEndTime.time);
-
-	if (ShmSysConfigAndInfo->SysConfig.SwitchDebugFlag == YES)
-	{
-		sprintf(Buf,"%02d:%02d:%02d:%03d - %s",
-			tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm, buffer);
-		printf("%s \n", Buf);
-	}
-	else
-	{
-		sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
-			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
-			buffer,
-			tm->tm_year+1900,tm->tm_mon+1);
-		system(Buf);
-	}
-
-	return rc;
-}
-
 int DiffTimeb(struct timeb ST, struct timeb ET)
 {
 	//return milli-second
@@ -117,16 +76,6 @@ int DiffTimeb(struct timeb ST, struct timeb ET)
 	return (StopTime-StartTime)*1000+ET.millitm-ST.millitm;
 }
 
-void PRINTF_FUNC(char *string, ...)
-{
-	va_list args;
-	char buffer[4096];
-	va_start(args, string);
-	vsnprintf(buffer, sizeof(buffer), string, args);
-	va_end(args);
-
-	DEBUG_INFO("%s \n", buffer);
-}
 //=================================
 // Common routine
 //=================================
@@ -206,14 +155,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo),  0777)) < 0)
     {
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmSysConfigAndInfo NG\n");
+		LOG_ERROR("shmget ShmSysConfigAndInfo NG");
 		#endif
 		result = FAIL;
 	}
     else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
     	#ifdef SystemLogMessage
-    	DEBUG_ERROR("shmat ShmSysConfigAndInfo NG\n");
+    	LOG_ERROR("shmat ShmSysConfigAndInfo NG");
 		#endif
     	result = FAIL;
    	}
@@ -222,14 +171,14 @@ int InitShareMemory()
     if ((MeterSMId = shmget(ShmStatusCodeKey, sizeof(struct StatusCodeData),  0777)) < 0)
     {
 		#ifdef SystemLogMessage
-   		DEBUG_ERROR("shmget ShmStatusCodeData NG\n");
+   		LOG_ERROR("shmget ShmStatusCodeData NG");
 		#endif
    		result = FAIL;
 	}
     else if ((ShmStatusCodeData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
     	#ifdef SystemLogMessage
-    	DEBUG_ERROR("shmat ShmStatusCodeData NG\n");
+    	LOG_ERROR("shmat ShmStatusCodeData NG");
 		#endif
     	result = FAIL;
    	}
@@ -238,14 +187,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmPrimaryMcuKey, sizeof(struct PrimaryMcuData), 0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmPrimaryMcuData NG\n");
+		LOG_ERROR("shmget ShmPrimaryMcuData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmPrimaryMcuData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmPrimaryMcuData NG\n");
+		LOG_ERROR("shmat ShmPrimaryMcuData NG");
 		#endif
 		result = FAIL;
 	}
@@ -253,14 +202,14 @@ int InitShareMemory()
     if((MeterSMId = shmget(SM_ChargerInfoKey, sizeof(ChargerInfoData), 0777)) < 0)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG \n");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
     else if((ShmChargerInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG \n");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
@@ -275,7 +224,7 @@ void GetFwAndHwVersion()
 {
 	if(Query_FW_Ver(Uart1Fd, Addr.IoExtend, &ver) == PASS)
 	{
-		PRINTF_FUNC("s1 = %s \n", ver.Version_FW);
+		LOG_INFO("s1 = %s", ver.Version_FW);
 		strcpy((char *)ShmPrimaryMcuData->version, ver.Version_FW);
 		strcpy((char *) ShmSysConfigAndInfo->SysInfo.CsuPrimFwRev, ver.Version_FW);
 	}
@@ -286,13 +235,13 @@ void GetFwAndHwVersion()
 
 	if (Query_HW_Ver(Uart1Fd, Addr.IoExtend, &ver) == PASS)
 	{
-		PRINTF_FUNC("s2 = %s \n", ver.Version_HW);
+		LOG_INFO("s2 = %s", ver.Version_HW);
 	}
 }
 
 void GetInputGpioStatus()
 {
-	//PRINTF_FUNC("GetInputGpioStatus \n");
+	//LOG_INFO("GetInputGpioStatus");
 	if (Query_Gpio_Input(Uart1Fd, Addr.IoExtend, &gpio_in) == PASS)
 	{
 		if (_acStatus != gpio_in.AC_Connector)
@@ -312,7 +261,7 @@ void GetInputGpioStatus()
                     ShmSysConfigAndInfo->SysInfo.AcContactorStatus = gpio_in.AC_Connector ? 1 : 0;
                     ShmPrimaryMcuData->InputDet.bits.AcContactorDetec = gpio_in.AC_Connector ? 1 : 0;
 				}
-				PRINTF_FUNC("Ac Contactor Status %s", ShmPrimaryMcuData->InputDet.bits.AcContactorDetec > 0 ? "On" : "Off");
+				LOG_INFO("Ac Contactor Status %s", ShmPrimaryMcuData->InputDet.bits.AcContactorDetec > 0 ? "On" : "Off");
 			}
 			else
 				_acChkCount++;
@@ -340,11 +289,11 @@ void GetInputGpioStatus()
 		ShmPrimaryMcuData->InputDet.bits.Button2 = gpio_in.Button[1];
 		ShmPrimaryMcuData->InputDet.bits.EmergencyButton = gpio_in.Emergency_Btn;
 
-		//PRINTF_FUNC("left = %d \n", ShmPrimaryMcuData->InputDet.bits.Button1);
-		//PRINTF_FUNC("right = %d \n", ShmPrimaryMcuData->InputDet.bits.Button2);
-		//PRINTF_FUNC("ShmSysConfigAndInfo->SysInfo.AcContactorStatus = %d \n", ShmSysConfigAndInfo->SysInfo.AcContactorStatus);
+		//LOG_INFO("left = %d", ShmPrimaryMcuData->InputDet.bits.Button1);
+		//LOG_INFO("right = %d", ShmPrimaryMcuData->InputDet.bits.Button2);
+		//LOG_INFO("ShmSysConfigAndInfo->SysInfo.AcContactorStatus = %d", ShmSysConfigAndInfo->SysInfo.AcContactorStatus);
 		//if (ShmPrimaryMcuData->InputDet.bits.AcMainBreakerDetec == YES)
-		//	DEBUG_ERROR("AC Mainbreaker occur. \n");
+		//	LOG_INFO("AC Mainbreaker occur.");
 	}
 }
 
@@ -381,7 +330,7 @@ void SetRtcData()
 
 	ftime(&csuTime);
 	tmCSU = localtime(&csuTime.time);
-//	PRINTF_FUNC("Time : %04d-%02d-%02d %02d:%02d:%02d \n", tmCSU->tm_year + 1900,
+//	LOG_INFO("Time : %04d-%02d-%02d %02d:%02d:%02d", tmCSU->tm_year + 1900,
 //			tmCSU->tm_mon + 1, tmCSU->tm_mday, tmCSU->tm_hour, tmCSU->tm_min,
 //			tmCSU->tm_sec);
 
@@ -407,11 +356,11 @@ void SetRtcData()
 
 	if (Config_Rtc_Data(Uart1Fd, Addr.IoExtend, &rtc) == PASS)
 	{
-		//PRINTF_FUNC("SetRtc sucessfully. \n");
+		//LOG_INFO("SetRtc sucessfully.");
 	}
 	else
 	{
-		//PRINTF_FUNC("SetRtc fail. \n");
+		//LOG_INFO("SetRtc fail.");
 	}
 }
 
@@ -427,7 +376,7 @@ int InitComPort()
 	if(fd<=0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("open 407 Communication port NG \n");
+		LOG_ERROR("open 407 Communication port NG");
 		#endif
 		return -1;
 	}
@@ -458,7 +407,7 @@ int main(void)
 	if(InitShareMemory() == FAIL)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("InitShareMemory NG\n");
+		LOG_ERROR("InitShareMemory NG");
 		#endif
 		if(ShmStatusCodeData!=NULL)
 		{
@@ -468,12 +417,12 @@ int main(void)
 		return 0;
 	}
 	Uart1Fd = InitComPort();
-	PRINTF_FUNC("407 Port id = %d \n", Uart1Fd);
+	LOG_INFO("407 Port id = %d", Uart1Fd);
 
 	if(Uart1Fd < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("InitComPort (Uart1 : AM3352 - STM32) NG");
+		LOG_ERROR("InitComPort (Uart1 : AM3352 - STM32) NG");
 		#endif
 
 		if (ShmStatusCodeData != NULL)
@@ -514,14 +463,14 @@ int main(void)
 
                 if(_CommFailCount >= COMM_FAIL_COUNT)
                 {
-                    PRINTF_FUNC("Primary MCU Communication Fail: %d", _CommFailCount);
+                    LOG_INFO("Primary MCU Communication Fail: %d", _CommFailCount);
                     _CommFailCount = 0;
                 }
             }
             else
             {
                 GetInputGpioStatus();
-                //PRINTF_FUNC("Input Status: %02X %02X", ShmPrimaryMcuData->InputDet.InputDetValue[1], ShmPrimaryMcuData->InputDet.InputDetValue[0]);
+                //LOG_INFO("Input Status: %02X %02X", ShmPrimaryMcuData->InputDet.InputDetValue[1], ShmPrimaryMcuData->InputDet.InputDetValue[0]);
 
                 SetOutputGpio(ShmPrimaryMcuData->OutputDrv.OutputDrvValue[0]);
             }

+ 95 - 198
EVSE/Projects/DO360/Apps/Module_PsuComm.c

@@ -1,6 +1,6 @@
-
-#include 	"Module_PsuComm.h"
-#include    "Config.h"
+#include "Module_PsuComm.h"
+#include "Config.h"
+#include "Common.h"
 
 #define ARRAY_SIZE(A)		(sizeof(A) / sizeof(A[0]))
 #define PASS				1
@@ -110,18 +110,6 @@ GroupOutputConfigInfo PreGroupOutput[MAX_GROUP_QUANTITY];
 unsigned char OutputConfigStep[MAX_GROUP_QUANTITY];
 unsigned char _preOutputConfigStep[MAX_GROUP_QUANTITY];
 
-void PRINTF_FUNC(char *string, ...);
-
-int StoreLogMsg(const char *fmt, ...);
-#define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-#define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-
-void PSU_LOG(char *string, ...);
-
-int PsuLogMsg(const char *fmt, ...);
-#define PSU_DEBUG_INFO(format, args...) PsuLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
-
 unsigned long GetTimeoutValue(struct timeval _sour_time);
 
 unsigned long GetTimeoutValue(struct timeval _sour_time)
@@ -132,97 +120,6 @@ unsigned long GetTimeoutValue(struct timeval _sour_time)
 	return 1000000 * (_end_time.tv_sec - _sour_time.tv_sec) + _end_time.tv_usec - _sour_time.tv_usec;
 }
 
-int StoreLogMsg(const char *fmt, ...)
-{
-	char Buf[4096+256];
-	char buffer[4096];
-	va_list args;
-	struct timeb  SeqEndTime;
-	struct tm *tm;
-
-	va_start(args, fmt);
-	int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
-	va_end(args);
-
-	memset(Buf,0,sizeof(Buf));
-	ftime(&SeqEndTime);
-	SeqEndTime.time = time(NULL);
-	tm=localtime(&SeqEndTime.time);
-
-	if (ShmSysConfigAndInfo->SysConfig.SwitchDebugFlag == YES)
-	{
-		sprintf(Buf,"%02d:%02d:%02d:%03d - %s",
-			tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm, buffer);
-		printf("%s \n", Buf);
-	}
-	else
-	{
-		sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
-			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
-			buffer,
-			tm->tm_year+1900,tm->tm_mon+1);
-		system(Buf);
-	}
-
-	return rc;
-}
-
-int PsuLogMsg(const char *fmt, ...)
-{
-    char Buf[4096+256];
-    char buffer[4096];
-    va_list args;
-    struct timeb  SeqEndTime;
-    struct tm *tm;
-
-    va_start(args, fmt);
-    int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
-    va_end(args);
-
-    memset(Buf,0,sizeof(Buf));
-    ftime(&SeqEndTime);
-    SeqEndTime.time = time(NULL);
-    tm=localtime(&SeqEndTime.time);
-
-    if (ShmSysConfigAndInfo->SysConfig.SwitchDebugFlag == YES)
-    {
-        sprintf(Buf,"%02d:%02d:%02d:%03d - %s",
-            tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm, buffer);
-        printf("%s \n", Buf);
-    }
-    else
-    {
-        sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]PsuGroupingLog",
-            tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
-            buffer,
-            tm->tm_year+1900,tm->tm_mon+1);
-        system(Buf);
-    }
-
-    return rc;
-}
-
-void PRINTF_FUNC(char *string, ...)
-{
-	va_list args;
-	char buffer[4096];
-	va_start(args, string);
-	vsnprintf(buffer, sizeof(buffer), string, args);
-	va_end(args);
-
-	DEBUG_INFO("%s \n", buffer);
-}
-
-void PSU_LOG(char *string, ...)
-{
-    va_list args;
-    char buffer[4096];
-    va_start(args, string);
-    vsnprintf(buffer, sizeof(buffer), string, args);
-    va_end(args);
-
-    PSU_DEBUG_INFO("%s \n", buffer);
-}
 //=================================
 // Common routine
 //=================================
@@ -512,7 +409,7 @@ void GetStatusCallback(byte group, byte SN, byte temp, int alarm)
     {
         ShmPsuPosition->PsuAddressInfo[SN].CheckIn = true;
         ShmPsuPosition->TotalPsuQuantity++;
-        //PRINTF_FUNC("SN = %d At Group %02X", SN, group);
+        //LOG_INFO("SN = %d At Group %02X", SN, group);
     }
 
     if(ShmPsuPosition->TotalPsuQuantity == ShmPsuData->SystemPresentPsuQuantity)
@@ -532,7 +429,7 @@ void GetStatusCallback(byte group, byte SN, byte temp, int alarm)
                     ShmPsuPosition->PsuAddressInfo[index].GIndex = quantity;
                     ShmPsuPosition->GroupLocationInfo[group].PsuSN[quantity] = ShmPsuPosition->PsuAddressInfo[index].Address;
                     ShmPsuPosition->GroupLocationInfo[group].GroupPsuQuantity++;
-                    //PRINTF_FUNC("Psu %d Assign To Group %02X At %d", index, group, ShmPsuPosition->PsuAddressInfo[index].GIndex);
+                    //LOG_INFO("Psu %d Assign To Group %02X At %d", index, group, ShmPsuPosition->PsuAddressInfo[index].GIndex);
                 }
             }
 
@@ -727,7 +624,7 @@ void GetAvailableCapCallback(byte address, short maxVol, short minVol, short max
     UpdateGunAvailableCapability(group);
 
     UpdateSystemAvailable();
-    //PRINTF_FUNC("address = %d, maxVol = %d, minVol = %d, maxCur = %d, totalPow = %d", address, maxVol, minVol, maxCur, totalPow);
+    //LOG_INFO("address = %d, maxVol = %d, minVol = %d, maxCur = %d, totalPow = %d", address, maxVol, minVol, maxCur, totalPow);
 }
 
 // 0x07: PSU_RCmd_ModuleVersion
@@ -750,7 +647,7 @@ void GetFwCallback(byte address, short dcSwVer, short pfcSwVer, short hwVer)
     sprintf((char *)ShmPsuData->PsuVersion[address].FwPrimaryVersion, "DC %d.%02d", (dcSwVer & 0xFF00) >> 8, dcSwVer & 0xFF);
     sprintf((char *)ShmPsuData->PsuVersion[address].FwSecondVersion, "PFC %d.%02d", (pfcSwVer & 0xFF00) >> 8, pfcSwVer & 0xFF);
     sprintf((char *)ShmPsuData->PsuGroup[group].PsuModule[gIndex].FwVersion, "DC %d.%02d", (dcSwVer & 0xFF00) >> 8, dcSwVer & 0xFF);
-    //PRINTF_FUNC("Psu %d %s %s", address, ShmPsuData->PsuVersion[address].FwPrimaryVersion, ShmPsuData->PsuVersion[address].FwSecondVersion);
+    //LOG_INFO("Psu %d %s %s", address, ShmPsuData->PsuVersion[address].FwPrimaryVersion, ShmPsuData->PsuVersion[address].FwSecondVersion);
 }
 
 // no using -- GetInputVoltageCallback
@@ -1047,14 +944,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo),  0777)) < 0)
     {
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmSysConfigAndInfo NG %d");
+		LOG_ERROR("shmget ShmSysConfigAndInfo NG %d");
 		#endif
 		result = FAIL;
 	}
     else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
     	#ifdef SystemLogMessage
-    	DEBUG_ERROR("shmat ShmSysConfigAndInfo NG");
+    	LOG_ERROR("shmat ShmSysConfigAndInfo NG");
 		#endif
     	result = FAIL;
    	 }
@@ -1065,14 +962,14 @@ int InitShareMemory()
    	if ((MeterSMId = shmget(ShmStatusCodeKey, sizeof(struct StatusCodeData),  0777)) < 0)
     {
 		#ifdef SystemLogMessage
-   		DEBUG_ERROR("shmget ShmStatusCodeData NG");
+   		LOG_ERROR("shmget ShmStatusCodeData NG");
 		#endif
    		result = FAIL;
 	}
     else if ((ShmStatusCodeData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
     	#ifdef SystemLogMessage
-    	DEBUG_ERROR("shmat ShmStatusCodeData NG");
+    	LOG_ERROR("shmat ShmStatusCodeData NG");
 		#endif
     	result = FAIL;
    	}
@@ -1083,14 +980,14 @@ int InitShareMemory()
 	if ((MeterSMId = shmget(ShmPsuKey, sizeof(struct PsuData),  0777)) < 0)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmget ShmPsuData NG");
+		LOG_ERROR("shmget ShmPsuData NG");
 		#endif
 		result = FAIL;
 	}
 	else if ((ShmPsuData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("shmat ShmPsuData NG");
+		LOG_ERROR("shmat ShmPsuData NG");
 		#endif
 		result = FAIL;
 	}
@@ -1098,14 +995,14 @@ int InitShareMemory()
     if ((MeterSMId = shmget(SM_ChargerInfoKey, sizeof(ChargerInfoData), 0777)) < 0)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
     else if ((ShmChargerInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
     {
         #ifdef SystemLogMessage
-        DEBUG_ERROR("shmat ChargerInfoData NG");
+        LOG_ERROR("shmat ChargerInfoData NG");
         #endif
         result = FAIL;
     }
@@ -1127,7 +1024,7 @@ void InitialPsuData()
 	ShmPsuData->SystemPresentPsuQuantity = 0;
 	ShmPsuData->SystemAvailablePower = 0;
 
-	PRINTF_FUNC("************ psu Group = %d", ShmPsuData->GroupCount);
+	LOG_INFO("************ psu Group = %d", ShmPsuData->GroupCount);
 	for (byte _groupCount = 0; _groupCount < ShmPsuData->GroupCount; _groupCount++)
 	{
 		ShmPsuData->PsuGroup[_groupCount].GroupPresentPsuQuantity = 0;
@@ -1172,7 +1069,7 @@ void Initialization()
 		{
 			if (!FindChargingInfoData(_index, &chargingInfo[0]))
 			{
-				DEBUG_ERROR("Module_PsuComm : FindChargingInfoData false");
+				LOG_ERROR("Module_PsuComm : FindChargingInfoData false");
 				isPass = false;
 				break;
 			}
@@ -1224,7 +1121,7 @@ void PsuReceiveRecoveryCheck(void)
 
     if(psuTaskCount == 1)
     {
-        PRINTF_FUNC("************ PSU Receive Task Need Recovery ************\n");
+        LOG_INFO("************ PSU Receive Task Need Recovery ************\n");
         InitialCommunication();
 
         psuReceiveRecovery = true;
@@ -1239,7 +1136,7 @@ void ShowGroupMember(unsigned char group)
         {
             for(byte psu = 0; psu < ShmPsuData->PsuGroup[group].GroupPresentPsuQuantity; psu++)
             {
-                PRINTF_FUNC("Group %d - Number = %d, SN = %02X", group + 1, psu,
+                LOG_INFO("Group %d - Number = %d, SN = %02X", group + 1, psu,
                     ShmPsuPosition->GroupLocationInfo[group].PsuSN[psu]);
             }
         }
@@ -1252,11 +1149,11 @@ void ShowPsuVersion(unsigned char group)
     {
         if(ShmPsuPosition->GroupLocationInfo[group].GroupPsuQuantity > 0)
         {
-            PRINTF_FUNC("Group %d PSU Version Info", group + 1);
+            LOG_INFO("Group %d PSU Version Info", group + 1);
             for(int i = 0; i < ShmPsuPosition->GroupLocationInfo[group].GroupPsuQuantity; i++)
             {
                 int psuIndex = ShmPsuPosition->GroupLocationInfo[group].PsuSN[i];
-                PRINTF_FUNC("PSU Primary: %s, Second: %s",
+                LOG_INFO("PSU Primary: %s, Second: %s",
                     ShmPsuData->PsuVersion[psuIndex].FwPrimaryVersion,
                     ShmPsuData->PsuVersion[psuIndex].FwSecondVersion);
             }
@@ -1268,7 +1165,7 @@ void ShowGroupAvailableCurrentPower(unsigned char group)
 {
     if(group < MAX_GROUP_QUANTITY)
     {
-        PRINTF_FUNC("Group %d Available Current = %3d.%dA, Power = %3d.%dkW", group + 1,
+        LOG_INFO("Group %d Available Current = %3d.%dA, Power = %3d.%dkW", group + 1,
             (ShmPsuData->PsuGroup[group].GroupAvailableCurrent / 10), (ShmPsuData->PsuGroup[group].GroupAvailableCurrent % 10),
             (ShmPsuData->PsuGroup[group].GroupAvailablePower / 10), (ShmPsuData->PsuGroup[group].GroupAvailablePower % 10));
     }
@@ -1340,7 +1237,7 @@ void SetPsuGroupToIdle(byte group)
         memset(&ShmGroupCollection[group].PossibleMember, 0x00, sizeof(PsuGroupPartner));
         ShmGroupCollection[group].TargetGroup = 0;
         ShmGroupCollection[group].ReservedTarget = 0;
-        //PRINTF_FUNC("Reset Group[%02X] To Idle", group);
+        //LOG_INFO("Reset Group[%02X] To Idle", group);
     }
 }
 
@@ -1351,7 +1248,7 @@ void SetPsuGroupToMaster(byte group)
     {
         SetPsuGroupRole(group, _GROLE_MASTER);
         ShmGroupCollection[group].TargetGroup = group + 1;
-        //PRINTF_FUNC("Set Group[%02X] As Master To Gun %d", group, group + 1);
+        //LOG_INFO("Set Group[%02X] As Master To Gun %d", group, group + 1);
     }
 }
 
@@ -1366,7 +1263,7 @@ void SetPsuGroupToSlave(byte group, byte target)
         ShmGroupCollection[group].ReservedTarget = 0;
         memset(&ShmGroupCollection[group].PossibleMember, 0x00, sizeof(PsuGroupPartner));
         ShmGroupCollection[group].GroupCtrl.RoleCtrl.SlaveCtrlValue = 0;
-        //PRINTF_FUNC("Set Group[%02X] As Slave To Gun %d", group, target);
+        //LOG_INFO("Set Group[%02X] As Slave To Gun %d", group, target);
     }
 }
 
@@ -1406,7 +1303,7 @@ void PrepareToPowerOff(byte target, PsuGroupPartner *tPartner)
             sprintf(strTemp, " Prepare To Power Of");
         }
         strcat(strMember, strTemp);
-        PRINTF_FUNC(strMember);
+        LOG_INFO("%s", strMember);
     }
 }
 
@@ -1432,7 +1329,7 @@ void PrepareToExtendCapability(byte target, PsuGroupPartner *tPartner)
         char strTemp[32];
         sprintf(strTemp, " Prepare To Attach To Gun %d", target);
         strcat(strMember, strTemp);
-        PRINTF_FUNC(strMember);
+        LOG_INFO("%s", strMember);
     }
 }
 
@@ -1671,7 +1568,7 @@ void AddAvailableMember(unsigned char master)
 
     if(partner.Quantity > 0)
     {
-        PRINTF_FUNC(strMember);
+        LOG_INFO("%s", strMember);
     }
 }
 
@@ -1747,7 +1644,7 @@ void RemoveNonGroupMember(unsigned char master)
 
         if(find)
         {
-            PRINTF_FUNC(strMember);
+            LOG_INFO("%s", strMember);
         }
     }
 }
@@ -1909,7 +1806,7 @@ void IncreaseCurrentByGunLoading(unsigned char group, unsigned short loading, un
 
     need = need > (MaxIncrease - *realIncrease) ? (MaxIncrease - *realIncrease) : need;
 
-    //PRINTF_FUNC("Group [%02X] Target Current %d.%d A, Increase Current: %d.%d A",
+    //LOG_INFO("Group [%02X] Target Current %d.%d A, Increase Current: %d.%d A",
     //    group, (target / 10), (target % 10), (need / 10), (need % 10));
     if(need > 0)
     {
@@ -1932,7 +1829,7 @@ void DecreaseCurrentByGunLoading(unsigned char group, unsigned short loading, un
 
     need = need > (MaxDecrease - *realDecrease) ? (MaxDecrease - *realDecrease) : need;
 
-    //PRINTF_FUNC("Group [%02X] Target Current %d.%d A, Decrease Current: %d.%d A",
+    //LOG_INFO("Group [%02X] Target Current %d.%d A, Decrease Current: %d.%d A",
     //    group, (target / 10), (target % 10), (need / 10), (need % 10));
     if(need > 0)
     {
@@ -2096,7 +1993,7 @@ void UpdateMaxCurrent(unsigned char master, unsigned short current)
         if(time >= EV_MAX_CURRENT_DELAY)
         {
             ShmGroupCollection[master].GroupCtrl.bits.ReachMaxStageCurrent = true;
-            PRINTF_FUNC("Gun %d Reach Max Stage Current", master + 1);
+            LOG_INFO("Gun %d Reach Max Stage Current", master + 1);
         }
     }
 
@@ -2105,7 +2002,7 @@ void UpdateMaxCurrent(unsigned char master, unsigned short current)
     {
         if(ShmGroupCollection[master].GroupCtrl.bits.ReachMaxCurrentDemand)
         {
-            PRINTF_FUNC("Gun %d Max Current Demand Timer Reset", master + 1);
+            LOG_INFO("Gun %d Max Current Demand Timer Reset", master + 1);
         }
         MaxCurrentDemand[master] = current;
         ShmGroupCollection[master].GroupCtrl.bits.ReachMaxCurrentDemand = false;
@@ -2118,7 +2015,7 @@ void UpdateMaxCurrent(unsigned char master, unsigned short current)
         if(time >= EV_MAX_CURRENT_DELAY)
         {
             ShmGroupCollection[master].GroupCtrl.bits.ReachMaxCurrentDemand = true;
-            PRINTF_FUNC("Gun %d Reach Max Current Demand", master + 1);
+            LOG_INFO("Gun %d Reach Max Current Demand", master + 1);
         }
     }
 }
@@ -2164,7 +2061,7 @@ void MasterBalanceCurrent(unsigned char master)
 
     if(time >= BALANCE_CURRENT_INTERVAL)
     {
-        //PRINTF_FUNC("Gun %d Start Balance Current", master + 1);
+        //LOG_INFO("Gun %d Start Balance Current", master + 1);
 
         DecreaseCurrentByGunLoading(master, ShmGroupCollection[master].GunLoading, &grabCurrent, MAX_ADJ_BALANCE_CURRENT);
         for(int i = 0; i < ShmGroupCollection[master].Partner.Quantity; i++)
@@ -2172,7 +2069,7 @@ void MasterBalanceCurrent(unsigned char master)
             slave = ShmGroupCollection[master].Partner.Member[i];
             DecreaseCurrentByGunLoading(slave, ShmGroupCollection[master].GunLoading, &grabCurrent, MAX_ADJ_BALANCE_CURRENT);
         }
-        //PRINTF_FUNC("Gun %d Grab Balance Current %d.%d A", master + 1, (grabCurrent / 10), (grabCurrent % 10));
+        //LOG_INFO("Gun %d Grab Balance Current %d.%d A", master + 1, (grabCurrent / 10), (grabCurrent % 10));
 
         IncreaseCurrentByGunLoading(master, ShmGroupCollection[master].GunLoading, &realBalance, grabCurrent);
         for(int i = 0; i < ShmGroupCollection[master].Partner.Quantity; i++)
@@ -2180,7 +2077,7 @@ void MasterBalanceCurrent(unsigned char master)
             slave = ShmGroupCollection[master].Partner.Member[i];
             IncreaseCurrentByGunLoading(slave, ShmGroupCollection[master].GunLoading, &realBalance, grabCurrent);
         }
-        //PRINTF_FUNC("Gun %d Increase Balance Current %d.%d A", master + 1, (realBalance / 10), (realBalance % 10));
+        //LOG_INFO("Gun %d Increase Balance Current %d.%d A", master + 1, (realBalance / 10), (realBalance % 10));
 
         UpdateMasterPsuGroupLoading(master);
         gettimeofday(&_BalanceCurrent_time[master], NULL);
@@ -2328,7 +2225,7 @@ void MasterReleasePsuGroup(unsigned char master)
         releaseLoading[i] = originalAvailableCurrent > releaseAvailableCurrent ?
             (target * 10000 / (originalAvailableCurrent - releaseAvailableCurrent)) : 0;
 
-        //PRINTF_FUNC("Gun %d Release [%02X], Total Release %d Group, Gun Loading %d.%02d >> %d.%02d", master + 1, slave, ReleaseMember.Quantity,
+        //LOG_INFO("Gun %d Release [%02X], Total Release %d Group, Gun Loading %d.%02d >> %d.%02d", master + 1, slave, ReleaseMember.Quantity,
         //    (originalLoading / 100), (originalLoading % 100),
         //    (releaseLoading[i] / 100), (releaseLoading[i] % 100));
     }
@@ -2346,7 +2243,7 @@ void MasterReleasePsuGroup(unsigned char master)
     if(maxReleaseLoading > 0)
     {
         ShmGroupCollection[releaseTarget].GroupCtrl.bits.SlavePowerOffRequest = true;
-        PRINTF_FUNC("Gun %d Set [%02X] Release(%s), Gun Loading %d.%02d >> %d.%02d",
+        LOG_INFO("Gun %d Set [%02X] Release(%s), Gun Loading %d.%02d >> %d.%02d",
             master + 1, releaseTarget, findOtherInCharging ? "Other In Charging" : "Normal",
             (originalLoading / 100), (originalLoading % 100), (maxReleaseLoading / 100), (maxReleaseLoading % 100));
     }
@@ -2373,7 +2270,7 @@ void CheckReleaseOrExtend(unsigned char master)
             {
                 if(!ShmGroupCollection[master].GroupCtrl.bits.ExtendAvailable)
                 {
-                    PRINTF_FUNC("Gun %d Extend Capability Available", master + 1);
+                    LOG_INFO("Gun %d Extend Capability Available", master + 1);
                     gettimeofday(&_ExtendCapability_time[master], NULL);
                 }
                 ShmGroupCollection[master].GroupCtrl.bits.ExtendAvailable = true;
@@ -2479,7 +2376,7 @@ void UpdatePsuGroupOutputConfig(unsigned char master)
 #if 0
             if(ShmPsuGrouping->GroupOutput[master].GTargetCurrent != current)
             {
-                PRINTF_FUNC("Gun %d Need Minimum Target Current = %d", master + 1, current);
+                LOG_INFO("Gun %d Need Minimum Target Current = %d", master + 1, current);
             }
 #endif
             ShmPsuGrouping->GroupOutput[master].GTargetCurrent = current;
@@ -2506,7 +2403,7 @@ void UpdatePsuGroupOutputConfig(unsigned char master)
 #if 0
                 if(GCTargetCurrent[master] != current)
                 {
-                    PRINTF_FUNC("Gun %d Need Normal Target Current = %d", master + 1, current);
+                    LOG_INFO("Gun %d Need Normal Target Current = %d", master + 1, current);
                 }
 #endif
                 GCTargetCurrent[master] = current;
@@ -2564,7 +2461,7 @@ void UpdatePsuGroupOutputConfig(unsigned char master)
                     if(OutputConfigStep[master] != _preOutputConfigStep[master])
                     {
                         gettimeofday(&_ReachCurrent_time[master], NULL);
-                        PRINTF_FUNC("Gun %d In Balance Mode", master + 1);
+                        LOG_INFO("Gun %d In Balance Mode", master + 1);
                         StableOutputCurrent[master] = (int)chargingInfo[master]->PresentChargingCurrent * 10;
                         ShmGroupCollection[master].GroupCtrl.bits.OutputCurrentStable = false;
                         ShmGroupCollection[master].GroupCtrl.bits.NeedCurrentBalance = false;
@@ -2575,7 +2472,7 @@ void UpdatePsuGroupOutputConfig(unsigned char master)
                         if(IsMasterOutputCurrentStable(master))
                         {
                             ShmGroupCollection[master].GroupCtrl.bits.OutputCurrentStable = true;
-                            PRINTF_FUNC("Gun %d Output Current = %5.1f A Stable", master + 1, chargingInfo[master]->PresentChargingCurrent);
+                            LOG_INFO("Gun %d Output Current = %5.1f A Stable", master + 1, chargingInfo[master]->PresentChargingCurrent);
                         }
                     }
 
@@ -2607,7 +2504,7 @@ void UpdatePsuGroupOutputConfig(unsigned char master)
                 OutputConfigStep[master] = _CURRENT_MODE_DERATING;
                 if(OutputConfigStep[master] != _preOutputConfigStep[master])
                 {
-                    PRINTF_FUNC("Gun %d In Derating Mode", master + 1);
+                    LOG_INFO("Gun %d In Derating Mode", master + 1);
                 }
             }
             _preOutputConfigStep[master] = OutputConfigStep[master];
@@ -2708,7 +2605,7 @@ void SetMemberStartPowerOff(unsigned char master, unsigned char role_condition)
         if(find)
         {
             strcat(strMember, " Power Off");
-            PRINTF_FUNC(strMember);
+            LOG_INFO("%s", strMember);
         }
     }
 }
@@ -2954,7 +2851,7 @@ void ChargingRequestProcess(unsigned char group)
         else
         {
             ShmGroupCollection[group].GroupCtrl.bits.ShareCheckDone = true;
-            PRINTF_FUNC("Gun %d Grab Nothing", group + 1);
+            LOG_INFO("Gun %d Grab Nothing", group + 1);
         }
         ShmGroupCollection[group].GroupCtrl.bits.ShareConfirmed = true;
     }
@@ -2968,7 +2865,7 @@ void ChargingRequestProcess(unsigned char group)
         if(ready || time >= WAIT_GRAB_TIME)
         {
             ShmGroupCollection[group].GroupCtrl.bits.ShareCheckDone = true;
-            PRINTF_FUNC("Gun %d Grab %s", group + 1, ready ? "OK" : "Timeout");
+            LOG_INFO("Gun %d Grab %s", group + 1, ready ? "OK" : "Timeout");
         }
     }
 
@@ -2990,7 +2887,7 @@ void ChargingRequestProcess(unsigned char group)
             gettimeofday(&_ChargingRequest_time[group], NULL);
             SetParallelRelayOnOff(group, YES, _GROLE_MASTER);
             ShmGroupCollection[group].GroupCtrl.bits.ParallelRelayOn = true;
-            PRINTF_FUNC("Gun %d Charging Request Set All Member Parallel Relay On %X -> %X", group + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
+            LOG_INFO("Gun %d Charging Request Set All Member Parallel Relay On %X -> %X", group + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
         }
     }
 
@@ -3005,7 +2902,7 @@ void ChargingRequestProcess(unsigned char group)
         {
             gettimeofday(&_ChargingRequest_time[group], NULL);
             ShmGroupCollection[group].GroupCtrl.bits.ParallelRelayConfirmed = true;
-            PRINTF_FUNC("Gun %d Charging Request Parallel Relay Confirmed %s", group + 1, confirmed ? "OK" : "Timeout");
+            LOG_INFO("Gun %d Charging Request Parallel Relay Confirmed %s", group + 1, confirmed ? "OK" : "Timeout");
         }
     }
 
@@ -3018,7 +2915,7 @@ void ChargingRequestProcess(unsigned char group)
     {
         SetPsuGroupToMaster(group);
         ShmGroupCollection[group].GroupCtrl.RoleCtrl.IdleCtrlValue = 0;
-        PRINTF_FUNC("Gun %d Grouping Completed", group + 1);
+        LOG_INFO("Gun %d Grouping Completed", group + 1);
     }
 }
 
@@ -3036,7 +2933,7 @@ void PsuGroupDeratingProcess(unsigned char master)
         ShmGroupCollection[master].ReAssignAvailableCurrent = ReAssignCurrent;
         ShmGroupCollection[master].GroupCtrl.bits.NeedDerating = false;
 
-        PRINTF_FUNC("Gun %d DeratingConfirmed%s, ReAssignAvailableCurrent = %d.%d A",
+        LOG_INFO("Gun %d DeratingConfirmed%s, ReAssignAvailableCurrent = %d.%d A",
                 master + 1,
                 ShmGroupCollection[master].GroupCtrl.bits.DeratingConfirmed ? " Again" : "",
                 (ReAssignCurrent / 10), (ReAssignCurrent % 10));
@@ -3059,7 +2956,7 @@ void PsuGroupDeratingProcess(unsigned char master)
         {
             gettimeofday(&_PsuGroupDerating_time[master], NULL);
             ShmGroupCollection[master].GroupCtrl.bits.DeratingStart = true;
-            PRINTF_FUNC("Gun %d %s Start Derating%s", master + 1, start ? "Normal" : "Force", bypass ? " (Bypass)" : "");
+            LOG_INFO("Gun %d %s Start Derating%s", master + 1, start ? "Normal" : "Force", bypass ? " (Bypass)" : "");
             SetMemberStartPowerOff(master, _GROLE_PREPARE_SWITCH_OFF);
 
             if(!bypass)
@@ -3085,7 +2982,7 @@ void PsuGroupDeratingProcess(unsigned char master)
             gettimeofday(&_PsuGroupDerating_time[master], NULL);
             SetMemberPowerOffDone(master);
             ShmGroupCollection[master].GroupCtrl.bits.DeratingPowerOffDone = true;
-            PRINTF_FUNC("Gun %d Set Derating Member Power Off %s", master + 1, power_off_ok ? "OK" : "Timeout");
+            LOG_INFO("Gun %d Set Derating Member Power Off %s", master + 1, power_off_ok ? "OK" : "Timeout");
         }
     }
 
@@ -3100,7 +2997,7 @@ void PsuGroupDeratingProcess(unsigned char master)
             gettimeofday(&_PsuGroupDerating_time[master], NULL);
             SetParallelRelayOnOff(master, NO, _GROLE_SWITCH_OFF_OK);
             ShmGroupCollection[master].GroupCtrl.bits.DeratingRelayOff = true;
-            PRINTF_FUNC("Gun %d Set Parallel Relay Off %X -> %X", master + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
+            LOG_INFO("Gun %d Set Parallel Relay Off %X -> %X", master + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
         }
     }
 
@@ -3115,7 +3012,7 @@ void PsuGroupDeratingProcess(unsigned char master)
         {
             gettimeofday(&_PsuGroupDerating_time[master], NULL);
             ShmGroupCollection[master].GroupCtrl.bits.DeratingRelayConfirmed = true;
-            PRINTF_FUNC("Gun %d Parallel Relay Confirmed %s", master + 1, confirmed ? "OK" : "Timeout");
+            LOG_INFO("Gun %d Parallel Relay Confirmed %s", master + 1, confirmed ? "OK" : "Timeout");
         }
     }
 
@@ -3130,7 +3027,7 @@ void PsuGroupDeratingProcess(unsigned char master)
     {
         ShmGroupCollection[master].GroupCtrl.RoleCtrl.DeratingCtrlValue = 0;
         UpdateGunAvailableCapability(master);
-        PRINTF_FUNC("Gun %d Derating Completed", master + 1);
+        LOG_INFO("Gun %d Derating Completed", master + 1);
     }
 }
 
@@ -3157,7 +3054,7 @@ void MasterStopChargingProcess(unsigned char master)
             gettimeofday(&_StopCharging_time[master], NULL);
             SetMemberPowerOffDone(master);
             ShmGroupCollection[master].GroupCtrl.bits.AllPowerOffDone = true;
-            PRINTF_FUNC("Gun %d Set All Member Power Off %s", master + 1, power_off_ok ? "OK" : "Timeout");
+            LOG_INFO("Gun %d Set All Member Power Off %s", master + 1, power_off_ok ? "OK" : "Timeout");
         }
     }
 
@@ -3172,7 +3069,7 @@ void MasterStopChargingProcess(unsigned char master)
             gettimeofday(&_StopCharging_time[master], NULL);
             SetParallelRelayOnOff(master, NO, _GROLE_MASTER);
             ShmGroupCollection[master].GroupCtrl.bits.AllParallelRelayOff = true;
-            PRINTF_FUNC("Gun %d Set All Member Parallel Relay Off %X -> %X", master + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
+            LOG_INFO("Gun %d Set All Member Parallel Relay Off %X -> %X", master + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
         }
     }
 
@@ -3187,7 +3084,7 @@ void MasterStopChargingProcess(unsigned char master)
         {
             gettimeofday(&_StopCharging_time[master], NULL);
             ShmGroupCollection[master].GroupCtrl.bits.AllParallelRelayConfirmed = true;
-            PRINTF_FUNC("Gun %d All Member Parallel Relay Confirmed %s", master + 1, confirmed ? "OK" : "Timeout");
+            LOG_INFO("Gun %d All Member Parallel Relay Confirmed %s", master + 1, confirmed ? "OK" : "Timeout");
         }
     }
 
@@ -3196,7 +3093,7 @@ void MasterStopChargingProcess(unsigned char master)
         // remove all non group member
         RemoveNonGroupMember(master);
         ShmGroupCollection[master].GroupCtrl.bits.AllMemberStopCompleted = true;
-        PRINTF_FUNC("Gun %d All Member Stop Completed", master + 1);
+        LOG_INFO("Gun %d All Member Stop Completed", master + 1);
     }
 
     if(ShmGroupCollection[master].GroupCtrl.bits.AllMemberStopCompleted && !ShmGroupCollection[master].GroupCtrl.bits.StopChargingCompleted)
@@ -3213,7 +3110,7 @@ void MasterStopChargingProcess(unsigned char master)
         ShmGroupCollection[master].GroupCtrl.RoleCtrl.MasterCtrlValue = 0;
         ShmGroupCollection[master].GroupCtrl.RoleCtrl.StopChargingCtrlValue = 0;
         SetPsuGroupToIdle(master);
-        PRINTF_FUNC("Gun %d Stop Charging Completed", master + 1);
+        LOG_INFO("Gun %d Stop Charging Completed", master + 1);
     }
 }
 
@@ -3236,19 +3133,19 @@ void SlaveStopChargingProcess(unsigned char slave)
 
         if(ShmGroupCollection[master].Role == _GROLE_REQUEST_TO_CHARGING)
         {
-            PRINTF_FUNC("Gun %d Need Wait Gun %d Grouping Completed", slave + 1, master + 1);
+            LOG_INFO("Gun %d Need Wait Gun %d Grouping Completed", slave + 1, master + 1);
             gettimeofday(&_CheckSlaveReady_time[slave], NULL);
         }
         else if(ShmGroupCollection[master].Role == _GROLE_MASTER && ShmGroupCollection[master].GroupCtrl.bits.DeratingConfirmed)
         {
-            PRINTF_FUNC("Gun %d Need Wait Gun %d Derating Completed", slave + 1, master + 1);
+            LOG_INFO("Gun %d Need Wait Gun %d Derating Completed", slave + 1, master + 1);
             gettimeofday(&_CheckSlaveReady_time[slave], NULL);
         }
         else
         {
             ShmGroupCollection[slave].GroupCtrl.bits.SlavePowerOffRequest = true;
             ShmGroupCollection[slave].GroupCtrl.bits.WaitSlaveReady = true;
-            PRINTF_FUNC("Gun %d Need Power Off And Request To Charging", slave + 1);
+            LOG_INFO("Gun %d Need Power Off And Request To Charging", slave + 1);
         }
     }
 
@@ -3262,12 +3159,12 @@ void SlaveStopChargingProcess(unsigned char slave)
             if(!(ShmGroupCollection[master].Role == _GROLE_MASTER && !ShmGroupCollection[master].GroupCtrl.bits.DeratingConfirmed))
             {
                 ShmGroupCollection[slave].GroupCtrl.RoleCtrl.SlaveCtrlValue = 0;
-                PRINTF_FUNC("Gun %d Wait Gun %d Timeout", slave + 1);
+                LOG_INFO("Gun %d Wait Gun %d Timeout", slave + 1);
             }
             else
             {
                 ShmGroupCollection[slave].GroupCtrl.bits.WaitSlaveReady = true;
-                PRINTF_FUNC("Gun %d Is Ready", slave + 1);
+                LOG_INFO("Gun %d Is Ready", slave + 1);
                 gettimeofday(&_CheckSlaveReady_time[slave], NULL);
             }
         }
@@ -3368,7 +3265,7 @@ void MasterExtendCapabilityProcess(unsigned char master)
         if(!ShmGroupCollection[master].GroupCtrl.bits.ExtendPrecharge)
         {
             gettimeofday(&_ExtendCapability_time[master], NULL);
-            PRINTF_FUNC("Gun %d Set ExtendPrecharge Voltage %d.%d V", master + 1, (voltage / 10), (voltage % 10));
+            LOG_INFO("Gun %d Set ExtendPrecharge Voltage %d.%d V", master + 1, (voltage / 10), (voltage % 10));
         }
         ShmGroupCollection[master].GroupCtrl.bits.ExtendPrecharge = true;
     }
@@ -3380,7 +3277,7 @@ void MasterExtendCapabilityProcess(unsigned char master)
 
         if(ready || time >= WAIT_PRECHARGE_TIME)
         {
-            PRINTF_FUNC("Gun %d ExtendPrecharge %s", master + 1, ready ? "Ready" : "Timeout");
+            LOG_INFO("Gun %d ExtendPrecharge %s", master + 1, ready ? "Ready" : "Timeout");
             if(ready)
             {
                 gettimeofday(&_ExtendCapability_time[master], NULL);
@@ -3406,7 +3303,7 @@ void MasterExtendCapabilityProcess(unsigned char master)
             gettimeofday(&_ExtendCapability_time[master], NULL);
             SetParallelRelayOnOff(master, YES, _GROLE_PRECHARGE_READY);
             ShmGroupCollection[master].GroupCtrl.bits.ExtendRelayOn = true;
-            PRINTF_FUNC("Gun %d Set Extend Parallel Relay On %X -> %X", master + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
+            LOG_INFO("Gun %d Set Extend Parallel Relay On %X -> %X", master + 1, original, ShmPsuGrouping->ParallelRelayConfig.CtrlValue);
         }
     }
 
@@ -3420,7 +3317,7 @@ void MasterExtendCapabilityProcess(unsigned char master)
         if(time >= WAIT_RELAY_CONFIRMED_TIME)
         {
             ShmGroupCollection[master].GroupCtrl.bits.ExtendRelayConfirmed = true;
-            PRINTF_FUNC("Gun %d Extend Parallel Relay Confirmed %s", master + 1, confirmed ? "OK" : "Timeout");
+            LOG_INFO("Gun %d Extend Parallel Relay Confirmed %s", master + 1, confirmed ? "OK" : "Timeout");
         }
     }
 
@@ -3438,7 +3335,7 @@ void MasterExtendCapabilityProcess(unsigned char master)
         UpdateGunAvailableCapability(master);
         ShmGroupCollection[master].GroupCtrl.bits.ReachMaxStageCurrent = false;
         gettimeofday(&_StageCurrent_time[master], NULL);
-        PRINTF_FUNC("Gun %d Extend Capability Completed", master + 1);
+        LOG_INFO("Gun %d Extend Capability Completed", master + 1);
     }
 }
 
@@ -3465,7 +3362,7 @@ void ShowGunVoltageCurrent(unsigned char master)
 
         if(evseOutputDelay[master] != 0)
         {
-            PRINTF_FUNC("Gun %d Need Voltage: %4d V, Current: %3d A, Output Voltage: %4d.%d V, Current: %3d.%d A, Fire Voltage: %4d V",
+            LOG_INFO("Gun %d Need Voltage: %4d V, Current: %3d A, Output Voltage: %4d.%d V, Current: %3d.%d A, Fire Voltage: %4d V",
                 master + 1, (int)chargingInfo[master]->EvBatterytargetVoltage, (int)chargingInfo[master]->EvBatterytargetCurrent,
                 (voltage / 10), (voltage % 10), (current / 10), (current % 10), fireVoltage / 10);
             evseOutputDelay[master]--;
@@ -3536,7 +3433,7 @@ void PsuGroupControlProcess(void)
                 {
                     if(chargingInfo[group]->SystemStatus == S_CHARGING)
                     {
-                        PRINTF_FUNC("Gun %d Enter Charging Mode", group + 1);
+                        LOG_INFO("Gun %d Enter Charging Mode", group + 1);
                         ShmGroupCollection[group].GroupCtrl.bits.AlreadyInChargingMode = true;
                         ShmGroupCollection[group].GroupCtrl.bits.ReachMaxCurrentDemand = false;
                         ShmGroupCollection[group].GroupCtrl.bits.ReachMaxStageCurrent = false;
@@ -3550,7 +3447,7 @@ void PsuGroupControlProcess(void)
                 {
                     if(!ShmGroupCollection[group].GroupCtrl.bits.StopChargingRequest)
                     {
-                        PRINTF_FUNC("Gun %d SystemStatus(%d) Need Stop Charging", group + 1, chargingInfo[group]->SystemStatus);
+                        LOG_INFO("Gun %d SystemStatus(%d) Need Stop Charging", group + 1, chargingInfo[group]->SystemStatus);
                     }
                     ShmGroupCollection[group].GroupCtrl.bits.StopChargingRequest = true;
                 }
@@ -3568,7 +3465,7 @@ void PsuGroupControlProcess(void)
                             if(available > 0)
                             {
                                 ShmGroupCollection[group].GroupCtrl.bits.MorePowerRequest = true;
-                                PRINTF_FUNC("Gun %d Start Extend Capability", group + 1);
+                                LOG_INFO("Gun %d Start Extend Capability", group + 1);
                             }
                             ShmGroupCollection[group].GroupCtrl.bits.ExtendAvailable = false;
                         }
@@ -3898,7 +3795,7 @@ int main(void)
 	if(InitShareMemory() == FAIL)
 	{
 		#ifdef SystemLogMessage
-		DEBUG_ERROR("InitShareMemory NG");
+		LOG_ERROR("InitShareMemory NG");
 		#endif
 		if(ShmStatusCodeData != NULL)
 		{
@@ -3908,7 +3805,7 @@ int main(void)
 		return 0;
 	}
 
-	PRINTF_FUNC("InitShareMemory OK");
+	LOG_INFO("InitShareMemory OK");
 
 	signal(SIGCHLD, SIG_IGN);
 
@@ -3937,7 +3834,7 @@ int main(void)
 	ShmPsuData->Work_Step = INITIAL_START;
 	isInitialComp = NO;
 
-	PRINTF_FUNC("PSU Work Status = %d", ShmPsuData->Work_Step);
+	LOG_INFO("PSU Work Status = %d", ShmPsuData->Work_Step);
 
 	// initial object
 	Initialization();
@@ -3998,7 +3895,7 @@ int main(void)
 		// 自檢失敗
 		if (ShmPsuData->Work_Step == _NO_WORKING)
 		{
-			PRINTF_FUNC("== PSU == self test fail.");
+			LOG_INFO("== PSU == self test fail.");
 			sleep(5);
 		}
 
@@ -4015,7 +3912,7 @@ int main(void)
 			    if(_PrePsuWorkStep != ShmPsuData->Work_Step)
 			    {
 			        _PrePsuWorkStep = ShmPsuData->Work_Step;
-			        PRINTF_FUNC("== PSU == INITIAL_START");
+			        LOG_INFO("== PSU == INITIAL_START");
 			    }
 
 				sleep(5);
@@ -4033,7 +3930,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == GET_PSU_COUNT");
+                    LOG_INFO("== PSU == GET_PSU_COUNT");
                     gettimeofday(&_PsuWorkStep_time, NULL);
                     gettimeofday(&_cmdSubPriority_time, NULL);
                 }
@@ -4051,14 +3948,14 @@ int main(void)
 				        _TotalModuleCount += ShmPsuData->PsuGroup[index].GroupPresentPsuQuantity;
 				    }
 
-					PRINTF_FUNC("== PSU == indexCount = %d, moduleCount = %d, sysCount = %d",
+					LOG_INFO("== PSU == indexCount = %d, moduleCount = %d, sysCount = %d",
                         ShmPsuData->GroupCount, _TotalModuleCount, ShmPsuData->SystemPresentPsuQuantity);
 
 					// 判斷系統數量與各群數量一致
 					if(_TotalModuleCount == ShmPsuData->SystemPresentPsuQuantity && _TotalModuleCount > 0 &&
 					        time > GET_PSU_COUNT_TIME)
 					{
-						PRINTF_FUNC("Psu Count = %d", _TotalModuleCount);
+						LOG_INFO("Psu Count = %d", _TotalModuleCount);
                         ShmPsuData->Work_Step = Get_PSU_LOCATION;
 					}
 					else
@@ -4081,7 +3978,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == Get_PSU_LOCATION");
+                    LOG_INFO("== PSU == Get_PSU_LOCATION");
 
                     // clean psu location info
                     memset(ShmPsuPosition, 0x00, sizeof(PsuPositionInfoData));
@@ -4120,7 +4017,7 @@ int main(void)
                 }
                 if(ShmPsuPosition->ReInitPsuLocation)
                 {
-                    PRINTF_FUNC("Retry Psu Location Initialization");
+                    LOG_INFO("Retry Psu Location Initialization");
                     ShmPsuData->Work_Step = GET_PSU_COUNT;
                 }
             }
@@ -4130,7 +4027,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == PSU_COUNT_CONFIRM");
+                    LOG_INFO("== PSU == PSU_COUNT_CONFIRM");
 
                     gettimeofday(&_PsuWorkStep_time, NULL);
                     gettimeofday(&_cmdSubPriority_time, NULL);
@@ -4157,8 +4054,8 @@ int main(void)
                         }
                         else
                         {
-                            PRINTF_FUNC("Total PSU = %d, System PSU Quantity = %d", _TotalModuleCount, ShmPsuData->SystemPresentPsuQuantity);
-                            PRINTF_FUNC("PSU Quantity Confirm Fail");
+                            LOG_INFO("Total PSU = %d, System PSU Quantity = %d", _TotalModuleCount, ShmPsuData->SystemPresentPsuQuantity);
+                            LOG_INFO("PSU Quantity Confirm Fail");
 
                             ShmPsuData->Work_Step = GET_PSU_COUNT;
                         }
@@ -4182,7 +4079,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == Get_PSU_VERSION");
+                    LOG_INFO("== PSU == Get_PSU_VERSION");
                     gettimeofday(&_cmdSubPriority_time, NULL);
 
                     // clean version info
@@ -4236,7 +4133,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == GET_SYS_CAP");
+                    LOG_INFO("== PSU == GET_SYS_CAP");
                     gettimeofday(&_PsuWorkStep_time, NULL);
                     gettimeofday(&_cmdSubPriority_time, NULL);
                 }
@@ -4259,7 +4156,7 @@ int main(void)
                         }
 #endif
                         // 判斷系統輸出額定功率與電流
-                        PRINTF_FUNC("SystemAvailableCurrent = %d, SystemAvailablePower = %d",
+                        LOG_INFO("SystemAvailableCurrent = %d, SystemAvailablePower = %d",
                             ShmPsuData->SystemAvailableCurrent, ShmPsuData->SystemAvailablePower);
 
                         ShmPsuData->Work_Step = BOOTING_COMPLETE;
@@ -4284,7 +4181,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == BOOTING_COMPLETE");
+                    LOG_INFO("== PSU == BOOTING_COMPLETE");
                 }
 
 				if(ShmChargerInfo->Control.SysCtrl.bits.SelfTestOK)
@@ -4300,7 +4197,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == _WORK_CHARGING");
+                    LOG_INFO("== PSU == _WORK_CHARGING");
                     gettimeofday(&_PsuWorkStep_time, NULL);
                     gettimeofday(&_cmdSubPriority_time, NULL);
 
@@ -4374,7 +4271,7 @@ int main(void)
                 if(_PrePsuWorkStep != ShmPsuData->Work_Step)
                 {
                     _PrePsuWorkStep = ShmPsuData->Work_Step;
-                    PRINTF_FUNC("== PSU == _INIT_PSU_STATUS");
+                    LOG_INFO("== PSU == _INIT_PSU_STATUS");
                     gettimeofday(&_cmdSubPriority_time, NULL);
                 }
 			    break;

File diff suppressed because it is too large
+ 133 - 134
EVSE/Projects/DO360/Apps/main.c


BIN
EVSE/Projects/DO360/Images/FactoryDefaultConfig.bin


BIN
EVSE/Projects/DO360/Images/ramdisk.gz


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