Quellcode durchsuchen

2019-09-11 / ct_chen

Actions:
1. 手動合併define.h版本差異
2. 依據define.h修改

Files:
1. EVSE/Projects/define.h
2. EVSE/Modularization/WebService.c
   EVSE/rootfs/var/www/set_network.php
   EVSE/rootfs/var/www/set_system.php
   EVSE/rootfs/var/www/set_system_action.php
ct_chen vor 5 Jahren
Ursprung
Commit
fb18007a46

+ 15 - 0
EVSE/Modularization/WebService.c

@@ -300,6 +300,7 @@ int main(int argc, char *argv[]) {
 			json_object *val_obj = NULL;
 			const char *SystemId=NULL;
 			const char *SystemDateTime = NULL;
+			const char *AcPhaseCount = NULL;
 			const char *FactoryConfiguration = NULL;
 			const char *AuthorisationMode = NULL;
 			const char *DefaultLanguage = NULL;
@@ -311,6 +312,9 @@ int main(int argc, char *argv[]) {
 			if( json_object_object_get_ex(jobj, "SystemDateTime", &val_obj) ) {
 				SystemDateTime = json_object_get_string(val_obj);
 			}
+			if( json_object_object_get_ex(jobj, "AcPhaseCount", &val_obj) ) {
+				AcPhaseCount = json_object_get_string(val_obj);
+			}
 			if( json_object_object_get_ex(jobj, "FactoryConfiguration", &val_obj) ) {
 				FactoryConfiguration = json_object_get_string(val_obj);
 			}
@@ -324,12 +328,14 @@ int main(int argc, char *argv[]) {
 				RfidCardNumEndian = json_object_get_string(val_obj);
 			}
 			strcpy((char *)ShmSysConfigAndInfo->SysConfig.SystemId,SystemId);
+			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.AcPhaseCount,AcPhaseCount);
 			strcpy((char *)&ShmSysConfigAndInfo->SysInfo.FactoryConfiguration,FactoryConfiguration);
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.AuthorisationMode,AuthorisationMode);
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.DefaultLanguage,DefaultLanguage);
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.RfidCardNumEndian,RfidCardNumEndian);
 			//Set default configuration
 			strcpy((char *)SysConfig.SystemId, SystemId);
+			strcpy((char *)&SysConfig.AcPhaseCount, AcPhaseCount);
 			strcpy((char *)&SysConfig.AuthorisationMode, AuthorisationMode);
 			strcpy((char *)&SysConfig.DefaultLanguage, DefaultLanguage);
 			strcpy((char *)&SysConfig.RfidCardNumEndian,RfidCardNumEndian);
@@ -629,6 +635,7 @@ int main(int argc, char *argv[]) {
 		sprintf(ShmSysConfigAndInfo->SysConfig.SerialNumber, "SerialNumber");
 		sprintf(ShmSysConfigAndInfo->SysConfig.SystemId, "1234567890");
 		sprintf(ShmSysConfigAndInfo->SysConfig.SystemDateTime, "SystemDateTime");
+		sprintf(&ShmSysConfigAndInfo->SysConfig.AcPhaseCount, "1");
 		sprintf(&ShmSysConfigAndInfo->SysInfo.FactoryConfiguration, "1");
 		sprintf(&ShmSysConfigAndInfo->SysConfig.AuthorisationMode, "1");
 		sprintf(&ShmSysConfigAndInfo->SysConfig.DefaultLanguage, "a");
@@ -824,6 +831,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *SerialNumber;
 		struct json_object *SystemId;
 //		struct json_object *SystemDateTime;
+		struct json_object *AcPhaseCount;
 		struct json_object *FactoryConfiguration;
 		struct json_object *AuthorisationMode;
 		struct json_object *DefaultLanguage;
@@ -915,6 +923,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *WifiIpAddress;
 		struct json_object *WifiSubmaskAddress;
 		struct json_object *WifiGatewayAddress;
+		struct json_object *WifiNetworkConn;
 		struct json_object *TelcomApn;
 		struct json_object *TelcomRssi;
 		struct json_object *TelcomChapPapId;
@@ -925,6 +934,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *TelcomSimStatus;
 		struct json_object *TelcomModemMode;
 		struct json_object *TelcomIpAddress;
+		struct json_object *TelcomNetworkConn;
 		//backend
 		struct json_object *BackendConnTimeout;
 		struct json_object *OfflinePolicy;
@@ -946,6 +956,7 @@ int main(int argc, char *argv[]) {
 		SerialNumber = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.SerialNumber);
 		SystemId = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.SystemId);
 //		SystemDateTime = json_object_new_string(ShmSysConfigAndInfo->SysConfig.SystemDateTime);
+		AcPhaseCount = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysConfig.AcPhaseCount,1);
 		FactoryConfiguration = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysInfo.FactoryConfiguration,1);
 		AuthorisationMode = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysConfig.AuthorisationMode,1);
 		DefaultLanguage = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysConfig.DefaultLanguage,1);
@@ -1192,6 +1203,7 @@ int main(int argc, char *argv[]) {
 		WifiIpAddress = json_object_new_string((char *)ShmSysConfigAndInfo->SysConfig.AthInterface.WifiIpAddress);
 		WifiSubmaskAddress = json_object_new_string((char *)ShmSysConfigAndInfo->SysConfig.AthInterface.WifiSubmaskAddress);
 		WifiGatewayAddress = json_object_new_string((char *)ShmSysConfigAndInfo->SysConfig.AthInterface.WifiGatewayAddress);
+		WifiNetworkConn = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.AthInterface.WifiNetworkConn);
 		TelcomApn = json_object_new_string((char *)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomApn);
 		TelcomRssi = json_object_new_int((int)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomRssi);
 		TelcomChapPapId = json_object_new_string((char *)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomChapPapId);
@@ -1202,6 +1214,7 @@ int main(int argc, char *argv[]) {
 		TelcomSimStatus = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimStatus,1);
 		TelcomModemMode = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomModemMode,1);
 		TelcomIpAddress = json_object_new_string((char *)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomIpAddress);
+		TelcomNetworkConn = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomNetworkConn);
 		//backend
 		BackendConnTimeout = json_object_new_int((int)ShmSysConfigAndInfo->SysConfig.BackendConnTimeout);
 		OfflinePolicy = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysConfig.OfflinePolicy,1);
@@ -1356,6 +1369,7 @@ int main(int argc, char *argv[]) {
 		json_object_object_add(jobj3,"WifiIpAddress",WifiIpAddress);
 		json_object_object_add(jobj3,"WifiSubmaskAddress",WifiSubmaskAddress);
 		json_object_object_add(jobj3,"WifiGatewayAddress",WifiGatewayAddress);
+		json_object_object_add(jobj3,"WifiNetworkConn",WifiNetworkConn);
 		json_object_object_add(jobj3,"TelcomApn",TelcomApn);
 		json_object_object_add(jobj3,"TelcomRssi",TelcomRssi);
 		json_object_object_add(jobj3,"TelcomChapPapId",TelcomChapPapId);
@@ -1365,6 +1379,7 @@ int main(int argc, char *argv[]) {
 		json_object_object_add(jobj3,"TelcomSimStatus",TelcomSimStatus);
 		json_object_object_add(jobj3,"TelcomModemMode",TelcomModemMode);
 		json_object_object_add(jobj3,"TelcomIpAddress",TelcomIpAddress);
+		json_object_object_add(jobj3,"TelcomNetworkConn",TelcomNetworkConn);
 		printf("%s\n", json_object_to_json_string(jobj3));
 		json_object_put(jobj3);
 

+ 309 - 290
EVSE/Projects/define.h

@@ -20,12 +20,12 @@ Primary dtb						0x00300000-0x0037FFFF		512 KB
 Secondary dtb					0x00380000-0x003FFFFF		512 KB
 Primary kernel					0x00400000-0x00DFFFFF		10 MB
 Secondary Kernel 				0x00E00000-0x017FFFFF		10 MB
-Primary root file system		0x01800000-0x029FFFFF		24 MB
-Secondary root file system		0x03000000-0x047FFFFF		24 MB
-Primary user configuration 		0x04800000-0x004DFFFF		6 MB
-Secondary user configuration	0x04E00000-0x0053FFFF		6 MB
-Factory default configuration	0x05400000-0x0059FFFF		6 MB
-Storage							0x05A00000-0x7FFFFFFF		1958 MB
+Primary root file system		0x03000000-0x05FFFFFF		48 MB
+Secondary root file system		0x06000000-0x08FFFFFF		48 MB
+Primary user configuration 		0x09000000-0x095FFFFF		6 MB
+Secondary user configuration	0x09600000-0x09BFFFFF		6 MB
+Factory default configuration	0x09C00000-0x0A1FFFFF		6 MB
+Storage							0x0A200000-0x7FFFFFFF		1886 MB
 */
 
 /**************************************************************************************/
@@ -40,6 +40,7 @@ Storage							0x05A00000-0x7FFFFFFF		1958 MB
 #define CHAdeMO_QUANTITY	1
 #define CCS_QUANTITY		1
 #define GB_QUANTITY			0
+#define AC_QUANTITY			1
 #define PSU_QUANTITY		1
 #define ONE_CONNECTOR_USE	1
 
@@ -67,42 +68,51 @@ Storage							0x05A00000-0x7FFFFFFF		1958 MB
 
 struct EthConfigData
 {
-	unsigned char		EthDhcpClient;			//0: enable,1: disable
-	unsigned char		EthMacAddress[18];		//default: Null
-	unsigned char		EthIpAddress[16];		//Eth0 default:192.168.0.10	,Eth1 default:192.168.1.10
-	unsigned char		EthSubmaskAddress[16];	//Eth0 default:255.255.255.0	,Eth1 default:255.255.255.0
-	unsigned char		EthGatewayAddress[16];	//Eth0 default:192.168.0.254	,Eth1 default:192.168.1.254
+	unsigned char		EthDhcpClient;				//0: enable,1: disable
+	unsigned char		EthMacAddress[18];			//default: Null
+	unsigned char		EthIpAddress[16];			//Eth0 default:192.168.0.10	,Eth1 default:192.168.1.10
+	unsigned char		EthSubmaskAddress[16];		//Eth0 default:255.255.255.0	,Eth1 default:255.255.255.0
+	unsigned char		EthGatewayAddress[16];		//Eth0 default:192.168.0.254	,Eth1 default:192.168.1.254
 };
 
 struct WifiConfigData
 {
-	unsigned char		WifiMode;				//0: disable, 1: Infrastructure client, 2: Infrastructure server, 3: Ad-Hoc
+	unsigned char		WifiMode;					//0: disable, 1: Infrastructure client, 2: Infrastructure server, 3: Ad-Hoc
 	unsigned char		WifiSsid[256];				//default: Null
-	unsigned char WifiPassword[256];			//default: Null
-	int WifiRssi;								//dbm
-	unsigned char WifiDhcpServer;				//0: enable, 1: disable
-	unsigned char WifiDhcpClient;				//0: enable, 1: disable
-	unsigned char WifiMacAddress[18];			//default: Null
-	unsigned char WifiIpAddress[16];			//default:192.168.2.10
-	unsigned char WifiSubmaskAddress[16];		//default:255.255.255.0
-	unsigned char WifiGatewayAddress[16];		//default:192.168.2.254
-	unsigned char WifiNetworkConn;				//0: disconnected, 1: connected
+	unsigned char		WifiPassword[256];			//default: Null
+	int					WifiRssi;					//dbm
+	unsigned char		WifiDhcpServer;				//0: enable, 1: disable
+	unsigned char		WifiDhcpClient;				//0: enable, 1: disable
+	unsigned char		WifiMacAddress[18];			//default: Null
+	unsigned char		WifiIpAddress[16];			//default:192.168.2.10
+	unsigned char		WifiSubmaskAddress[16];		//default:255.255.255.0
+	unsigned char		WifiGatewayAddress[16];		//default:192.168.2.254
+	unsigned char		WifiNetworkConn;			//0: disconnected, 1: connected
 };
 
 struct TeleConfigData
 {
 	unsigned char		TelcomModelName[64];		//default: Null
-	unsigned char TelcomSoftwareVer[64];		//default: Null
-	unsigned char TelcomApn[256];			//default: Null
-	int TelcomRssi;				//dbm
-	unsigned char TelcomChapPapId[256];		//default: Null
-	unsigned char TelcomChapPapPwd[256];	//default: Null
-	unsigned char TelcomModemImei[16];		//default: Null
-	unsigned char TelcomSimImsi[16];			//default: Null
-	unsigned char TelcomSimStatus;//0: no SIM card is found, 1: valid SIM card, 2: invalid SIM card
-	unsigned char TelcomModemMode;//0: No services, 1: CDMA, 2: GSM/GPRS, 3: WCDMA, 4: GSM/WCDMA, 5: TD_SCDMA mode, 6: Unknow
-	unsigned char TelcomIpAddress[16];		//default: Null
-	unsigned char TelcomNetworkConn;		//0: disconnected, 1: connected
+	unsigned char		TelcomSoftwareVer[64];		//default: Null
+	unsigned char		TelcomApn[256];				//default: Null
+	int					TelcomRssi;					//dbm
+	unsigned char		TelcomChapPapId[256];		//default: Null
+	unsigned char		TelcomChapPapPwd[256];		//default: Null
+	unsigned char		TelcomModemImei[16];		//default: Null
+	unsigned char		TelcomSimImsi[16];			//default: Null
+	unsigned char		TelcomSimIccid[20];			//default: Null
+	unsigned char		TelcomSimStatus;			//0: no SIM card is found, 1: valid SIM card, 2: invalid SIM card
+	unsigned char		TelcomModemMode;			//0: No services, 1: CDMA, 2: GSM/GPRS, 3: WCDMA, 4: GSM/WCDMA, 5: TD_SCDMA mode, 6: Unknow
+	unsigned char		TelcomIpAddress[16];		//default: Null
+	unsigned char		TelcomNetworkConn;			//0: disconnected, 1: connected
+};
+
+struct BtConfigData
+{
+	unsigned char		LoginCentralID[64];			//default: Null
+	unsigned char		isLogin;					//0: Central device non-login	1: Central device login
+	unsigned char		isRequestStart;				//0: no action	1: request start charging
+	unsigned char		isRequestStop;				//0: no action	1: request stop charging
 };
 
 struct SysConfigData
@@ -112,33 +122,35 @@ struct SysConfigData
 	unsigned char			SerialNumber[64];			//charger system serial number
 	unsigned char			SystemId[128];				//charger system ID
 	unsigned char			SystemDateTime[32];			//charger system date and time
+	unsigned char			AcPhaseCount;				//AC EVSE power phase quantity,  1: One phase	3: Three phase
 	unsigned char			AuthorisationMode;			//0: Phihong RFID tag,  1: OCPP backend,  2: Phihong backend,  3: free mode
-	unsigned char	   		DefaultLanguage;			//
-	unsigned char   		RfidCardNumEndian;			//0: little endian,  1: big endian
+	unsigned char			DefaultLanguage;			//
+	unsigned char			RfidCardNumEndian;			//0: little endian,  1: big endian
 	unsigned short			AcPlugInTimes;				//0~65535
 	unsigned short			GbPlugInTimes;				//0~65535
 	unsigned short			Ccs1PlugInTime;				//0~65535
 	unsigned short			Ccs2PlugInTimes;			//0~65535
 	unsigned short			ChademoPlugInTimes;			//0~65535
 	/**************Charging***************/
-	unsigned short	   		MaxChargingEnergy;			//0: no limit,	1 ~ 65535	kWh
-	unsigned short	   		MaxChargingPower;			//0: rating value, 1 ~ RATING_POWER	kW"
-	unsigned short	   		MaxChargingCurrent;			//0: rating value, 1 ~ RATING_CURRENT	amp"
-	unsigned short	   		MaxChargingDuration;		//0: no limit,	1 ~ 65535	minutes
-	unsigned char   		PhaseLossPolicy;			//0: charging,  1: stop charging
-	unsigned char   		LocalWhiteCard[10][32];		//Max. card quantity is 10
-	unsigned char 			UserId[32];					//the user use this ID to trigger charging event, it can be RFID card number, OCPP IdTag, etc.
+	unsigned short			MaxChargingEnergy;			//0: no limit,	1 ~ 65535	kWh
+	unsigned short			MaxChargingPower;			//0: rating value, 1 ~ RATING_POWER	kW"
+	unsigned short			MaxChargingCurrent;			//0: rating value, 1 ~ RATING_CURRENT	amp"
+	unsigned short			MaxChargingDuration;		//0: no limit,	1 ~ 65535	minutes
+	unsigned char			PhaseLossPolicy;			//0: charging,  1: stop charging
+	unsigned char			LocalWhiteCard[10][32];		//Max. card quantity is 10
+	unsigned char			UserId[32];					//the user use this ID to trigger charging event, it can be RFID card number, OCPP IdTag, etc.
 	/**************Network***************/
 	unsigned char 			FtpServer[32];				//the ftp server for Phihong server to do data transimission
-	struct EthConfigData 	Eth0Interface;
-	struct EthConfigData 	Eth1Interface;
-	struct WifiConfigData 	AthInterface;
+	struct EthConfigData	Eth0Interface;
+	struct EthConfigData	Eth1Interface;
+	struct WifiConfigData	AthInterface;
 	struct TeleConfigData	TelecomInterface;
+	struct BtConfigData		Bluetooth;
 	/**************Backend***************/
 	unsigned int 			BackendConnTimeout;			//default : 300s
-	unsigned char   		OfflinePolicy;				//0: local list, 1: Phihong RFID tag, 2: free charging, 3: no charging
-	unsigned short	   		OfflineMaxChargeEnergy;		//0: same as MaxChargingEnergy, 1 ~ 65535 kWh
-	unsigned short	   		OfflineMaxChargeDuration;	//0: same as MaxChargeDuration, 1 ~ 65535 minutes
+	unsigned char			OfflinePolicy;				//0: local list, 1: Phihong RFID tag, 2: free charging, 3: no charging
+	unsigned short			OfflineMaxChargeEnergy;		//0: same as MaxChargingEnergy, 1 ~ 65535 kWh
+	unsigned short			OfflineMaxChargeDuration;	//0: same as MaxChargeDuration, 1 ~ 65535 minutes
 	unsigned char 			OcppServerURL[512];			//http: non-secure OCPP 1.5-S, https: secure OCPP 1.5-S, ws: non-secure OCPP 1.6-J, wss: secure OCPP 1.6-J"
 	unsigned char 			ChargeBoxId[128];
 	unsigned int 			Checksum;					//4 bytes checksum
@@ -146,79 +158,86 @@ struct SysConfigData
 
 struct ChargingInfoData
 {
-	unsigned char 		Index;
-	unsigned char 		Type;					// 0 : Chademo, 1 : CCS, 2: GB
-	unsigned char 		type_index;
-	unsigned char		SystemStatus;				//0: Booting, 1: idle, 2: authorizing, 3: preparing, 4: charging, 5: terminating, 6: alarm, 7: fault
-	unsigned char 		PreSystemStatus;
-	unsigned char 		CardNumber[32];
-	float MaximumChargingVoltage;	//0~6553.5 volt
-	float AvailableChargingCurrent;	//0~6553.5 amp
-	float AvailableChargingPower;	//0~6553.5 kW
-	float PresentChargingVoltage;	//0~6553.5 volt
-	float PresentChargingCurrent;		//0~6553.5 amp
-	float PresentChargingPower;		//0~6553.5 kW
-	float PresentChargedEnergy;		//0~6553.5 kWh
-	int PresentChargedDuration;	// second
-	int RemainChargingDuration;	// second
-	float EvBatteryMaxVoltage;		// 0~6553.5 volt
-	float EvBatterytargetVoltage;		// 0~6553.5 volt
-	float EvBatterytargetCurrent; 	//102.3				0~200(A) (unit:1A)
-	int EvBatterySoc;				// 0~100%
-	unsigned char ConnectorPlugIn;			//0: unplug, 1: Plug-in
-	unsigned char GunLocked;				//0: unlocked 1: locked
-	float PilotVoltage;
-	unsigned char PilotState;//1:state A, 2:State B1, 3:State B2, 4:State C, 5:State D, 6:State E, 7:State F, 8: Pilot error
-	unsigned char PilotDuty;					// 0~100%
+	unsigned char			Index;
+	unsigned char			Type;						// 0 : Chademo, 1 : CCS, 2: GB
+	unsigned char			type_index;
+	unsigned char			SystemStatus;				//0: Booting, 1: idle, 2: authorizing, 3: preparing, 4: charging, 5: terminating, 6: alarm, 7: fault
+	unsigned char			PreviousSystemStatus;		// 0: Booting, 1: idle, 2: authorizing, 3: preparing, 4: charging, 5: terminating, 6: alarm, 7: fault
+	unsigned char			CardNumber[32];
+	float					MaximumChargingVoltage;		//0~6553.5 volt
+	float					AvailableChargingCurrent;	//0~6553.5 amp
+	float					AvailableChargingPower;		//0~6553.5 kW
+	float					PresentChargingVoltage;		//0~6553.5 volt
+	float					PresentChargingCurrent;		//0~6553.5 amp
+	float					PresentChargingPower;		//0~6553.5 kW
+	float					PresentChargedEnergy;		//0~6553.5 kWh
+	float					AcChargingVoltage[3];		// 0~6553.5 volt  for AC EVSE
+	float					AcChargingCurrent[3]; 		// 0~6553.5 amp for EVSE
+	int						PresentChargedDuration;		// second
+	int						RemainChargingDuration;		// second
+	float					EvBatteryMaxVoltage;		// 0~6553.5 volt
+	float					EvBatterytargetVoltage;		// 0~6553.5 volt
+	float					EvBatterytargetCurrent; 	//102.3		0~200(A) (unit:1A)
+	int						EvBatterySoc;				// 0~100%
+	unsigned char			ConnectorPlugIn;			//0: unplug, 1: Plug-in
+	unsigned char			GunLocked;					//0: unlocked 1: locked
+	float					PilotVoltage;
+	unsigned char			PilotState;					//1:state A, 2:State B1, 3:State B2, 4:State C, 5:State D, 6:State E, 7:State F, 8: Pilot error
+	unsigned char			PilotDuty;					// 0~100%
+	unsigned char			StartUserId[32];			// This ID is trigger start charging event user by RFID、back-end、BLE.
+	unsigned char			StartDateTime[32];			// Charging cycle start date time
+	unsigned char			StoptDateTime[32];			// Charging cycle stop date time
+	unsigned char			StartMethod;				// 0:Manual,  1:RFID,  2:Back-end,  3:BLE
 	// Connector Temp
-	unsigned char 		ConnectorTemp;			//0x00: -60¢XC  ~  0xFE: 194
+	unsigned char			ConnectorTemp;				//0x00: -60¢XC  ~  0xFE: 194
 	// Charging Status
-	unsigned char 		ChargingStatus;			// for gfd result => 0x00 : None, 0x01 : Can Start Charging, 0x02 : Stop Charging
-	float 				OutputEnergy;			// output energy by per charging
-	unsigned char		RelayK1K2Status;		// 0x00 : open, 0x01 : close
-	int 				TimeoutPid;
-	unsigned char 		MaxChargeEnable;
+	unsigned char			ChargingStatus;				// for gfd result => 0x00 : None, 0x01 : Can Start Charging, 0x02 : Stop Charging
+	float					OutputEnergy;				// output energy by per charging
+	unsigned char			RelayK1K2Status;			// 0x00 : open, 0x01 : close
+	int						TimeoutPid;
+	unsigned char			MaxChargeEnable;
 };
 
 struct SysInfoData
 {
 	/**************System***************/
-	unsigned char BootingStatus;			// 0 : booting, 1 : Initializing Complete.
-	unsigned char FactoryConfiguration;	//0: normal, 1: trigger, charger will return the configuration to factory default if trigger
-	float InputVoltageR;			//0~655.35 volt
-	float InputVoltageS;				//0~655.35 volt
-	float InputVoltageT;				//0~655.35 volt
-	unsigned int SystemFanRotaSpeed;		//0 ~ 65535 RPM
-	unsigned int PsuFanRotaSpeed;			//0 ~ 65535 RPM
-	unsigned char AuxPower5V;				//0 ~ 255 volt
-	unsigned char AuxPower12V;				//0 ~ 255 volt
-	unsigned char AuxPower24V;				//0 ~ 255 volt
-	unsigned char AuxPower48V;				//0 ~ 255 volt
-	unsigned char CsuHwRev[32];			//CSU board hardware version
-	unsigned char CsuBootLoadFwRev[32];	//CSU board bootloader firmware version
-	unsigned char CsuKernelFwRev[32];//CSU board OS kernel firmware version
-	unsigned char CsuRootFsFwRev[32];//CSU board root file system firmware version
-	unsigned char CsuPrimFwRev[32];	//CSU board root file system firmware version
-	unsigned char LcmHwRev[32];	//LCM module hardware version
-	unsigned char LcmFwRev[32];	//LCM module firmware version
-	unsigned char PsuHwRev[32];		//PSU hardware version
-	unsigned char PsuPrimFwRev[32];		//PSU primary firmware version
-	unsigned char PsuSecFwRev[32];			//PSU secondary firmware version
-	unsigned char AuxPwrHwRev[32];		//Aux. power module hardware version
-	unsigned char AuxPwrFwRev[32];		//Aux. power module firmware version
-	unsigned char FanModuleHwRev[32];		//Fan  module hardware version
-	unsigned char FanModuleFwRev[32];		//Fan  module firmware version
-	unsigned char RelayModuleHwRev[32];	//Relay control  module hardware version
-	unsigned char RelayModuleFwRev[32];	//Relay control  module firmware version
-	unsigned char TelcomModemFwRev[32];	//the 3G/4G modem firmware version
-	int SystemAmbientTemp;		// -40 ~ 215 degree C
-	int SystemCriticalTemp;		// -40 ~ 215 degree C
-	int CcsConnectorTemp;		// -40 ~ 215 degree C
-	int PsuAmbientTemp;			// -40 ~ 215 degree C
+	unsigned char			BootingStatus;				// 0 : booting, 1 : Initializing Complete.
+	unsigned char			FactoryConfiguration;		//0: normal, 1: trigger, charger will return the configuration to factory default if trigger
+	float					InputVoltageR;				//0~655.35 volt
+	float					InputVoltageS;				//0~655.35 volt
+	float					InputVoltageT;				//0~655.35 volt
+	unsigned int			SystemFanRotaSpeed;			//0 ~ 65535 RPM
+	unsigned int			PsuFanRotaSpeed;			//0 ~ 65535 RPM
+	unsigned char			AuxPower5V;					//0 ~ 255 volt
+	unsigned char			AuxPower12V;				//0 ~ 255 volt
+	unsigned char			AuxPower24V;				//0 ~ 255 volt
+	unsigned char			AuxPower48V;				//0 ~ 255 volt
+	unsigned char			CsuHwRev[32];				//CSU board hardware version
+	unsigned char			CsuBootLoadFwRev[32];		//CSU board bootloader firmware version
+	unsigned char			CsuKernelFwRev[32];			//CSU board OS kernel firmware version
+	unsigned char			CsuRootFsFwRev[32];			//CSU board root file system firmware version
+	unsigned char			CsuPrimFwRev[32];			//CSU board root file system firmware version
+	unsigned char			LcmHwRev[32];				//LCM module hardware version
+	unsigned char			LcmFwRev[32];				//LCM module firmware version
+	unsigned char			PsuHwRev[32];				//PSU hardware version
+	unsigned char			PsuPrimFwRev[32];			//PSU primary firmware version
+	unsigned char			PsuSecFwRev[32];			//PSU secondary firmware version
+	unsigned char			AuxPwrHwRev[32];			//Aux. power module hardware version
+	unsigned char			AuxPwrFwRev[32];			//Aux. power module firmware version
+	unsigned char			FanModuleHwRev[32];			//Fan  module hardware version
+	unsigned char			FanModuleFwRev[32];			//Fan  module firmware version
+	unsigned char			RelayModuleHwRev[32];		//Relay control  module hardware version
+	unsigned char			RelayModuleFwRev[32];		//Relay control  module firmware version
+	unsigned char			TelcomModemFwRev[32];		//the 3G/4G modem firmware version
+	int						SystemAmbientTemp;			// -40 ~ 215 degree C
+	int						SystemCriticalTemp;			// -40 ~ 215 degree C
+	int						CcsConnectorTemp;			// -40 ~ 215 degree C
+	int						PsuAmbientTemp;				// -40 ~ 215 degree C
 	/**************Charging***************/
 	struct ChargingInfoData 	ChademoChargingData[CHAdeMO_QUANTITY];
 	struct ChargingInfoData 	CcsChargingData[CCS_QUANTITY];
 	struct ChargingInfoData 	GbChargingData[GB_QUANTITY];
+	struct ChargingInfoData 	AcChargingData[AC_QUANTITY];
 	unsigned char CurGunSelected;
 	/**************Network***************/
 	unsigned char 		InternetConn;					//0: disconnected, 1: connected
@@ -313,40 +332,40 @@ struct FaultCodeData
 		struct
 		{
 			//FaultVal[0]
-		    	unsigned char ChademoOutputFuseBlew:1;				//bit 0
+			unsigned char ChademoOutputFuseBlew:1;				//bit 0
 			unsigned char CcsOutputFuseBlew:1;					//bit 1
-			unsigned char GbOutputFuseBlew:1;   					//bit 2
-			unsigned char RcdSelfTestFail:1;						//bit 3
+			unsigned char GbOutputFuseBlew:1;   				//bit 2
+			unsigned char RcdSelfTestFail:1;					//bit 3
 			unsigned char AcInputContactor1Welding:1;			//bit 4
-			unsigned char AcInputContactor1DrivingFault:1;			//bit 5
+			unsigned char AcInputContactor1DrivingFault:1;		//bit 5
 			unsigned char AcInputContactor2Welding:1;			//bit 6
-			unsigned char AcInputContactor2DrivingFault:1;			//bit 7
+			unsigned char AcInputContactor2DrivingFault:1;		//bit 7
 			//FaultVal[1]
 			unsigned char AcOutputRelayWelding:1;				//bit 0
-			unsigned char AcOutputRelayDrivingFault:1;				//bit 1
+			unsigned char AcOutputRelayDrivingFault:1;			//bit 1
 			unsigned char ChademoOutputRelayWelding:1;			//bit 2
-			unsigned char ChademoOutputRelayDrivingFault	:1;		//bit 3
+			unsigned char ChademoOutputRelayDrivingFault:1;		//bit 3
 			unsigned char CcsOutputRelayWelding:1;				//bit 4
 			unsigned char CcsOutputRelayDrivingFault:1;			//bit 5
 			unsigned char GbOutputRelayWelding:1;				//bit 6
-			unsigned char GbOutputRelayDrivingFault:1;				//bit 7
+			unsigned char GbOutputRelayDrivingFault:1;			//bit 7
 			//FaultVal[2]
-			unsigned char AcConnectorTempSensorBroken:1;			//bit 0
+			unsigned char AcConnectorTempSensorBroken:1;		//bit 0
 			unsigned char ChademoConnectorTempSensorBroken:1;	//bit 1
 			unsigned char CcsConnectorTempSensorBroken:1;		//bit 2
-			unsigned char GbConnectorTempSensorBroken:1;			//bit 3
+			unsigned char GbConnectorTempSensorBroken:1;		//bit 3
 			unsigned char WiFiModuleBroken:1;					//bit 4
 			unsigned char Telecom4GModuleBroken:1;				//bit 5
 			unsigned char AuxPowerModuleBroken:1;				//bit 6
 			unsigned char RelayControlModuleBroken :1;			//bit 7
-	             	 //FaultVal[3]
+			//FaultVal[3]
 			unsigned char ChademoConnectorLockFail:1;			//bit 0
-			unsigned char GbConnectorLockFail:1;					//bit 1
-			unsigned char AcConnectorLockFail:1;					//bit 2
+			unsigned char GbConnectorLockFail:1;				//bit 1
+			unsigned char AcConnectorLockFail:1;				//bit 2
 			unsigned char ChademoModuleBroken:1;				//bit 3
 			unsigned char CcsModuleBroken:1;					//bit 4
 			unsigned char GbModuleBroken:1;						//bit 5
-			unsigned char PsuModuleBroken:1;						//bit 6
+			unsigned char PsuModuleBroken:1;					//bit 6
 			unsigned char :1;									//bit 7		reserved
 		}bits;
 	}FaultEvents;
@@ -430,7 +449,7 @@ struct AlarmCodeData
 			//AlarmVal[0]
 		    unsigned char SystemL1InputOVP:1;					//bit 0
 			unsigned char SystemL2InputOVP:1;					//bit 1
-			unsigned char SystemL3InputOVP:1;   					//bit 2
+			unsigned char SystemL3InputOVP:1;   				//bit 2
 			unsigned char SystemL1InputUVP:1;					//bit 3
 			unsigned char SystemL2InputUVP:1;					//bit 4
 			unsigned char SystemL3InputUVP:1;					//bit 5
@@ -447,49 +466,49 @@ struct AlarmCodeData
 			unsigned char SystemAcOutputOVP:1;					//bit 7
 			//AlarmVal[2]
 			unsigned char SystemAcOutputOCP:1;					//bit 0
-			unsigned char SystemChademoOutputOVP:1;			//bit 1
-			unsigned char SystemChademoOutputOCP:1;			//bit 2
+			unsigned char SystemChademoOutputOVP:1;				//bit 1
+			unsigned char SystemChademoOutputOCP:1;				//bit 2
 			unsigned char SystemCcsOutputOVP:1;					//bit 3
 			unsigned char SystemCcsOutputOCP:1;					//bit 4
 			unsigned char SystemGbOutputOVP:1;					//bit 5
 			unsigned char SystemGbOutputOCP:1;					//bit 6
 			unsigned char SystemAmbientOTP :1;					//bit 7
-	             	 //AlarmVal[3]
+			//AlarmVal[3]
 			unsigned char SystemCriticalPointOTP:1;				//bit 0
 			unsigned char PsuAmbientOTP:1;						//bit 1
-			unsigned char PsuCriticalPointOTP:1;					//bit 2
+			unsigned char PsuCriticalPointOTP:1;				//bit 2
 			unsigned char AuxPowerModuleOTP:1;					//bit 3
 			unsigned char RelayBoardOTP:1;						//bit 4
 			unsigned char ChademoConnectorOTP:1;				//bit 5
 			unsigned char CcsConnectorOTP:1;					//bit 6
-			unsigned char GbConnectorOTP:1;					//bit 7
-			 //AlarmVal[4]
+			unsigned char GbConnectorOTP:1;						//bit 7
+			//AlarmVal[4]
 			unsigned char AcConnectorOTP:1;						//bit 0
-			unsigned char RcdTrip:1;								//bit 1
+			unsigned char RcdTrip:1;							//bit 1
 			unsigned char ChademoGfdTrip:1;						//bit 2
 			unsigned char CcsGfdTrip:1;							//bit 3
 			unsigned char GbGfdTrip:1;							//bit 4
-			unsigned char SpdTrip:1;								//bit 5
-			unsigned char MainPowerBreakerTrip:1;					//bit 6
-			unsigned char AuxPowerBreakerTrip:1;					//bit 7
+			unsigned char SpdTrip:1;							//bit 5
+			unsigned char MainPowerBreakerTrip:1;				//bit 6
+			unsigned char AuxPowerBreakerTrip:1;				//bit 7
 			//AlarmVal[5]
 			unsigned char PsuCommunicationFail:1;				//bit 0
 			unsigned char WiFiModuleCommFail:1;					//bit 1
 			unsigned char Telecom4GModuleCommFail:1;			//bit 2
 			unsigned char RfidModuleCommFail:1;					//bit 3
-			unsigned char BluetoothModuleCommFail:1;				//bit 4
+			unsigned char BluetoothModuleCommFail:1;			//bit 4
 			unsigned char LcmModuleCommFail:1;					//bit 5
-			unsigned char AuxPowerModuleCommFail:1;			//bit 6
+			unsigned char AuxPowerModuleCommFail:1;				//bit 6
 			unsigned char RelayBoardCommFail:1;					//bit 7
 			//AlarmVal[6]
 			unsigned char CcsModuleCommFail:1;					//bit 0
-			unsigned char ChademoModuleCommFail:1;			//bit 1
+			unsigned char ChademoModuleCommFail:1;				//bit 1
 			unsigned char GbModuleCommFail:1;					//bit 2
 			unsigned char EmergencyStopTrip:1;					//bit 3
 			unsigned char DoorOpen:1;							//bit 4
 			unsigned char SystemFanDecay:1;						//bit 5
-			unsigned char FailToCreateShareMemory:1;				//bit 6
-			unsigned char CsuInitFailed:1;							//bit 7
+			unsigned char FailToCreateShareMemory:1;			//bit 6
+			unsigned char CsuInitFailed:1;						//bit 7
 			//AlarmVal[7]
 			unsigned char AcGroundfaultFail:1;					//bit 0
 			unsigned char McuSelftestFail:1;					//bit 1
@@ -595,88 +614,88 @@ struct InfoCodeData
 		struct
 		{
 			//InfoVal[0]
-		    	unsigned char NormalStopChargingByUser:1;				//bit 0
+			unsigned char NormalStopChargingByUser:1;				//bit 0
 			unsigned char ChargingTimesUp:1;						//bit 1
-			unsigned char ReplaceSystemAirFilter:1; 					//bit 2
-			unsigned char ReachChademoMaxPluggingTimes:1;		//bit 3
-			unsigned char ReachCcsMaxPluggingTimes:1;			//bit 4
-			unsigned char ReachGbMaxPluggingTimes:1;			//bit 5
+			unsigned char ReplaceSystemAirFilter:1; 				//bit 2
+			unsigned char ReachChademoMaxPluggingTimes:1;			//bit 3
+			unsigned char ReachCcsMaxPluggingTimes:1;				//bit 4
+			unsigned char ReachGbMaxPluggingTimes:1;				//bit 5
 			unsigned char ReachAcMaxPluggingTimes:1;				//bit 6
-			unsigned char CsuFimrwareUpdateFail:1;				//bit 7
+			unsigned char CsuFimrwareUpdateFail:1;					//bit 7
 			//InfoVal[1]
-			unsigned char ChademoModuleFimrwareUpdateFail:1;	//bit 0
+			unsigned char ChademoModuleFimrwareUpdateFail:1;		//bit 0
 			unsigned char CcsModuleFimrwareUpdateFail:1;			//bit 1
-			unsigned char GbModuleFimrwareUpdateFail:1;			//bit 2
+			unsigned char GbModuleFimrwareUpdateFail:1;				//bit 2
 			unsigned char AuxPowerModuleFimrwareUpdateFail:1;		//bit 3
 			unsigned char RelayBoardFimrwareUpdateFail:1;			//bit 4
 			unsigned char LcmModuleFimrwareUpdateFail:1;			//bit 5
 			unsigned char BluetoothModuleFimrwareUpdateFail:1;		//bit 6
 			unsigned char WiFiModuleFimrwareUpdateFail:1;			//bit 7
 			//InfoVal[2]
-			unsigned char Telocom4GModuleFimrwareUpdateFail:1;	//bit 0
-			unsigned char PsuFimrwareUpdateFail:1;				//bit 1
+			unsigned char Telocom4GModuleFimrwareUpdateFail:1;		//bit 0
+			unsigned char PsuFimrwareUpdateFail:1;					//bit 1
 			unsigned char RfidModuleFimrwareUpdateFail:1;			//bit 2
 			unsigned char ConfiguredByUsbFlashDrive:1;				//bit 3
 			unsigned char ConfiguredByBackend:1;					//bit 4
-			unsigned char ConfiguredByWebpage:1;				//bit 5
+			unsigned char ConfiguredByWebpage:1;					//bit 5
 			unsigned char InternetDisconnectViaEthernet:1;			//bit 6
 			unsigned char InternetDisconnectViaWiFi :1;				//bit 7
-	        //InfoVal[3]
+			//InfoVal[3]
 			unsigned char InternetDisconnectVia4Gi:1;				//bit 0
 			unsigned char ApDisconnectViaWiFi:1;					//bit 1
 			unsigned char ApnDisconnectVia4Gi:1;					//bit 2
-			unsigned char :5;									//bit 3~7 reserved
+			unsigned char :5;										//bit 3~7 reserved
 			 //InfoVal[4]
-			unsigned char ChademoEvCommFail:1;				//bit 0
-			unsigned char CcsEvCommFail:1;						//bit 1
-			unsigned char GbEvCommFail:1;						//bit 2
-			unsigned char PilotFault:1;							//bit 3
-			unsigned char ChademoBatteryMalfun:1;				//bit 4
-			unsigned char ChademoNoPermission:1;				//bit 5
+			unsigned char ChademoEvCommFail:1;						//bit 0
+			unsigned char CcsEvCommFail:1;							//bit 1
+			unsigned char GbEvCommFail:1;							//bit 2
+			unsigned char PilotFault:1;								//bit 3
+			unsigned char ChademoBatteryMalfun:1;					//bit 4
+			unsigned char ChademoNoPermission:1;					//bit 5
 			unsigned char ChademoBatteryIncompatibility:1;			//bit 6
-			unsigned char ChademoBatteryOVP:1;					//bit 7
+			unsigned char ChademoBatteryOVP:1;						//bit 7
 			//InfoVal[5]
-			unsigned char ChademoBatteryUVP:1;					//bit 0
-			unsigned char ChademoBatteryOTP:1;					//bit 1
-			unsigned char ChademoBatteryCurrentDiff:1;			//bit 2
-			unsigned char ChademoBatteryVoltageDiff:1;			//bit 3
+			unsigned char ChademoBatteryUVP:1;						//bit 0
+			unsigned char ChademoBatteryOTP:1;						//bit 1
+			unsigned char ChademoBatteryCurrentDiff:1;				//bit 2
+			unsigned char ChademoBatteryVoltageDiff:1;				//bit 3
 			unsigned char ChademoShiftPosition:1;					//bit 4
-			unsigned char ChademoBatteryOtherFault:1;			//bit 5
-			unsigned char ChademoChargingSystemError:1;			//bit 6
-			unsigned char ChademoEvNormalStop:1;				//bit 7
+			unsigned char ChademoBatteryOtherFault:1;				//bit 5
+			unsigned char ChademoChargingSystemError:1;				//bit 6
+			unsigned char ChademoEvNormalStop:1;					//bit 7
 			//InfoVal[6]
-			unsigned char ChademoTempSensorBroken:1;			//bit 0
-			unsigned char ChademoConnectorLockFail:1;			//bit 1
-			unsigned char ChademoD1OnNoReceive:1;				//bit 2
-			unsigned char ChademoBmsKtoJTimeout:1;				//bit 3
-			unsigned char ChademoBmsChargeAllowTimeout:1;		//bit 4
-			unsigned char ChademoWaitGfdTimeout:1;				//bit 5
-			unsigned char ChademoBmsEvRelayTimeout:1;			//bit 6
-			unsigned char ChademoBmsReqCurrentTimeout:1;		//bit 7
+			unsigned char ChademoTempSensorBroken:1;				//bit 0
+			unsigned char ChademoConnectorLockFail:1;				//bit 1
+			unsigned char ChademoD1OnNoReceive:1;					//bit 2
+			unsigned char ChademoBmsKtoJTimeout:1;					//bit 3
+			unsigned char ChademoBmsChargeAllowTimeout:1;			//bit 4
+			unsigned char ChademoWaitGfdTimeout:1;					//bit 5
+			unsigned char ChademoBmsEvRelayTimeout:1;				//bit 6
+			unsigned char ChademoBmsReqCurrentTimeout:1;			//bit 7
 			//InfoVal[7]
-			unsigned char ChademoBmsKtoJOffTimeout :1;			//bit 0
-			unsigned char ChademoBmsEvRelayOffTimeout :1;		//bit 1
-			unsigned char ChademoAdcMoreThan10V :1;				//bit 2
-			unsigned char ChademoAdcMoreThan20V :1;				//bit 3
-			unsigned char ChademoBmsChargeBeforeStop :1;		//bit 4
-			unsigned char ChademoChargerGetNormalStop :1;				//bit 5
-			unsigned char ChademoChargerGetEmergencyStop :1;			//bit 6
-			unsigned char ChademoIsolationResultFail :1;		//bit 7
+			unsigned char ChademoBmsKtoJOffTimeout :1;				//bit 0
+			unsigned char ChademoBmsEvRelayOffTimeout :1;			//bit 1
+			unsigned char ChademoAdcMoreThan10V :1;					//bit 2
+			unsigned char ChademoAdcMoreThan20V :1;					//bit 3
+			unsigned char ChademoBmsChargeBeforeStop :1;			//bit 4
+			unsigned char ChademoChargerGetNormalStop :1;			//bit 5
+			unsigned char ChademoChargerGetEmergencyStop :1;		//bit 6
+			unsigned char ChademoIsolationResultFail :1;			//bit 7
 			//InfoVal[8]
-			unsigned char ChademoMissLinkWithMotherBoard :1;	//bit 0
+			unsigned char ChademoMissLinkWithMotherBoard :1;		//bit 0
 			unsigned char ChademoOutputVolMoreThanLimit :1;			//bit 1
-			unsigned char ChademoReqCurrentMoreThanLimit :1;				//bit 2
-			unsigned char ChademoReCapBmsEqrCurrentExceed :1;				//bit 3
-			unsigned char ChademoChargeRemainCountDown :1;		//bit 4
-			unsigned char :3;				//bit 5 ~ 7 reserved
+			unsigned char ChademoReqCurrentMoreThanLimit :1;		//bit 2
+			unsigned char ChademoReCapBmsEqrCurrentExceed :1;		//bit 3
+			unsigned char ChademoChargeRemainCountDown :1;			//bit 4
+			unsigned char :3;										//bit 5 ~ 7 reserved
 			//InfoVal[9]
-			unsigned char BackendDisconnectedViaEthernet:1;		//bit 0
+			unsigned char BackendDisconnectedViaEthernet:1;			//bit 0
 			unsigned char BackendDisconnectViaWiFi:1;				//bit 1
-			unsigned char BackendDisconnectVia4G:1;				//bit 2
-			unsigned char BackendRemoteStart:1;					//bit 3
-			unsigned char BackendRemoteStop:1;					//bit 4
-			unsigned char BackendRemoteReset:1;					//bit 5
-			unsigned char :2;									//bit 6~7 reserved
+			unsigned char BackendDisconnectVia4G:1;					//bit 2
+			unsigned char BackendRemoteStart:1;						//bit 3
+			unsigned char BackendRemoteStop:1;						//bit 4
+			unsigned char BackendRemoteReset:1;						//bit 5
+			unsigned char :2;										//bit 6~7 reserved
 		}bits;
 	}InfoEvents;
 };
@@ -702,45 +721,45 @@ struct PsuModuleData
 	unsigned char 		FwVersion[12];
 	unsigned char 		SerialNumber[32];
 	unsigned char 		StateMachine;			//0: Identification,  1:Operation,  2: Alarm,  3: Failure,  s4:Upgrade
-	unsigned char 		OutputPowerSwitch;	//0: D.D normal OFF,  1: D.D emergency OFF,  2: D.D ON
-	unsigned short 	FanSpeed_1;			//RPM
-	unsigned short 	FanSpeed_2;			//RPM
-	unsigned short 	FanSpeed_3;			//RPM
-	unsigned short 	FanSpeed_4;			//RPM
-	unsigned short 	InputVoltage_Type;	//0x00 = Line to Line Vol, 0x01 = Line to Neutral Vol
-	unsigned short 	InputVoltageL1;		//abcd=abc.d volt
-	unsigned short 	InputVoltageL2;		//abcd=abc.d volt
-	unsigned short 	InputVoltageL3;		//abcd=abc.d volt
-	unsigned short 	InputCurrentL1;		//abcd=abc.d amp
-	unsigned short 	InputCurrentL2;		//abcd=abc.d amp
-	unsigned short 	InputCurrentL3;		//abcd=abc.d amp
-	unsigned short 	PresentOutputVoltage;	//abcd=abc.d volt
-	unsigned short 	PresentOutputCurrent;	//abcd=abc.d amp
-	unsigned short 	AvailableCurrent;		//abcd=abc.d amp
-	unsigned int 		AvailablePower;		//Watt
+	unsigned char 		OutputPowerSwitch;		//0: D.D normal OFF,  1: D.D emergency OFF,  2: D.D ON
+	unsigned short 		FanSpeed_1;				//RPM
+	unsigned short 		FanSpeed_2;				//RPM
+	unsigned short 		FanSpeed_3;				//RPM
+	unsigned short 		FanSpeed_4;				//RPM
+	unsigned short 		InputVoltage_Type;		//0x00 = Line to Line Vol, 0x01 = Line to Neutral Vol
+	unsigned short 		InputVoltageL1;			//abcd=abc.d volt
+	unsigned short 		InputVoltageL2;			//abcd=abc.d volt
+	unsigned short 		InputVoltageL3;			//abcd=abc.d volt
+	unsigned short 		InputCurrentL1;			//abcd=abc.d amp
+	unsigned short 		InputCurrentL2;			//abcd=abc.d amp
+	unsigned short 		InputCurrentL3;			//abcd=abc.d amp
+	unsigned short 		PresentOutputVoltage;	//abcd=abc.d volt
+	unsigned short 		PresentOutputCurrent;	//abcd=abc.d amp
+	unsigned short 		AvailableCurrent;		//abcd=abc.d amp
+	unsigned int 		AvailablePower;			//Watt
 	unsigned char 		CriticalTemp1;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
 	unsigned char 		CriticalTemp2;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
 	unsigned char 		CriticalTemp3;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
-	unsigned char 		ExletTemp;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
+	unsigned char 		ExletTemp;				//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
 	unsigned char 		InletTemp_1;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
 	unsigned char 		InletTemp_2;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
-	unsigned char 		InletTemp;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
-	unsigned char 		OutletTemp;			//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
-	unsigned int 		AlarmCode;			//
-	unsigned int 		FaultCode;			//
+	unsigned char 		InletTemp;				//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
+	unsigned char 		OutletTemp;				//0x00: -60¢XC  ~  0xFE: 194¢XC, resolution: 1¢XC, offset: -60¢XC, 0xFF: invalid
+	unsigned int 		AlarmCode;				//
+	unsigned int 		FaultCode;				//
 };
 
 /*Following are the information for each PSU Group*/
 struct PsuGroupData
 {
 	unsigned char 			GroupPresentPsuQuantity;
-	unsigned char 			GroupOutputPowerSwitch;		//0: D.D normal OFF,  1: D.D emergency OFF,  2: D.D ON
-	unsigned short 		GroupTargetOutputVoltage;		//abcd=abc.d volt
-	unsigned short 		GroupTargetOutputCurrent;		//abcd=abc.d amp
-	unsigned short 		GroupAvailableCurrent;			//abcd=abc.d amp
+	unsigned char 			GroupOutputPowerSwitch;			//0: D.D normal OFF,  1: D.D emergency OFF,  2: D.D ON
+	unsigned short 			GroupTargetOutputVoltage;		//abcd=abc.d volt
+	unsigned short 			GroupTargetOutputCurrent;		//abcd=abc.d amp
+	unsigned short 			GroupAvailableCurrent;			//abcd=abc.d amp
 	unsigned int 			GroupAvailablePower;			//Watt
-	unsigned short 		GroupPresentOutputVoltage; 	//abcd=abc.d volt
-	unsigned short 		GroupPresentOutputCurrent;		//abcd=abc.d Amps
+	unsigned short 			GroupPresentOutputVoltage; 		//abcd=abc.d volt
+	unsigned short 			GroupPresentOutputCurrent;		//abcd=abc.d Amps
 	struct PsuModuleData 	PsuModule[MAX_PSU_QUANTITY];
 };
 
@@ -759,96 +778,96 @@ struct PsuData
 struct CHAdeMOEvData
 {
 	unsigned char  SupportDynamicControl;	//110.0
-										//					bit0=1:supported
+											//					bit0=1:supported
 	unsigned char  SupportHighCurrent;		//110.0
-										//					bit1=1:supported
+											//					bit1=1:supported
 	unsigned char  MiniChargeCurrent;		//100.0				0~200(A) (unit:1A)
-										//					0x00: request for current equivalent to 1.5kW
-										//					0x01: no request
-										//					0x02: request of 1A and following are the same rule
+											//					0x00: request for current equivalent to 1.5kW
+											//					0x01: no request
+											//					0x02: request of 1A and following are the same rule
 	unsigned short MaxiBatteryVoltage;		//100.5,100.4 			0~600(V) (unit:1V)
 	unsigned short MaxiChargingTime;			//101.2,101.1			10(sec.)~255(min.)	(Unit:sec)
-										//					Set 0xFF to 101.1 (Unit: 10sec) in case 101.2 (Unit: 1min) is used
+											//					Set 0xFF to 101.1 (Unit: 10sec) in case 101.2 (Unit: 1min) is used
 	unsigned char  EstimatChargingTime;		//101.3				0~254(min.)	(Unit:sec)
-										//					Display Only
-	unsigned short TotalBatteryCapacity;		//101.6,101.5 			0.1~6553.5(kWh)	(unit:0.1 kWh)
+											//					Display Only
+	unsigned short TotalBatteryCapacity;	//101.6,101.5 			0.1~6553.5(kWh)	(unit:0.1 kWh)
 	unsigned char  ProtocolVersion;			//102.0				0~255
-										//					0x02: CHAdeMO specification ver.1.2
-	unsigned short TargetBatteryVoltage;		//102.2,102.1 			0~600(V) (unit:1V)
+											//					0x02: CHAdeMO specification ver.1.2
+	unsigned short TargetBatteryVoltage;	//102.2,102.1 			0~600(V) (unit:1V)
 	unsigned short ChargingCurrentRequest;	//102.3				0~200(A) (unit:1A)
-										//110.2,110.1 			0~1023(A) (unit:1A)
-	unsigned char  BatteryAlarm;				//102.4				>0:alarm
-										//					bit0=1:Battery overvoltage
-										//					bit1=1:Battery undervoltage
-										//					bit2=1:Battery current deviation error
-										//					bit3=1:High battery temperature
-										//					bit4=1:Battery voltage deviation error
+											//110.2,110.1 			0~1023(A) (unit:1A)
+	unsigned char  BatteryAlarm;			//102.4				>0:alarm
+											//					bit0=1:Battery overvoltage
+											//					bit1=1:Battery undervoltage
+											//					bit2=1:Battery current deviation error
+											//					bit3=1:High battery temperature
+											//					bit4=1:Battery voltage deviation error
 	unsigned char  EvDetection;				//102.5
-										//					bit0=0:Vehicle charging disabled,	(stop charging)
-										//					bit0=1:Vehicle charging enabled,
-										//					bit1=0:¡§Parking¡¨ position
-										//					bit1=1:other position				(stop charging)
-										//					bit2=0:Charging system normal
-										//					bit2=1:Charging system error		(stop charging)
-										//					bit3=0:EV contactor close or during welding detection
-										//					bit3=1:EV contactor open or termination of welding detection (stop charging)
-										//					bit4=0:No stop request before charging
-										//					bit4=1:Normal stop request before charging	(stop charging)
-	unsigned char  SOC;					//102.6				0~100(%) (unit:%)
-										//					Display Only
+											//					bit0=0:Vehicle charging disabled,	(stop charging)
+											//					bit0=1:Vehicle charging enabled,
+											//					bit1=0:¡§Parking¡¨ position
+											//					bit1=1:other position				(stop charging)
+											//					bit2=0:Charging system normal
+											//					bit2=1:Charging system error		(stop charging)
+											//					bit3=0:EV contactor close or during welding detection
+											//					bit3=1:EV contactor open or termination of welding detection (stop charging)
+											//					bit4=0:No stop request before charging
+											//					bit4=1:Normal stop request before charging	(stop charging)
+	unsigned char  SOC;						//102.6				0~100(%) (unit:%)
+											//					Display Only
 	unsigned char  Communicating;			//					it is true if receive EV CAN message within every 1500ms
 };
 
 struct CHAdeMOEvseData
 {
 	unsigned char 	SelfTest_Comp;
-	unsigned char	version[16];									//Chademo firmware version
+	unsigned char	version[16];			//Chademo firmware version
 	unsigned char  SupportDynamicControl;	//118.0
-										//					bit0=1:supported
+											//					bit0=1:supported
 	unsigned char  SupportHighCurrent;		//118.0
-										//					bit1=1:supported
+											//					bit1=1:supported
 	unsigned short  AvailableOutputVoltage;	//108.2,108.1 			0~600(V) (unit:1V)
 	unsigned short  AvailableOutputCurrent;	//108.3				0~255(A) (unit:1A)
-										//118.2,118.1 			0~1023(A) (unit:1A)
-	unsigned short  ThresholdVoltage;			//108.5,108.4 			0~600(V) (unit:1V)
+											//118.2,118.1 			0~1023(A) (unit:1A)
+	unsigned short  ThresholdVoltage;		//108.5,108.4 			0~600(V) (unit:1V)
 	unsigned char   ConnectorTemperatureP;	//108.6				-40~215(degC) (unit:degC) //value 0=-40	[NISSAN customized]
 	unsigned char   ConnectorTemperatureN;	//108.7				-40~215(degC) (unit:degC) //value 0=-40	[NISSAN customized]
-	unsigned char   ProtocolVersion;			//109.0				0~255
-										//					0x00: CHAdeMO specification 0.9 and earlier
-										//					0x01: CHAdeMO specification 0.9 and 0.9.1
-										//					0x02: CHAdeMO specification 1.0.0, 1.0.1, 1.1 and 1.2
-	unsigned short  PresentOutputVoltage;		//109.2,109.1	 		0~600(V) (unit:1V)
-	unsigned short   PresentOutputCurrent;		//109.3				0~255(A) (unit:1A)
-										//118.4,118.3			0~1023(A) (unit:1A)
+	unsigned char   ProtocolVersion;		//109.0				0~255
+											//					0x00: CHAdeMO specification 0.9 and earlier
+											//					0x01: CHAdeMO specification 0.9 and 0.9.1
+											//					0x02: CHAdeMO specification 1.0.0, 1.0.1, 1.1 and 1.2
+	unsigned short  PresentOutputVoltage;	//109.2,109.1	 		0~600(V) (unit:1V)
+	unsigned short   PresentOutputCurrent;	//109.3				0~255(A) (unit:1A)
+											//118.4,118.3			0~1023(A) (unit:1A)
 	unsigned char   EvseDetection;			//109.5
-										//					bit0=0:not charging state now
-										//					bit0=1:charging state now
-										//					bit1=0:EVSE normal
-										//					bit1=1:EVSE error
-										//					bit2=0:Not Energizing state
-										//					bit2=1:Energizing state
-										//					bit3=0:No Battery incompatibility
-										//					bit3=1:Battery incompatibility
-										//					bit4=0:No Charging system error
-										//					bit4=1:Charging system error
-										//					bit5=0:No Charging stop control
-										//					bit5=1:Charging stop control
+											//					bit0=0:not charging state now
+											//					bit0=1:charging state now
+											//					bit1=0:EVSE normal
+											//					bit1=1:EVSE error
+											//					bit2=0:Not Energizing state
+											//					bit2=1:Energizing state
+											//					bit3=0:No Battery incompatibility
+											//					bit3=1:Battery incompatibility
+											//					bit4=0:No Charging system error
+											//					bit4=1:Charging system error
+											//					bit5=0:No Charging stop control
+											//					bit5=1:Charging stop control
 	unsigned short RemainChargingTime;		//109.7,109.6			10(sec.)~255(min.)	(Unit:sec)
-										//					Set 0xFF to 109.6 (Unit: 10sec) in case 109.7 (Unit: 1min) is used
+											//					Set 0xFF to 109.6 (Unit: 10sec) in case 109.7 (Unit: 1min) is used
 	unsigned char  HighPowerCondition;		//118.5
-										//					bit0=0:Present charging current H¡¦118.3,H¡¦118.4¡¨ is less than or equal to rated current of a charging cable
-										//					bit0=1:Present charging current H¡¦118.3,H¡¦118.4¡¨ is exceeds to rated current of a charging cable
-										//					bit1=1:charging cable Cooling function Operating Installed
-										//					bit2=1:charging cable Current limiting function
-										//					bit3=1:charging connector Cooling function Operating
-										//					bit4=1:charging connector Current limiting function Installed
-										//					bit5=1:charging connector Over-temperature protection Installed
-										//					bit6=1:Functional safety Applied
+											//					bit0=0:Present charging current H¡¦118.3,H¡¦118.4¡¨ is less than or equal to rated current of a charging cable
+											//					bit0=1:Present charging current H¡¦118.3,H¡¦118.4¡¨ is exceeds to rated current of a charging cable
+											//					bit1=1:charging cable Cooling function Operating Installed
+											//					bit2=1:charging cable Current limiting function
+											//					bit3=1:charging connector Cooling function Operating
+											//					bit4=1:charging connector Current limiting function Installed
+											//					bit5=1:charging connector Over-temperature protection Installed
+											//					bit6=1:Functional safety Applied
 	unsigned int 	MaxiGroupPower;			//					XXXXXXXX (Unit:Watt)depend on which group to be used
-	unsigned int 	MaxiGroupCurrent;			//					XXXXXXXX (unit:1A)depend on which group to be used
+	unsigned int 	MaxiGroupCurrent;		//					XXXXXXXX (unit:1A)depend on which group to be used
 	unsigned short  ApplyOutputVoltage;		// 					0~600(V) (unit:1V)
 	unsigned short  ElapseChargingTime;		//					(Unit:sec)
-	unsigned short  ElapseEnergy;				//					(Unit:10xkWh)
+	unsigned short  ElapseEnergy;			//					(Unit:10xkWh)
 	unsigned char	EvboardStatus;			// 	0 : init
 };
 
@@ -1078,12 +1097,12 @@ struct DC_EVStatusType_DIN70121
 struct DC_EVChargeParameterType_DIN70121
 {
 	struct DC_EVStatusType_DIN70121			DC_EVStatus;
-	struct PhysicalValueType_DIN70121			EVMaximumCurrentLimit;
-	struct PhysicalValueType_DIN70121			EVMaximumPowerLimit;			//Optional
-	struct PhysicalValueType_DIN70121			EVMaximumVoltageLimit;
-	struct PhysicalValueType_DIN70121			EVEnergyCapacity;				//Optional
-	struct PhysicalValueType_DIN70121			EVEnergyRequest;				//Optional
-	unsigned char							FullSOC;/*0-100 percentage*/		//Optional
+	struct PhysicalValueType_DIN70121		EVMaximumCurrentLimit;
+	struct PhysicalValueType_DIN70121		EVMaximumPowerLimit;			//Optional
+	struct PhysicalValueType_DIN70121		EVMaximumVoltageLimit;
+	struct PhysicalValueType_DIN70121		EVEnergyCapacity;				//Optional
+	struct PhysicalValueType_DIN70121		EVEnergyRequest;				//Optional
+	unsigned char							FullSOC;/*0-100 percentage*/	//Optional
 	unsigned char							BulkSOC;/*0-100 percentage*/	//Optional
 };
 struct DC_EVStatusType_ISO15118_2014

+ 54 - 0
EVSE/rootfs/var/www/set_network.php

@@ -12,6 +12,24 @@
 			$InternetConn='connected';
 			break;
 	}
+	$WifiNetworkConn='';
+	switch ($obj->{'WifiNetworkConn'}){
+		case 0:
+			$WifiNetworkConn='disconnected';
+			break;
+		case 1:
+			$WifiNetworkConn='connected';
+			break;
+	}
+	$TelcomNetworkConn='';
+	switch ($obj->{'TelcomNetworkConn'}){
+		case 0:
+			$TelcomNetworkConn='disconnected';
+			break;
+		case 1:
+			$TelcomNetworkConn='connected';
+			break;
+	}
 	$TelcomSimStatus='';
 	switch ($obj->{'TelcomSimStatus'}){
 		case 0:
@@ -206,6 +224,11 @@
 											<label>WifiGatewayAddress</label>
 											<input type="text" name="WifiGatewayAddress" id="WifiGatewayAddress" class="form-control" value="<?php echo $obj->{'WifiGatewayAddress'};?>">
 										</div>
+										<div class="form-group" style="display:<?php echo $am101;?>">
+											<label>WifiNetworkConn</label>
+											<input type="text" readonly class="form-control" value="<?php echo $WifiNetworkConn;?>">
+											<input type="hidden" name="WifiNetworkConn" id="WifiNetworkConn" value="<?php echo $obj->{'WifiNetworkConn'};?>">
+										</div>
 									</section>
 								</article>
 								<!--3G/4G Module-->
@@ -258,6 +281,37 @@
 											<label>TelcomIpAddress</label>
 											<input type="text" name="TelcomIpAddress" id="TelcomIpAddress" class="form-control" value="<?php echo $obj->{'TelcomIpAddress'};?>">
 										</div>
+										<div class="form-group" style="display:<?php echo $am101;?>">
+											<label>TelcomNetworkConn</label>
+											<input type="text" readonly class="form-control" value="<?php echo $TelcomNetworkConn;?>">
+											<input type="hidden" name="TelcomNetworkConn" id="TelcomNetworkConn" value="<?php echo $obj->{'TelcomNetworkConn'};?>">
+										</div>
+									</section>
+								</article>
+								<!--Bluetooth Module-->
+								<article class="envor-sorting-item css">
+									<header><?php echo $lang->showWord("bluetooth_module"); ?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group" style="display:<?php echo $am101;?>">
+											<label>LoginCentralID</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'LoginCentralID'};?>">
+											<input type="hidden" name="LoginCentralID" id="LoginCentralID" value="<?php echo $obj->{'LoginCentralID'};?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am101;?>">
+											<label>isLogin</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'isLogin'};?>">
+											<input type="hidden" name="isLogin" id="isLogin" value="<?php echo $obj->{'isLogin'};?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am101;?>">
+											<label>isRequestStart</label>
+											<input type="text" readonly class="form-control" value="<?php echo $isRequestStart;?>">
+											<input type="hidden" name="isRequestStart" id="isRequestStart" value="<?php echo $obj->{'isRequestStart'};?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am101;?>">
+											<label>isRequestStop</label>
+											<input type="text" readonly class="form-control" value="<?php echo $isRequestStop;?>">
+											<input type="hidden" name="isRequestStop" id="isRequestStop" value="<?php echo $obj->{'isRequestStop'};?>">
+										</div>
 									</section>
 								</article>
 								<article class="envor-sorting-item css">

+ 7 - 1
EVSE/rootfs/var/www/set_system.php

@@ -83,9 +83,15 @@
 													<span class="glyphicon glyphicon-calendar"></span>
 												</span>
 											</div>
-
 											<!--<input type="hidden" name="SystemDateTime" id="SystemDateTime" value="<?php echo $obj->{'SystemDateTime'};?>">-->
 										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>AcPhaseCount</label>
+											<select class="form-control" id="AcPhaseCount" name="AcPhaseCount">
+												<option value="1" <?php echo $obj->{'AcPhaseCount'}==1?"selected":""?>>One phase</option>
+												<option value="3" <?php echo $obj->{'AcPhaseCount'}==3?"selected":""?>>Three phase</option>
+											</select>
+										</div>
 										<div class="form-group" style="display:<?php echo $am111;?>">
 											<label>System Status</label>
 											<input type="text" readonly class="form-control" placeholder="<?php echo $SystemStatus;?>">

+ 1 - 0
EVSE/rootfs/var/www/set_system_action.php

@@ -17,6 +17,7 @@
 		$json['SerialNumber'] 			= $_POST["SerialNumber"];
 		$json['SystemId']				= $_POST["SystemId"];
 		$json['SystemDateTime'] 		= $_POST['SystemDateTime'];
+		$json['AcPhaseCount'] 			= $_POST['AcPhaseCount'];
 		$json['SystemStatus']			= $_POST['SystemStatus'];
 		$json['FactoryConfiguration']	= $_POST['FactoryConfiguration'];
 		$json['AuthorisationMode']	 	= $_POST['AuthorisationMode'];