Browse Source

2020-10-07 / ct_chen

Actions:
1. modified for DO & DD projects

Files:
1. as list
ct_chen 4 years ago
parent
commit
73bfdf35ee

+ 479 - 55
EVSE/Modularization/WebService.c

@@ -365,7 +365,6 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	return result;
 }
 
-
 //================================================
 // Main process
 //================================================
@@ -401,6 +400,46 @@ int main(int argc, char *argv[]) {
 			char QRCodeMadeMode = 0;
 			char *QRCodeContent = NULL;
 			char Intensity = 0;
+			char *DDSystemId1=NULL;
+			int DDFactoryConfiguration1 = 0;
+			int DDAuthorisationMode1 = 0;
+			int DDRfidCardNumEndian1 = 0;
+			char DDisAPP1 = 0;
+			char DDisQRCode1 = 0;
+			char DDisRFID1 = 0;
+			char DDQRCodeMadeMode1 = 0;
+			char *DDQRCodeContent1 = NULL;
+			char DDIntensity1 = 0;
+			char *DDSystemId2=NULL;
+			int DDFactoryConfiguration2 = 0;
+			int DDAuthorisationMode2 = 0;
+			int DDRfidCardNumEndian2 = 0;
+			char DDisAPP2 = 0;
+			char DDisQRCode2 = 0;
+			char DDisRFID2 = 0;
+			char DDQRCodeMadeMode2 = 0;
+			char *DDQRCodeContent2 = NULL;
+			char DDIntensity2 = 0;
+			char *DDSystemId3=NULL;
+			int DDFactoryConfiguration3 = 0;
+			int DDAuthorisationMode3 = 0;
+			int DDRfidCardNumEndian3 = 0;
+			char DDisAPP3 = 0;
+			char DDisQRCode3 = 0;
+			char DDisRFID3 = 0;
+			char DDQRCodeMadeMode3 = 0;
+			char *DDQRCodeContent3 = NULL;
+			char DDIntensity3 = 0;
+			char *DDSystemId4=NULL;
+			int DDFactoryConfiguration4 = 0;
+			int DDAuthorisationMode4 = 0;
+			int DDRfidCardNumEndian4 = 0;
+			char DDisAPP4 = 0;
+			char DDisQRCode4 = 0;
+			char DDisRFID4 = 0;
+			char DDQRCodeMadeMode4 = 0;
+			char *DDQRCodeContent4 = NULL;
+			char DDIntensity4 = 0;
 
 			if( json_object_object_get_ex(jobj, "SystemId", &val_obj) ) {
 				SystemId = (char*)json_object_get_string(val_obj);
@@ -460,6 +499,166 @@ int main(int argc, char *argv[]) {
 				Intensity = json_object_get_int(val_obj);
 				ShmSysConfigAndInfo->SysConfig.LedInfo.Intensity = Intensity;
 			}
+			if( json_object_object_get_ex(jobj, "DDSystemId1", &val_obj) ) {
+				DDSystemId1 = (char*)json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].SystemId,DDSystemId1);
+			}
+			if( json_object_object_get_ex(jobj, "DDFactoryConfiguration1", &val_obj) ) {
+				DDFactoryConfiguration1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].FactoryConfiguration = DDFactoryConfiguration1;
+			}
+			if( json_object_object_get_ex(jobj, "DDAuthorisationMode1", &val_obj) ) {
+				DDAuthorisationMode1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].AuthorisationMode = DDAuthorisationMode1;
+			}
+			if( json_object_object_get_ex(jobj, "DDRfidCardNumEndian1", &val_obj) ) {
+				DDRfidCardNumEndian1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].RfidCardNumEndian = DDRfidCardNumEndian1;
+			}
+			if( json_object_object_get_ex(jobj, "DDisAPP1", &val_obj) ) {
+				DDisAPP1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].isAPP = DDisAPP1;
+			}
+			if( json_object_object_get_ex(jobj, "DDisQRCode1", &val_obj) ) {
+				DDisQRCode1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].isQRCode = DDisQRCode1;
+			}
+			if( json_object_object_get_ex(jobj, "DDisRFID1", &val_obj) ) {
+				DDisRFID1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].isRFID = DDisRFID1;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeMadeMode1", &val_obj) ) {
+				DDQRCodeMadeMode1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].QRCodeMadeMode = DDQRCodeMadeMode1;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeContent1", &val_obj) ) {
+				DDQRCodeContent1 = json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].QRCodeContent,DDQRCodeContent1);
+			}
+			if( json_object_object_get_ex(jobj, "DDIntensity1", &val_obj) ) {
+				DDIntensity1 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[0].LedInfo.Intensity = DDIntensity1;
+			}
+			if( json_object_object_get_ex(jobj, "DDSystemId2", &val_obj) ) {
+				DDSystemId2 = (char*)json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].SystemId,DDSystemId2);
+			}
+			if( json_object_object_get_ex(jobj, "DDFactoryConfiguration2", &val_obj) ) {
+				DDFactoryConfiguration2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].FactoryConfiguration = DDFactoryConfiguration2;
+			}
+			if( json_object_object_get_ex(jobj, "DDAuthorisationMode2", &val_obj) ) {
+				DDAuthorisationMode2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].AuthorisationMode = DDAuthorisationMode2;
+			}
+			if( json_object_object_get_ex(jobj, "DDRfidCardNumEndian2", &val_obj) ) {
+				DDRfidCardNumEndian2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].RfidCardNumEndian = DDRfidCardNumEndian2;
+			}
+			if( json_object_object_get_ex(jobj, "DDisAPP2", &val_obj) ) {
+				DDisAPP2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].isAPP = DDisAPP2;
+			}
+			if( json_object_object_get_ex(jobj, "DDisQRCode2", &val_obj) ) {
+				DDisQRCode2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].isQRCode = DDisQRCode2;
+			}
+			if( json_object_object_get_ex(jobj, "DDisRFID2", &val_obj) ) {
+				DDisRFID2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].isRFID = DDisRFID2;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeMadeMode2", &val_obj) ) {
+				DDQRCodeMadeMode2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].QRCodeMadeMode = DDQRCodeMadeMode2;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeContent2", &val_obj) ) {
+				DDQRCodeContent2 = json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].QRCodeContent,DDQRCodeContent2);
+			}
+			if( json_object_object_get_ex(jobj, "DDIntensity2", &val_obj) ) {
+				DDIntensity2 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[1].LedInfo.Intensity = DDIntensity2;
+			}
+			if( json_object_object_get_ex(jobj, "DDSystemId3", &val_obj) ) {
+				DDSystemId3 = (char*)json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].SystemId,DDSystemId3);
+			}
+			if( json_object_object_get_ex(jobj, "DDFactoryConfiguration3", &val_obj) ) {
+				DDFactoryConfiguration3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].FactoryConfiguration = DDFactoryConfiguration3;
+			}
+			if( json_object_object_get_ex(jobj, "DDAuthorisationMode3", &val_obj) ) {
+				DDAuthorisationMode3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].AuthorisationMode = DDAuthorisationMode3;
+			}
+			if( json_object_object_get_ex(jobj, "DDRfidCardNumEndian3", &val_obj) ) {
+				DDRfidCardNumEndian3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].RfidCardNumEndian = DDRfidCardNumEndian3;
+			}
+			if( json_object_object_get_ex(jobj, "DDisAPP3", &val_obj) ) {
+				DDisAPP3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].isAPP = DDisAPP3;
+			}
+			if( json_object_object_get_ex(jobj, "DDisQRCode3", &val_obj) ) {
+				DDisQRCode3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].isQRCode = DDisQRCode3;
+			}
+			if( json_object_object_get_ex(jobj, "DDisRFID3", &val_obj) ) {
+				DDisRFID3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].isRFID = DDisRFID3;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeMadeMode3", &val_obj) ) {
+				DDQRCodeMadeMode3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].QRCodeMadeMode = DDQRCodeMadeMode3;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeContent3", &val_obj) ) {
+				DDQRCodeContent3 = json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].QRCodeContent,DDQRCodeContent3);
+			}
+			if( json_object_object_get_ex(jobj, "DDIntensity3", &val_obj) ) {
+				DDIntensity3 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[2].LedInfo.Intensity = DDIntensity3;
+			}
+			if( json_object_object_get_ex(jobj, "DDSystemId4", &val_obj) ) {
+				DDSystemId4 = (char*)json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].SystemId,DDSystemId4);
+			}
+			if( json_object_object_get_ex(jobj, "DDFactoryConfiguration4", &val_obj) ) {
+				DDFactoryConfiguration4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].FactoryConfiguration = DDFactoryConfiguration4;
+			}
+			if( json_object_object_get_ex(jobj, "DDAuthorisationMode4", &val_obj) ) {
+				DDAuthorisationMode4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].AuthorisationMode = DDAuthorisationMode4;
+			}
+			if( json_object_object_get_ex(jobj, "DDRfidCardNumEndian4", &val_obj) ) {
+				DDRfidCardNumEndian4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].RfidCardNumEndian = DDRfidCardNumEndian4;
+			}
+			if( json_object_object_get_ex(jobj, "DDisAPP4", &val_obj) ) {
+				DDisAPP4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].isAPP = DDisAPP4;
+			}
+			if( json_object_object_get_ex(jobj, "DDisQRCode4", &val_obj) ) {
+				DDisQRCode4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].isQRCode = DDisQRCode4;
+			}
+			if( json_object_object_get_ex(jobj, "DDisRFID4", &val_obj) ) {
+				DDisRFID4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].isRFID = DDisRFID4;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeMadeMode4", &val_obj) ) {
+				DDQRCodeMadeMode4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].QRCodeMadeMode = DDQRCodeMadeMode4;
+			}
+			if( json_object_object_get_ex(jobj, "DDQRCodeContent4", &val_obj) ) {
+				DDQRCodeContent4 = json_object_get_string(val_obj);
+				strcpy((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].QRCodeContent,DDQRCodeContent4);
+			}
+			if( json_object_object_get_ex(jobj, "DDIntensity4", &val_obj) ) {
+				DDIntensity4 = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[3].LedInfo.Intensity = DDIntensity4;
+			}
 		}
 		if (strcmp(argv[1], "2") == 0) {
 			struct json_object *jobj = json_tokener_parse(argv[2]);
@@ -825,7 +1024,9 @@ int main(int argc, char *argv[]) {
 		if (strcmp(argv[1], "aaa") == 0) {
 			//struct SysConfigData 	SysConfig;
 		//system
-		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.ModelName, "AW0E770001W1P0D");
+		ShmSysConfigAndInfo->SysInfo.DispenserInfo.DispenserQuantity=1;
+		ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity=1;
+		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.ModelName, "DO0E362001D1P0D");
 		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.SerialNumber, "SerialNumber");
 		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.SystemId, "1234567890");
 		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.SystemDateTime, "2019-12-31 23:59:59");
@@ -904,9 +1105,6 @@ int main(int argc, char *argv[]) {
 		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].EvBatterytargetVoltage=0;
 		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].EvBatterySoc=0;
 		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].SystemStatus=1;
-		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].Index=0;
-		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].Type=0;
-		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].type_index=0;
 		ShmSysConfigAndInfo->SysInfo.CcsChargingData[0].EvBatterytargetCurrent=1;
 		//network
 		ShmSysConfigAndInfo->SysInfo.InternetConn=0;
@@ -983,6 +1181,7 @@ int main(int argc, char *argv[]) {
 				system(cmd);
 			}
 		}
+
 		if (strcmp(argv[1], "button") == 0) {
 			unsigned char			Button1;
 			unsigned char			Button2;
@@ -1030,11 +1229,12 @@ int main(int argc, char *argv[]) {
 		json_object_object_add(jobj,"Result",Result);
 		json_object_object_add(jobj,"Message",Message);
 		printf("%s\n", json_object_to_json_string(jobj));
-	}
 
+	}
 	//web page query all
 	if ((argc == 2) & (strcmp(argv[1], "query") == 0)) {
 		char *IsAcDc[2];
+		char *IsDO[3];
 		char *Connector1[2];
 		char *Connector2[2];
 		char *Connector3[2];
@@ -1048,6 +1248,7 @@ int main(int argc, char *argv[]) {
 		short RatedPower;
 		short PsuQuantity = 0;
 		substr((char *)IsAcDc,(const char *)ShmSysConfigAndInfo->SysConfig.ModelName,0,1);
+		substr((char *)IsDO,(const char *)ShmSysConfigAndInfo->SysConfig.ModelName,0,2);
 		substr((char *)Connector1,(const char *)ShmSysConfigAndInfo->SysConfig.ModelName,7,1);
 		substr((char *)Connector2,(const char *)ShmSysConfigAndInfo->SysConfig.ModelName,9,1);
 		substr((char *)Connector3,(const char *)ShmSysConfigAndInfo->SysConfig.ModelName,8,1);
@@ -1102,6 +1303,8 @@ int main(int argc, char *argv[]) {
 				PsuQuantity = RatedPower/30;
 			}
 		}
+		if(strcmp(IsDO, "DO") == 0){
+		}
 		
 		struct json_object *jobj1;
 		struct json_object *jobj2;
@@ -1170,6 +1373,60 @@ int main(int argc, char *argv[]) {
 		struct json_object *FwPrimaryVersionArr= json_object_new_array();
 		struct json_object *FwSecondVersion[PsuQuantity];
 		struct json_object *FwSecondVersionArr= json_object_new_array();
+		/* for DO & DD*/
+		struct json_object *DispenserQuantity;
+		struct json_object *TotalConnectorQuantity;
+		struct json_object *DDModelName[4];
+		struct json_object *DDModelNameArr= json_object_new_array();
+		struct json_object *DDSerialNumber[4];
+		struct json_object *DDSerialNumberArr= json_object_new_array();
+		struct json_object *DDSystemId[4];
+		struct json_object *DDSystemIdArr= json_object_new_array();
+		struct json_object *DDAuthorisationMode[4];
+		struct json_object *DDAuthorisationModeArr= json_object_new_array();
+		struct json_object *DDRfidCardNumEndian[4];
+		struct json_object *DDRfidCardNumEndianArr= json_object_new_array();
+		struct json_object *DDisAPP[4];
+		struct json_object *DDisAPPArr= json_object_new_array();
+		struct json_object *DDisQRCode[4];
+		struct json_object *DDisQRCodeArr= json_object_new_array();
+		struct json_object *DDisRFID[4];
+		struct json_object *DDisRFIDArr= json_object_new_array();
+		struct json_object *DDQRCodeMadeMode[4];
+		struct json_object *DDQRCodeMadeModeArr= json_object_new_array();
+		struct json_object *DDQRCodeContent[4];
+		struct json_object *DDQRCodeContentArr= json_object_new_array();
+		struct json_object *DDFactoryConfiguration[4];
+		struct json_object *DDFactoryConfigurationArr= json_object_new_array();
+		struct json_object *DDCsuBootLoadFwRev[4];
+		struct json_object *DDCsuBootLoadFwRevArr= json_object_new_array();
+		struct json_object *DDCsuKernelFwRev[4];
+		struct json_object *DDCsuKernelFwRevArr= json_object_new_array();
+		struct json_object *DDCsuRootFsFwRev[4];
+		struct json_object *DDCsuRootFsFwRevArr= json_object_new_array();
+		struct json_object *DDCsuPrimFwRev[4];
+		struct json_object *DDCsuPrimFwRevArr= json_object_new_array();
+		struct json_object *DDLcmFwRev[4];
+		struct json_object *DDLcmFwRevArr= json_object_new_array();
+		struct json_object *DDPsuPrimFwRev[4];
+		struct json_object *DDPsuPrimFwRevArr= json_object_new_array();
+		struct json_object *DDPsuSecFwRev[4];
+		struct json_object *DDPsuSecFwRevArr= json_object_new_array();
+		struct json_object *DDFanModuleFwRev[4];
+		struct json_object *DDFanModuleFwRevArr= json_object_new_array();
+		struct json_object *DDRelayModuleFwRev[4];
+		struct json_object *DDRelayModuleFwRevArr= json_object_new_array();
+		struct json_object *DDTelcomModemFwRev[4];
+		struct json_object *DDTelcomModemFwRevArr= json_object_new_array();
+		struct json_object *DDLedModuleFwRev[4];
+		struct json_object *DDLedModuleFwRevArr= json_object_new_array();
+		struct json_object *DDConnector1FwRev[4];
+		struct json_object *DDConnector1FwRevArr= json_object_new_array();
+		struct json_object *DDConnector2FwRev[4];
+		struct json_object *DDConnector2FwRevArr= json_object_new_array();
+		struct json_object *DDIntensity[4];
+		struct json_object *DDIntensityArr= json_object_new_array();
+
 		//charging
 		struct json_object *MaxChargingEnergy;
 		struct json_object *MaxChargingPower;
@@ -1200,10 +1457,29 @@ int main(int argc, char *argv[]) {
 		struct json_object *EvBatterytargetVoltage[3];
 		struct json_object *EvBatterySoc[3];
 		struct json_object *SystemStatus[3];
-		struct json_object *Index[3];
-		struct json_object *Type[3];
-		struct json_object *type_index[3];
 		struct json_object *EvBatterytargetCurrent[3];
+		/* for DO & DD*/
+		struct json_object *DDChargingInfo1;
+		struct json_object *DDChargingInfo2;
+		struct json_object *DDChargingInfo3;
+		struct json_object *DDChargingInfo4;
+		struct json_object *DDStartUserId[4];
+		struct json_object *DDStartDateTime[4];
+		struct json_object *DDStopDateTime[4];
+		struct json_object *DDStartMethod[4];
+		struct json_object *DDConnectorTemp[4];
+		struct json_object *DDPresentChargingVoltage[4];
+		struct json_object *DDPresentChargingCurrent[4];
+		struct json_object *DDPresentChargingPower[4];
+		struct json_object *DDPresentChargedEnergy[4];
+		struct json_object *DDPresentChargedDuration[4];
+		struct json_object *DDRemainChargingDuration[4];
+		struct json_object *DDEvBatteryMaxVoltage[4];
+		struct json_object *DDEvBatterytargetVoltage[4];
+		struct json_object *DDEvBatterySoc[4];
+		struct json_object *DDSystemStatus[4];
+		struct json_object *DDEvBatterytargetCurrent[4];
+
 		//network
 		struct json_object *InternetConn;
 		struct json_object *FtpServer;
@@ -1321,6 +1597,64 @@ int main(int argc, char *argv[]) {
 				json_object_array_add(FwSecondVersionArr,FwSecondVersion[i]);
 			}
 		}
+		if(strcmp(IsDO, "DO") == 0){
+			if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.DispenserQuantity>4 || ShmSysConfigAndInfo->SysInfo.DispenserInfo.DispenserQuantity<0)ShmSysConfigAndInfo->SysInfo.DispenserInfo.DispenserQuantity=0;
+			DispenserQuantity = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.DispenserQuantity);
+			TotalConnectorQuantity = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity);
+			int DDDispenserQuantity = ShmSysConfigAndInfo->SysInfo.DispenserInfo.DispenserQuantity;
+			for(int i=0;i<DDDispenserQuantity;i++){
+				DDModelName[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].ModelName);
+				DDSerialNumber[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].SerialNumber);
+				DDSystemId[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].SystemId);
+				DDAuthorisationMode[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].AuthorisationMode);
+				DDRfidCardNumEndian[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].RfidCardNumEndian);
+				DDisAPP[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].isAPP);
+				DDisQRCode[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].isQRCode);
+				DDisRFID[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].isRFID);
+				DDQRCodeMadeMode[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].QRCodeMadeMode);
+				DDQRCodeContent[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].QRCodeContent);
+				DDFactoryConfiguration[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].FactoryConfiguration);
+				DDCsuBootLoadFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].CsuBootLoadFwRev);
+				DDCsuKernelFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].CsuKernelFwRev);
+				DDCsuRootFsFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].CsuRootFsFwRev);
+				DDCsuPrimFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].CsuPrimFwRev);
+				DDLcmFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].LcmFwRev);
+				DDPsuPrimFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].PsuPrimFwRev);
+				DDPsuSecFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].PsuSecFwRev);
+				DDFanModuleFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].FanModuleFwRev);
+				DDRelayModuleFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].RelayModuleFwRev);
+				DDTelcomModemFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].TelcomModemFwRev);
+				DDLedModuleFwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].LedModuleFwRev);
+				DDConnector1FwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].Connector1FwRev);
+				DDConnector2FwRev[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].Connector2FwRev);
+				DDIntensity[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[i].LedInfo.Intensity);
+				json_object_array_add(DDModelNameArr,DDModelName[i]);
+				json_object_array_add(DDSerialNumberArr,DDSerialNumber[i]);
+				json_object_array_add(DDSystemIdArr,DDSystemId[i]);
+				json_object_array_add(DDAuthorisationModeArr,DDAuthorisationMode[i]);
+				json_object_array_add(DDRfidCardNumEndianArr,DDRfidCardNumEndian[i]);
+				json_object_array_add(DDisAPPArr,DDisAPP[i]);
+				json_object_array_add(DDisQRCodeArr,DDisQRCode[i]);
+				json_object_array_add(DDisRFIDArr,DDisRFID[i]);
+				json_object_array_add(DDQRCodeMadeModeArr,DDQRCodeMadeMode[i]);
+				json_object_array_add(DDQRCodeContentArr,DDQRCodeContent[i]);
+				json_object_array_add(DDFactoryConfigurationArr,DDFactoryConfiguration[i]);
+				json_object_array_add(DDCsuBootLoadFwRevArr,DDCsuBootLoadFwRev[i]);
+				json_object_array_add(DDCsuKernelFwRevArr,DDCsuKernelFwRev[i]);
+				json_object_array_add(DDCsuRootFsFwRevArr,DDCsuRootFsFwRev[i]);
+				json_object_array_add(DDCsuPrimFwRevArr,DDCsuPrimFwRev[i]);
+				json_object_array_add(DDLcmFwRevArr,DDLcmFwRev[i]);
+				json_object_array_add(DDPsuPrimFwRevArr,DDPsuPrimFwRev[i]);
+				json_object_array_add(DDPsuSecFwRevArr,DDPsuSecFwRev[i]);
+				json_object_array_add(DDFanModuleFwRevArr,DDFanModuleFwRev[i]);
+				json_object_array_add(DDRelayModuleFwRevArr,DDRelayModuleFwRev[i]);
+				json_object_array_add(DDTelcomModemFwRevArr,DDTelcomModemFwRev[i]);
+				json_object_array_add(DDLedModuleFwRevArr,DDLedModuleFwRev[i]);
+				json_object_array_add(DDConnector1FwRevArr,DDConnector1FwRev[i]);
+				json_object_array_add(DDConnector2FwRevArr,DDConnector2FwRev[i]);
+				json_object_array_add(DDIntensityArr,DDIntensity[i]);
+			}
+		}
 
 		//charging
 		int CcsGunQty=0;
@@ -1383,9 +1717,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterySoc);
 				SystemStatus[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].SystemStatus);
-				Index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].Index);
-				Type[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].Type);
-				type_index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].type_index);
 				EvBatterytargetCurrent[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterytargetCurrent);
 				StartUserId[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].StartUserId);
 				StartDateTime[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].StartDateTime);
@@ -1405,9 +1736,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterySoc);
 				SystemStatus[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].SystemStatus);
-				Index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].Index);
-				Type[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].Type);
-				type_index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].type_index);
 				EvBatterytargetCurrent[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterytargetCurrent);
 				StartUserId[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].StartUserId);
 				StartDateTime[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].StartDateTime);
@@ -1427,9 +1755,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterySoc);
 				SystemStatus[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].SystemStatus);
-				Index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].Index);
-				Type[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].Type);
-				type_index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].type_index);
 				EvBatterytargetCurrent[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterytargetCurrent);
 				StartUserId[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].StartUserId);
 				StartDateTime[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].StartDateTime);
@@ -1449,9 +1774,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterySoc);
 				SystemStatus[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].SystemStatus);
-				Index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].Index);
-				Type[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].Type);
-				type_index[0] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].type_index);
 				EvBatterytargetCurrent[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterytargetCurrent);
 				StartUserId[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].StartUserId);
 				StartDateTime[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].StartDateTime);
@@ -1473,9 +1795,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterySoc);
 				SystemStatus[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].SystemStatus);
-				Index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].Index);
-				Type[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].Type);
-				type_index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].type_index);
 				EvBatterytargetCurrent[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterytargetCurrent);
 				StartUserId[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].StartUserId);
 				StartDateTime[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].StartDateTime);
@@ -1495,9 +1814,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterySoc);
 				SystemStatus[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].SystemStatus);
-				Index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].Index);
-				Type[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].Type);
-				type_index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].type_index);
 				EvBatterytargetCurrent[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterytargetCurrent);
 				StartUserId[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].StartUserId);
 				StartDateTime[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].StartDateTime);
@@ -1517,9 +1833,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterySoc);
 				SystemStatus[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].SystemStatus);
-				Index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].Index);
-				Type[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].Type);
-				type_index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].type_index);
 				EvBatterytargetCurrent[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterytargetCurrent);
 				StartUserId[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].StartUserId);
 				StartDateTime[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].StartDateTime);
@@ -1539,9 +1852,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterySoc);
 				SystemStatus[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].SystemStatus);
-				Index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].Index);
-				Type[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].Type);
-				type_index[1] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].type_index);
 				EvBatterytargetCurrent[1] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterytargetCurrent);
 				StartUserId[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].StartUserId);
 				StartDateTime[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].StartDateTime);
@@ -1563,9 +1873,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterySoc);
 				SystemStatus[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].SystemStatus);
-				Index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].Index);
-				Type[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].Type);
-				type_index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].type_index);
 				EvBatterytargetCurrent[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].EvBatterytargetCurrent);
 				StartUserId[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].StartUserId);
 				StartDateTime[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].StartDateTime);
@@ -1585,9 +1892,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterySoc);
 				SystemStatus[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].SystemStatus);
-				Index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].Index);
-				Type[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].Type);
-				type_index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].type_index);
 				EvBatterytargetCurrent[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].EvBatterytargetCurrent);
 				StartUserId[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].StartUserId);
 				StartDateTime[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.GbChargingData[GbGunQty].StartDateTime);
@@ -1607,9 +1911,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterySoc);
 				SystemStatus[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].SystemStatus);
-				Index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].Index);
-				Type[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].Type);
-				type_index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].type_index);
 				EvBatterytargetCurrent[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].EvBatterytargetCurrent);
 				StartUserId[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].StartUserId);
 				StartDateTime[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ChademoChargingData[CHAdeMOGunQty].StartDateTime);
@@ -1629,9 +1930,6 @@ int main(int argc, char *argv[]) {
 				EvBatterytargetVoltage[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterytargetVoltage);
 				EvBatterySoc[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterySoc);
 				SystemStatus[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].SystemStatus);
-				Index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].Index);
-				Type[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].Type);
-				type_index[2] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].type_index);
 				EvBatterytargetCurrent[2] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].EvBatterytargetCurrent);
 				StartUserId[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].StartUserId);
 				StartDateTime[2] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.AcChargingData[AcGunQty].StartDateTime);
@@ -1641,7 +1939,28 @@ int main(int argc, char *argv[]) {
 				AcGunQty++;
 			}
 		}
-
+		if(strcmp(IsDO, "DO") == 0){
+			if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity>4 || ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity<0)ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity=0;
+			int DDTotalConnectorQuantity = ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity;
+			for(int i=0;i<DDTotalConnectorQuantity;i++){
+				DDPresentChargingVoltage[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.PresentChargingVoltage);
+				DDPresentChargingCurrent[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.PresentChargingCurrent);
+				DDPresentChargingPower[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.PresentChargingPower);
+				DDPresentChargedEnergy[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.PresentChargedEnergy);
+				DDPresentChargedDuration[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.PresentChargedDuration);
+				DDRemainChargingDuration[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.RemainChargingDuration);
+				DDEvBatteryMaxVoltage[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.EvBatteryMaxVoltage);
+				DDEvBatterytargetVoltage[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.EvBatterytargetVoltage);
+				DDEvBatterySoc[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.EvBatterySoc);
+				DDSystemStatus[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.SystemStatus);
+				DDEvBatterytargetCurrent[i] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.EvBatterytargetCurrent);
+				DDStartUserId[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.StartUserId);
+				DDStartDateTime[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.StartDateTime);
+				DDStopDateTime[i] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.StopDateTime);
+				DDStartMethod[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.StartMethod);
+				DDConnectorTemp[i] = json_object_new_int(ShmSysConfigAndInfo->SysInfo.ConnectorInfo[i].GeneralChargingData.ConnectorTemp);
+			}
+		}
 		//network
 		InternetConn = json_object_new_int(ShmSysConfigAndInfo->SysInfo.InternetConn);
 		FtpServer = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.FtpServer);
@@ -1751,9 +2070,39 @@ int main(int argc, char *argv[]) {
 			json_object_object_add(jobj1,"FwPrimaryVersion",FwPrimaryVersionArr);
 			json_object_object_add(jobj1,"FwSecondVersion",FwSecondVersionArr);
 		}
+		if(strcmp(IsDO, "DO") == 0){
+			json_object_object_add(jobj1,"DispenserQuantity",DispenserQuantity);
+			json_object_object_add(jobj1,"TotalConnectorQuantity",TotalConnectorQuantity);
+			json_object_object_add(jobj1,"DDModelName",DDModelNameArr);
+			json_object_object_add(jobj1,"DDSerialNumber",DDSerialNumberArr);
+			json_object_object_add(jobj1,"DDSystemId",DDSystemIdArr);
+			json_object_object_add(jobj1,"DDAuthorisationMode",DDAuthorisationModeArr);
+			json_object_object_add(jobj1,"DDRfidCardNumEndian",DDRfidCardNumEndianArr);
+			json_object_object_add(jobj1,"DDisAPP",DDisAPPArr);
+			json_object_object_add(jobj1,"DDisQRCode",DDisQRCodeArr);
+			json_object_object_add(jobj1,"DDisRFID",DDisRFIDArr);
+			json_object_object_add(jobj1,"DDQRCodeMadeMode",DDQRCodeMadeModeArr);
+			json_object_object_add(jobj1,"DDQRCodeContent",DDQRCodeContentArr);
+			json_object_object_add(jobj1,"DDFactoryConfiguration",DDFactoryConfigurationArr);
+			json_object_object_add(jobj1,"DDCsuBootLoadFwRev",DDCsuBootLoadFwRevArr);
+			json_object_object_add(jobj1,"DDCsuKernelFwRev",DDCsuKernelFwRevArr);
+			json_object_object_add(jobj1,"DDCsuRootFsFwRev",DDCsuRootFsFwRevArr);
+			json_object_object_add(jobj1,"DDCsuPrimFwRev",DDCsuPrimFwRevArr);
+			json_object_object_add(jobj1,"DDLcmFwRev",DDLcmFwRevArr);
+			json_object_object_add(jobj1,"DDPsuPrimFwRev",DDPsuPrimFwRevArr);
+			json_object_object_add(jobj1,"DDPsuSecFwRev",DDPsuSecFwRevArr);
+			json_object_object_add(jobj1,"DDFanModuleFwRev",DDFanModuleFwRevArr);
+			json_object_object_add(jobj1,"DDRelayModuleFwRev",DDRelayModuleFwRevArr);
+			json_object_object_add(jobj1,"DDTelcomModemFwRev",DDTelcomModemFwRevArr);
+			json_object_object_add(jobj1,"DDLedModuleFwRev",DDLedModuleFwRevArr);
+			json_object_object_add(jobj1,"DDConnector1FwRev",DDConnector1FwRevArr);
+			json_object_object_add(jobj1,"DDConnector2FwRev",DDConnector2FwRevArr);
+			json_object_object_add(jobj1,"DDIntensity",DDIntensityArr);
+		}
 
 		printf("%s\n", json_object_to_json_string(jobj1));
 		json_object_put(jobj1);
+
 		//charging
 		json_object_object_add(jobj2,"MaxChargingEnergy",MaxChargingEnergy);
 		json_object_object_add(jobj2,"MaxChargingPower",MaxChargingPower);
@@ -1814,9 +2163,6 @@ int main(int argc, char *argv[]) {
 			json_object_object_add(ChargingInfo1,"EvBatterytargetVoltage",EvBatterytargetVoltage[0]);
 			json_object_object_add(ChargingInfo1,"EvBatterySoc",EvBatterySoc[0]);
 			json_object_object_add(ChargingInfo1,"SystemStatus",SystemStatus[0]);
-			json_object_object_add(ChargingInfo1,"Index",Index[0]);
-			json_object_object_add(ChargingInfo1,"Type",Type[0]);
-			json_object_object_add(ChargingInfo1,"type_index",type_index[0]);
 			json_object_object_add(ChargingInfo1,"EvBatterytargetCurrent",EvBatterytargetCurrent[0]);
 			json_object_object_add(jobj2,"ChargingInfo1",ChargingInfo1);
 		}
@@ -1836,9 +2182,6 @@ int main(int argc, char *argv[]) {
 			json_object_object_add(ChargingInfo2,"EvBatterytargetVoltage",EvBatterytargetVoltage[1]);
 			json_object_object_add(ChargingInfo2,"EvBatterySoc",EvBatterySoc[1]);
 			json_object_object_add(ChargingInfo2,"SystemStatus",SystemStatus[1]);
-			json_object_object_add(ChargingInfo2,"Index",Index[1]);
-			json_object_object_add(ChargingInfo2,"Type",Type[1]);
-			json_object_object_add(ChargingInfo2,"type_index",type_index[1]);
 			json_object_object_add(ChargingInfo2,"EvBatterytargetCurrent",EvBatterytargetCurrent[1]);
 			json_object_object_add(jobj2,"ChargingInfo2",ChargingInfo2);
 		}
@@ -1858,12 +2201,93 @@ int main(int argc, char *argv[]) {
 			json_object_object_add(ChargingInfo3,"EvBatterytargetVoltage",EvBatterytargetVoltage[2]);
 			json_object_object_add(ChargingInfo3,"EvBatterySoc",EvBatterySoc[2]);
 			json_object_object_add(ChargingInfo3,"SystemStatus",SystemStatus[2]);
-			json_object_object_add(ChargingInfo3,"Index",Index[2]);
-			json_object_object_add(ChargingInfo3,"Type",Type[2]);
-			json_object_object_add(ChargingInfo3,"type_index",type_index[2]);
 			json_object_object_add(ChargingInfo3,"EvBatterytargetCurrent",EvBatterytargetCurrent[2]);
 			json_object_object_add(jobj2,"ChargingInfo3",ChargingInfo3);
 		}
+		if(strcmp(IsDO, "DO") == 0){
+			if(ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity>4|| ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity<0)ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity=0;
+			int DDTotalConnectorQuantity = ShmSysConfigAndInfo->SysInfo.DispenserInfo.TotalConnectorQuantity;
+			DDChargingInfo1=json_object_new_object();
+			DDChargingInfo2=json_object_new_object();
+			DDChargingInfo3=json_object_new_object();
+			DDChargingInfo4=json_object_new_object();
+			if(DDTotalConnectorQuantity>0){
+				json_object_object_add(DDChargingInfo1,"StartUserId",DDStartUserId[0]);
+				json_object_object_add(DDChargingInfo1,"StartDateTime",DDStartDateTime[0]);
+				json_object_object_add(DDChargingInfo1,"StopDateTime",DDStopDateTime[0]);
+				json_object_object_add(DDChargingInfo1,"StartMethod",DDStartMethod[0]);
+				json_object_object_add(DDChargingInfo1,"ConnectorTemp",DDConnectorTemp[0]);
+				json_object_object_add(DDChargingInfo1,"PresentChargingVoltage",DDPresentChargingVoltage[0]);
+				json_object_object_add(DDChargingInfo1,"PresentChargingCurrent",DDPresentChargingCurrent[0]);
+				json_object_object_add(DDChargingInfo1,"PresentChargingPower",DDPresentChargingPower[0]);
+				json_object_object_add(DDChargingInfo1,"PresentChargedEnergy",DDPresentChargedEnergy[0]);
+				json_object_object_add(DDChargingInfo1,"PresentChargedDuration",DDPresentChargedDuration[0]);
+				json_object_object_add(DDChargingInfo1,"RemainChargingDuration",DDRemainChargingDuration[0]);
+				json_object_object_add(DDChargingInfo1,"EvBatteryMaxVoltage",DDEvBatteryMaxVoltage[0]);
+				json_object_object_add(DDChargingInfo1,"EvBatterytargetVoltage",DDEvBatterytargetVoltage[0]);
+				json_object_object_add(DDChargingInfo1,"EvBatterySoc",DDEvBatterySoc[0]);
+				json_object_object_add(DDChargingInfo1,"SystemStatus",DDSystemStatus[0]);
+				json_object_object_add(DDChargingInfo1,"EvBatterytargetCurrent",DDEvBatterytargetCurrent[0]);
+				json_object_object_add(jobj2,"DDChargingInfo1",DDChargingInfo1);
+			}
+			if(DDTotalConnectorQuantity>1){
+				json_object_object_add(DDChargingInfo2,"StartUserId",DDStartUserId[1]);
+				json_object_object_add(DDChargingInfo2,"StartDateTime",DDStartDateTime[1]);
+				json_object_object_add(DDChargingInfo2,"StopDateTime",DDStopDateTime[1]);
+				json_object_object_add(DDChargingInfo2,"StartMethod",DDStartMethod[1]);
+				json_object_object_add(DDChargingInfo2,"ConnectorTemp",DDConnectorTemp[1]);
+				json_object_object_add(DDChargingInfo2,"PresentChargingVoltage",DDPresentChargingVoltage[1]);
+				json_object_object_add(DDChargingInfo2,"PresentChargingCurrent",DDPresentChargingCurrent[1]);
+				json_object_object_add(DDChargingInfo2,"PresentChargingPower",DDPresentChargingPower[1]);
+				json_object_object_add(DDChargingInfo2,"PresentChargedEnergy",DDPresentChargedEnergy[1]);
+				json_object_object_add(DDChargingInfo2,"PresentChargedDuration",DDPresentChargedDuration[1]);
+				json_object_object_add(DDChargingInfo2,"RemainChargingDuration",DDRemainChargingDuration[1]);
+				json_object_object_add(DDChargingInfo2,"EvBatteryMaxVoltage",DDEvBatteryMaxVoltage[1]);
+				json_object_object_add(DDChargingInfo2,"EvBatterytargetVoltage",DDEvBatterytargetVoltage[1]);
+				json_object_object_add(DDChargingInfo2,"EvBatterySoc",DDEvBatterySoc[1]);
+				json_object_object_add(DDChargingInfo2,"SystemStatus",DDSystemStatus[1]);
+				json_object_object_add(DDChargingInfo2,"EvBatterytargetCurrent",DDEvBatterytargetCurrent[1]);
+				json_object_object_add(jobj2,"DDChargingInfo2",DDChargingInfo2);
+			}
+			if(DDTotalConnectorQuantity>2){
+				json_object_object_add(DDChargingInfo3,"StartUserId",DDStartUserId[2]);
+				json_object_object_add(DDChargingInfo3,"StartDateTime",DDStartDateTime[2]);
+				json_object_object_add(DDChargingInfo3,"StopDateTime",DDStopDateTime[2]);
+				json_object_object_add(DDChargingInfo3,"StartMethod",DDStartMethod[2]);
+				json_object_object_add(DDChargingInfo3,"ConnectorTemp",DDConnectorTemp[2]);
+				json_object_object_add(DDChargingInfo3,"PresentChargingVoltage",DDPresentChargingVoltage[2]);
+				json_object_object_add(DDChargingInfo3,"PresentChargingCurrent",DDPresentChargingCurrent[2]);
+				json_object_object_add(DDChargingInfo3,"PresentChargingPower",DDPresentChargingPower[2]);
+				json_object_object_add(DDChargingInfo3,"PresentChargedEnergy",DDPresentChargedEnergy[2]);
+				json_object_object_add(DDChargingInfo3,"PresentChargedDuration",DDPresentChargedDuration[2]);
+				json_object_object_add(DDChargingInfo3,"RemainChargingDuration",DDRemainChargingDuration[2]);
+				json_object_object_add(DDChargingInfo3,"EvBatteryMaxVoltage",DDEvBatteryMaxVoltage[2]);
+				json_object_object_add(DDChargingInfo3,"EvBatterytargetVoltage",DDEvBatterytargetVoltage[2]);
+				json_object_object_add(DDChargingInfo3,"EvBatterySoc",DDEvBatterySoc[2]);
+				json_object_object_add(DDChargingInfo3,"SystemStatus",DDSystemStatus[2]);
+				json_object_object_add(DDChargingInfo3,"EvBatterytargetCurrent",DDEvBatterytargetCurrent[2]);
+				json_object_object_add(jobj2,"DDChargingInfo3",DDChargingInfo3);
+			}
+			if(DDTotalConnectorQuantity>3){
+				json_object_object_add(DDChargingInfo4,"StartUserId",DDStartUserId[3]);
+				json_object_object_add(DDChargingInfo4,"StartDateTime",DDStartDateTime[3]);
+				json_object_object_add(DDChargingInfo4,"StopDateTime",DDStopDateTime[3]);
+				json_object_object_add(DDChargingInfo4,"StartMethod",DDStartMethod[3]);
+				json_object_object_add(DDChargingInfo4,"ConnectorTemp",DDConnectorTemp[3]);
+				json_object_object_add(DDChargingInfo4,"PresentChargingVoltage",DDPresentChargingVoltage[3]);
+				json_object_object_add(DDChargingInfo4,"PresentChargingCurrent",DDPresentChargingCurrent[3]);
+				json_object_object_add(DDChargingInfo4,"PresentChargingPower",DDPresentChargingPower[3]);
+				json_object_object_add(DDChargingInfo4,"PresentChargedEnergy",DDPresentChargedEnergy[3]);
+				json_object_object_add(DDChargingInfo4,"PresentChargedDuration",DDPresentChargedDuration[3]);
+				json_object_object_add(DDChargingInfo4,"RemainChargingDuration",DDRemainChargingDuration[3]);
+				json_object_object_add(DDChargingInfo4,"EvBatteryMaxVoltage",DDEvBatteryMaxVoltage[3]);
+				json_object_object_add(DDChargingInfo4,"EvBatterytargetVoltage",DDEvBatterytargetVoltage[3]);
+				json_object_object_add(DDChargingInfo4,"EvBatterySoc",DDEvBatterySoc[3]);
+				json_object_object_add(DDChargingInfo4,"SystemStatus",DDSystemStatus[3]);
+				json_object_object_add(DDChargingInfo4,"EvBatterytargetCurrent",DDEvBatterytargetCurrent[3]);
+				json_object_object_add(jobj2,"DDChargingInfo4",DDChargingInfo4);
+			}
+		}
 		printf("%s\n", json_object_to_json_string(jobj2));
 		json_object_put(jobj2);
 

+ 548 - 3
EVSE/rootfs/var/www/set_charging.php

@@ -11,9 +11,11 @@
 	$Connector1=substr($ModelName,7,1);
 	$Connector2=substr($ModelName,9,1);
 	$Connector3=substr($ModelName,8,1);
-	$connectorType1=ConnectorType($Connector1);
-	$connectorType2=ConnectorType($Connector2);
-	$connectorType3=ConnectorType($Connector3);
+	if(substr($ModelName,0,2)!="DO"){
+		$connectorType1=ConnectorType($Connector1);
+		$connectorType2=ConnectorType($Connector2);
+		$connectorType3=ConnectorType($Connector3);
+	}
 	$idx=0;
 	if($obj['ChargingInfo1']){
 		switch ($obj['ChargingInfo1']['SystemStatus']){
@@ -216,6 +218,274 @@
 				break;
 		}
 	}
+	if($obj['DDChargingInfo1']){
+		switch ($obj['DDChargingInfo1']['DDSystemStatus']){
+			case 0:
+				$DDSystemStatus1='booting';
+				break;
+			case 1:
+				$DDSystemStatus1='idle';
+				break;
+			case 2:
+				$DDSystemStatus1='authorizing';
+				break;
+			case 3:
+				$DDSystemStatus1='reassign check';
+				break;
+			case 4:
+				$DDSystemStatus1='reassign';
+				break;
+			case 5:
+				$DDSystemStatus1='preparing';
+				break;
+			case 6:
+				$DDSystemStatus1='preparing for EV';
+				break;
+			case 7:
+				$DDSystemStatus1='preparing for evse';
+				break;
+			case 8:
+				$DDSystemStatus1='charging';
+				break;
+			case 9:
+				$DDSystemStatus1='terminating';
+				break;
+			case 10:
+				$DDSystemStatus1='complete';
+				break;
+			case 11:
+				$DDSystemStatus1='alarm';
+				break;
+			case 12:
+				$DDSystemStatus1='fault';
+				break;
+			case 13:
+				$DDSystemStatus1='reservation';
+				break;
+			case 14:
+				$DDSystemStatus1='booking';
+				break;
+			case 15:
+				$DDSystemStatus1='maintain';
+				break;
+			case 16:
+				$DDSystemStatus1='debug';
+				break;
+			case 17:
+				$DDSystemStatus1='precharge step 0';
+				break;
+			case 18:
+				$DDSystemStatus1='precharge step 1';
+				break;
+			case 19:
+				$DDSystemStatus1='update';
+				break;
+			default:
+				$DDSystemStatus1='unknown';
+				break;
+		}
+	}
+	if($obj['DDChargingInfo2']){
+		switch ($obj['DDChargingInfo2']['DDSystemStatus']){
+			case 0:
+				$DDSystemStatus2='booting';
+				break;
+			case 1:
+				$DDSystemStatus2='idle';
+				break;
+			case 2:
+				$DDSystemStatus2='authorizing';
+				break;
+			case 3:
+				$DDSystemStatus2='reassign check';
+				break;
+			case 4:
+				$DDSystemStatus2='reassign';
+				break;
+			case 5:
+				$DDSystemStatus2='preparing';
+				break;
+			case 6:
+				$DDSystemStatus2='preparing for EV';
+				break;
+			case 7:
+				$DDSystemStatus2='preparing for evse';
+				break;
+			case 8:
+				$DDSystemStatus2='charging';
+				break;
+			case 9:
+				$DDSystemStatus2='terminating';
+				break;
+			case 10:
+				$DDSystemStatus2='complete';
+				break;
+			case 11:
+				$DDSystemStatus2='alarm';
+				break;
+			case 12:
+				$DDSystemStatus2='fault';
+				break;
+			case 13:
+				$DDSystemStatus2='reservation';
+				break;
+			case 14:
+				$DDSystemStatus2='booking';
+				break;
+			case 15:
+				$DDSystemStatus2='maintain';
+				break;
+			case 16:
+				$DDSystemStatus2='debug';
+				break;
+			case 17:
+				$DDSystemStatus2='precharge step 0';
+				break;
+			case 18:
+				$DDSystemStatus2='precharge step 1';
+				break;
+			case 19:
+				$DDSystemStatus2='update';
+				break;
+			default:
+				$DDSystemStatus2='unknown';
+				break;
+		}
+	}
+	if($obj['DDChargingInfo3']){
+		switch ($obj['DDChargingInfo3']['DDSystemStatus']){
+			case 0:
+				$DDSystemStatus3='booting';
+				break;
+			case 1:
+				$DDSystemStatus3='idle';
+				break;
+			case 2:
+				$DDSystemStatus3='authorizing';
+				break;
+			case 3:
+				$DDSystemStatus3='reassign check';
+				break;
+			case 4:
+				$DDSystemStatus3='reassign';
+				break;
+			case 5:
+				$DDSystemStatus3='preparing';
+				break;
+			case 6:
+				$DDSystemStatus3='preparing for EV';
+				break;
+			case 7:
+				$DDSystemStatus3='preparing for evse';
+				break;
+			case 8:
+				$DDSystemStatus3='charging';
+				break;
+			case 9:
+				$DDSystemStatus3='terminating';
+				break;
+			case 10:
+				$DDSystemStatus3='complete';
+				break;
+			case 11:
+				$DDSystemStatus3='alarm';
+				break;
+			case 12:
+				$DDSystemStatus3='fault';
+				break;
+			case 13:
+				$DDSystemStatus3='reservation';
+				break;
+			case 14:
+				$DDSystemStatus3='booking';
+				break;
+			case 15:
+				$DDSystemStatus3='maintain';
+				break;
+			case 16:
+				$DDSystemStatus3='debug';
+				break;
+			case 17:
+				$DDSystemStatus3='precharge step 0';
+				break;
+			case 18:
+				$DDSystemStatus3='precharge step 1';
+				break;
+			case 19:
+				$DDSystemStatus3='update';
+				break;
+			default:
+				$DDSystemStatus3='unknown';
+				break;
+		}
+	}
+	if($obj['DDChargingInfo4']){
+		switch ($obj['DDChargingInfo4']['DDSystemStatus']){
+			case 0:
+				$DDSystemStatus4='booting';
+				break;
+			case 1:
+				$DDSystemStatus4='idle';
+				break;
+			case 2:
+				$DDSystemStatus4='authorizing';
+				break;
+			case 3:
+				$DDSystemStatus4='reassign check';
+				break;
+			case 4:
+				$DDSystemStatus4='reassign';
+				break;
+			case 5:
+				$DDSystemStatus4='preparing';
+				break;
+			case 6:
+				$DDSystemStatus4='preparing for EV';
+				break;
+			case 7:
+				$DDSystemStatus4='preparing for evse';
+				break;
+			case 8:
+				$DDSystemStatus4='charging';
+				break;
+			case 9:
+				$DDSystemStatus4='terminating';
+				break;
+			case 10:
+				$DDSystemStatus4='complete';
+				break;
+			case 11:
+				$DDSystemStatus4='alarm';
+				break;
+			case 12:
+				$DDSystemStatus4='fault';
+				break;
+			case 13:
+				$DDSystemStatus4='reservation';
+				break;
+			case 14:
+				$DDSystemStatus4='booking';
+				break;
+			case 15:
+				$DDSystemStatus4='maintain';
+				break;
+			case 16:
+				$DDSystemStatus4='debug';
+				break;
+			case 17:
+				$DDSystemStatus4='precharge step 0';
+				break;
+			case 18:
+				$DDSystemStatus4='precharge step 1';
+				break;
+			case 19:
+				$DDSystemStatus4='update';
+				break;
+			default:
+				$DDSystemStatus4='unknown';
+				break;
+		}
+	}
 	
 	function ConnectorType($connector){
 		$result="";
@@ -529,6 +799,280 @@ img {
 										</div>*/?>
 									</section>
 								</article>
+<?php if(substr($ModelName,0,2)=="DO"){?>
+<?php if($obj['DDChargingInfo1']){ $idx++;?>
+								<!--Charging Information-->
+								<article class="envor-sorting-item css">
+									<header><?php echo "connector".$idx." ".$lang->showWord("charging_information"); ?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>User Id</label>
+											<input type="text" readonly class="form-control" value="<?php echo $obj['DDChargingInfo1']['StartUserId'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Start Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['StartDateTime'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Stop Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['StopDateTime'];?>">
+										</div>
+<?php /*										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>StartMethod</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['StartMethod'];?>">
+										</div>*/?>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>System Status</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $DDSystemStatus1;?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Connector Temperature</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['ConnectorTemp'];?> ℃">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Present Charging Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo1']['PresentChargingVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Current</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo1']['PresentChargingCurrent'],2);?> amp">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Power</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo1']['PresentChargingPower'],2);?> kW">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Energy</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo1']['PresentChargedEnergy'],2);?> kWh">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Duration</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['PresentChargedDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Remain Charging Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['RemainChargingDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Max Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo1']['EvBatteryMaxVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Target Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo1']['EvBatterytargetVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Soc</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo1']['EvBatterySoc'];?>">
+										</div>
+									</section>
+								</article>
+<?php }?>
+<?php if($obj['DDChargingInfo2']){ $idx++;?>
+								<!--Charging Information-->
+								<article class="envor-sorting-item css">
+									<header><?php echo "connector".$idx." ".$lang->showWord("charging_information"); ?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>User Id</label>
+											<input type="text" readonly class="form-control" value="<?php echo $obj['DDChargingInfo2']['StartUserId'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Start Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['StartDateTime'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Stop Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['StopDateTime'];?>">
+										</div>
+<?php /*										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>StartMethod</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['StartMethod'];?>">
+										</div>*/?>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>System Status</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $DDSystemStatus2;?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Connector Temperature</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['ConnectorTemp'];?> ℃">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Present Charging Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo2']['PresentChargingVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Current</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo2']['PresentChargingCurrent'],2);?> amp">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Power</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo2']['PresentChargingPower'],2);?> kW">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Energy</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo2']['PresentChargedEnergy'],2);?> kWh">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Duration</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['PresentChargedDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Remain Charging Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['RemainChargingDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Max Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo2']['EvBatteryMaxVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Target Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo2']['EvBatterytargetVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Soc</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo2']['EvBatterySoc'];?>">
+										</div>
+									</section>
+								</article>
+<?php }?>
+<?php if($obj['DDChargingInfo3']){ $idx++;?>
+								<!--Charging Information-->
+								<article class="envor-sorting-item css">
+									<header><?php echo "connector".$idx." ".$lang->showWord("charging_information"); ?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>User Id</label>
+											<input type="text" readonly class="form-control" value="<?php echo $obj['DDChargingInfo3']['StartUserId'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Start Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['StartDateTime'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Stop Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['StopDateTime'];?>">
+										</div>
+<?php /*										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>StartMethod</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['StartMethod'];?>">
+										</div>*/?>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>System Status</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $DDSystemStatus3;?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Connector Temperature</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['ConnectorTemp'];?> ℃">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Present Charging Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo3']['PresentChargingVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Current</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo3']['PresentChargingCurrent'],2);?> amp">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Power</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo3']['PresentChargingPower'],2);?> kW">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Energy</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo3']['PresentChargedEnergy'],2);?> kWh">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Duration</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['PresentChargedDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Remain Charging Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['RemainChargingDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Max Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo3']['EvBatteryMaxVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Target Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo3']['EvBatterytargetVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Soc</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo3']['EvBatterySoc'];?>">
+										</div>
+									</section>
+								</article>
+<?php }?>
+<?php if($obj['DDChargingInfo4']){ $idx++;?>
+								<!--Charging Information-->
+								<article class="envor-sorting-item css">
+									<header><?php echo "connector".$idx." ".$lang->showWord("charging_information"); ?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>User Id</label>
+											<input type="text" readonly class="form-control" value="<?php echo $obj['DDChargingInfo4']['StartUserId'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Start Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['StartDateTime'];?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Stop Date Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['StopDateTime'];?>">
+										</div>
+<?php /*										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>StartMethod</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['StartMethod'];?>">
+										</div>*/?>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>System Status</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $DDSystemStatus4;?>">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Connector Temperature</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['ConnectorTemp'];?> ℃">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Present Charging Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo4']['PresentChargingVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Current</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo4']['PresentChargingCurrent'],2);?> amp">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Power</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo4']['PresentChargingPower'],2);?> kW">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Energy</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo4']['PresentChargedEnergy'],2);?> kWh">
+										</div>
+										<div class="form-group" style="display:<?php echo $am111;?>">
+											<label>Present Charging Duration</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['PresentChargedDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>Remain Charging Time</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['RemainChargingDuration'];?> seconds">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Max Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo4']['EvBatteryMaxVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Target Voltage</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj['DDChargingInfo4']['EvBatterytargetVoltage'],2);?> volt">
+										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label>EV Battery Soc</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj['DDChargingInfo4']['EvBatterySoc'];?>">
+										</div>
+									</section>
+								</article>
+<?php }?>
+<?php } else { ?>
 <?php if($obj['ChargingInfo1']){ $idx++;?>
 								<!--Charging Information-->
 								<article class="envor-sorting-item css">
@@ -778,6 +1322,7 @@ img {
 									</section>
 								</article>
 <?php }?>
+<?php } ?>
 								<article class="envor-sorting-item css">
 									<div align="center"><button id="save"><?php echo $lang->showWord("set")?></button></div>
 								</article>

+ 220 - 8
EVSE/rootfs/var/www/set_system.php

@@ -119,6 +119,7 @@ img {
 												</span>
 											</div>
 										</div>
+<?php if(substr($ModelName,0,2)!="DO"){?>
 										<div class="form-group" style="display:<?php echo $am001;?>">
 											<label>AC Phase Loss Policy</label>
 											<select class="form-control" id="PhaseLossPolicy" name="PhaseLossPolicy">
@@ -126,6 +127,7 @@ img {
 												<option value="1" <?php echo $obj->{'PhaseLossPolicy'}=="1"?"selected":""?>>stop charging</option>
 											</select>
 										</div>
+<?php } ?>
 										<div class="form-group" style="display:<?php echo $am111;?>">
 											<label>
 											<input type="checkbox" id="FactoryConfiguration" name="FactoryConfiguration" <?php echo $obj->{'FactoryConfiguration'}==1?"checked":"";?>>
@@ -135,6 +137,7 @@ img {
 												<option value="1" <?php echo $obj->{'FactoryConfiguration'}=="1"?"selected":""?>>Trigger</option>
 											</select>*/?>
 										</div>
+<?php if(substr($ModelName,0,2)!="DO"){?>
 										<div class="form-group" style="display:<?php echo $am111;?>">
 											<label>Authentication</label>
 											<select class="form-control" id="AuthorisationMode" name="AuthorisationMode" onchange="AuthorisationMode_changed()">
@@ -142,6 +145,7 @@ img {
 												<option value="1" <?php echo $obj->{'AuthorisationMode'}=="1"?"selected":""?>>disable</option>
 											</select>
 										</div>
+<?php } ?>
 										<div class="form-group" style="display:<?php echo $am111;?>">
 											<label>Input Voltage R</label>
 											<input type="text" readonly class="form-control" placeholder="<?php echo round($obj->{'InputVoltageR'},2);?> volt">
@@ -162,6 +166,7 @@ img {
 											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'SystemFanRotaSpeed'};?> RPM">
 											<input type="hidden" name="SystemFanRotaSpeed" id="SystemFanRotaSpeed" value="<?php echo $obj->{'SystemFanRotaSpeed'};?>">
 										</div>
+<?php if(substr($ModelName,0,2)!="DO"){?>
 										<div class="form-group" style="display:<?php echo $am111;?>">
 											<label>Rfid Card Num Endian</label>
 											<select class="form-control" id="RfidCardNumEndian" name="RfidCardNumEndian">
@@ -181,11 +186,13 @@ img {
 											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'RatingCurrent'};?> amp">
 											<input type="hidden" name="RatingCurrent" id="RatingCurrent" value="<?php echo $obj->{'RatingCurrent'};?>">
 										</div>
+<?php if(substr($ModelName,8,1)!="0"){?>
 										<div class="form-group" id="AcRatingCurrentDiv">
 											<label>AC Rating Current</label>
 											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'AcRatingCurrent'};?> amp">
 											<input type="hidden" name="AcRatingCurrent" id="AcRatingCurrent" value="<?php echo $obj->{'AcRatingCurrent'};?>">
 										</div>
+<?php } ?>
 										<div class="form-group" style="display:<?php echo $am001;?>" id="startMode">
 											<label id="isAPPLabel">
 											<input type="checkbox" id="isAPP" name="isAPP" <?php echo $obj->{'isAPP'}==1?"checked":"";?> onclick="isAPP_clicked()">
@@ -216,6 +223,19 @@ img {
 												<option value="2" <?php echo $obj->{'Intensity'}=="2"?"selected":""?>>Brightest</option>
 											</select>
 										</div>
+<?php } ?>
+<?php if(substr($ModelName,0,2)=="DO"){?>
+										<div class="form-group">
+											<label>Dispenser Quantity</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DispenserQuantity'};?>">
+											<input type="hidden" name="DispenserQuantity" id="DispenserQuantity" value="<?php echo $obj->{'DispenserQuantity'};?>">
+										</div>
+										<div class="form-group">
+											<label>Total Connector Quantity</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'TotalConnectorQuantity'};?>">
+											<input type="hidden" name="TotalConnectorQuantity" id="TotalConnectorQuantity" value="<?php echo $obj->{'TotalConnectorQuantity'};?>">
+										</div>
+<?php } ?>
 									</section>
 								</article>
 								<article class="envor-sorting-item css">
@@ -285,6 +305,121 @@ img {
 										</div>
 									</section>
 								</article>
+<?php if(substr($ModelName,0,2)=="DO"){?>
+<?php for($idx=0;$idx<$obj->{'DispenserQuantity'};$idx++){ $idx2=$idx+1;?>
+								<article class="envor-sorting-item css">
+									<header><?php echo $lang->showWord("system_information"); ?> Dispenser <?php echo $idx2;?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group">
+											<label>Model Name</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDModelName'}[$idx];?>">
+											<input type="hidden" name="DDModelName<?php echo $idx2;?>" id="DDModelName<?php echo $idx2;?>" value="<?php echo $obj->{'DDModelName'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Serial Number</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDSerialNumber'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>System ID</label>
+											<input type="text" name="DDSystemId<?php echo $idx2; ?>" id="DDSystemId<?php echo $idx2; ?>" class="form-control" value="<?php echo $obj->{'DDSystemId'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>
+											<input type="checkbox" id="DDFactoryConfiguration<?php echo $idx2; ?>" name="DDFactoryConfiguration<?php echo $idx2; ?>" <?php echo $obj->{'DDFactoryConfiguration'}[$idx]==1?"checked":"";?>>
+											Factory Default Configuration</label>
+										</div>
+										<div class="form-group">
+											<label>Authentication</label>
+											<select class="form-control" id="DDAuthorisationMode<?php echo $idx2; ?>" name="DDAuthorisationMode<?php echo $idx2; ?>" onchange="DDAuthorisationMode_changed(<?php echo $idx2; ?>)">
+												<option value="0" <?php echo $obj->{'DDAuthorisationMode'}[$idx]=="0"?"selected":""?>>enable</option>
+												<option value="1" <?php echo $obj->{'DDAuthorisationMode'}[$idx]=="1"?"selected":""?>>disable</option>
+											</select>
+										</div>
+										<div class="form-group">
+											<label>Rfid Card Num Endian</label>
+											<select class="form-control" id="DDRfidCardNumEndian<?php echo $idx2; ?>" name="DDRfidCardNumEndian<?php echo $idx2; ?>">
+												<option value="0" <?php echo $obj->{'DDRfidCardNumEndian'}[$idx]=="0"?"selected":""?>>little endian</option>
+												<option value="1" <?php echo $obj->{'DDRfidCardNumEndian'}[$idx]=="1"?"selected":""?>>big endian</option>
+											</select>
+										</div>
+										<div class="form-group" id="DDstartMode<?php echo $idx2; ?>">
+											<label id="DDisAPPLabel">
+											<input type="checkbox" id="DDisAPP<?php echo $idx2; ?>" name="DDisAPP<?php echo $idx2; ?>" <?php echo $obj->{'DDisAPP'}[$idx]==1?"checked":"";?> onclick="DDisAPP_clicked(<?php echo $idx2; ?>)">
+											APP</label>
+											<label id="DDisQRCodeLabel">
+											<input type="checkbox" id="DDisQRCode<?php echo $idx2; ?>" name="DDisQRCode<?php echo $idx2; ?>" <?php echo $obj->{'DDisQRCode'}[$idx]==1?"checked":"";?> onclick="DDisQRCode_clicked(<?php echo $idx2; ?>)">
+											QR Code</label>
+											<label id="DDisRFIDLabel">
+											<input type="checkbox" id="DDisRFID<?php echo $idx2; ?>" name="DDisRFID<?php echo $idx2; ?>" <?php echo $obj->{'DDisRFID'}[$idx]==1?"checked":"";?> onclick="DDisRFID_clicked(<?php echo $idx2; ?>)">
+											RFID</label>
+										</div>
+										<div class="form-group" id="DDQRCodeMadeModeDiv<?php echo $idx2; ?>">
+											<label>QR Code Made Mode</label>
+											<select class="form-control" id="DDQRCodeMadeMode<?php echo $idx2; ?>" name="DDQRCodeMadeMode<?php echo $idx2; ?>" onchange="DDQRCodeMadeMode_changed(<?php echo $idx2; ?>)">
+												<option value="0" <?php echo $obj->{'DDQRCodeMadeMode'}[$idx]=="0"?"selected":""?>>default</option>
+												<option value="1" <?php echo $obj->{'DDQRCodeMadeMode'}[$idx]=="1"?"selected":""?>>customized</option>
+											</select>
+										</div>
+										<div class="form-group" id="DDQRCodeContentDiv<?php echo $idx2; ?>">
+											<label>QR Code Content</label>
+											<input type="text" name="DDQRCodeContent<?php echo $idx2; ?>" id="DDQRCodeContent<?php echo $idx2; ?>" class="form-control" placeholder="<?php echo $obj->{'DDQRCodeContent'}[$idx];?>" value="<?php echo $obj->{'DDQRCodeContent'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>LED Intensity</label>
+											<select class="form-control" id="DDIntensity<?php echo $idx2; ?>" name="DDIntensity<?php echo $idx2; ?>">
+												<option value="0" <?php echo $obj->{'DDIntensity'}[$idx]=="0"?"selected":""?>>Darkest</option>
+												<option value="1" <?php echo $obj->{'DDIntensity'}[$idx]=="1"?"selected":""?>>Medium</option>
+												<option value="2" <?php echo $obj->{'DDIntensity'}[$idx]=="2"?"selected":""?>>Brightest</option>
+											</select>
+										</div>
+									</section>
+								</article>
+								<article class="envor-sorting-item css">
+									<header><?php echo $lang->showWord("version_information"); ?> Dispenser <?php echo $idx+1; ?><i class="fa fa-plus"></i></header>
+									<section>
+										<div class="form-group">
+											<label>Csu Boot Load Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDCsuBootLoadFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Csu Kernel Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDCsuKernelFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Csu Root Fs Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDCsuRootFsFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Csu Prim Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDCsuPrimFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Fan Module Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDFanModuleFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Relay Module Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDRelayModuleFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Telcom Modem Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDTelcomModemFwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Connector1(<?php echo $DDconnectorType1;?>) Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDConnector1FwRev'}[$idx];?>">
+										</div>
+										<div class="form-group" id="DDConnector2FwRevDiv">
+											<label>Connector2(<?php echo $DDconnectorType2;?>) Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDConnector2FwRev'}[$idx];?>">
+										</div>
+										<div class="form-group">
+											<label>Led Module Fw Rev</label>
+											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'DDLedModuleFwRev'}[$idx];?>">
+										</div>
+									</section>
+								</article>
+								<?php }} ?>
 								<article class="envor-sorting-item css">
 									<div align="center"><button id="save"><?php echo $lang->showWord("set")?></button></div>
 								</article>
@@ -306,12 +441,6 @@ img {
 			format:"YYYY-MM-DD HH:mm:ss"
 		});
 		setInterval(function(){var t = new Date(document.getElementById("SystemDateTime0").placeholder);var t_s = t.getTime();t.setTime(t_s + 1000 );document.getElementById("SystemDateTime0").placeholder= t.Format("yyyy-MM-dd hh:mm:ss");}, 1000);
-		if(document.getElementById("ModelName").value.substr(8,1) != "0"){
-			document.getElementById("AcRatingCurrentDiv").style.display="block";
-		}
-		else{
-			document.getElementById("AcRatingCurrentDiv").style.display="none";
-		}
 		if(document.getElementById("ModelName").value.substr(0,1) != "A" && document.getElementById("ModelName").value.substr(9,1) != "0"){
 			document.getElementById("Connector2FwRevDiv").style.display="block";
 		}
@@ -330,9 +459,22 @@ img {
 		else{
 			document.getElementById("AcModelNameDiv").style.display="none";
 		}
+<?php if(substr($ModelName,0,2)=="DO"){?>
+<?php for($idx=0;$idx<$obj->{'DispenserQuantity'};$idx++){ $idx2=$idx+1;?>
+		DDisQRCode_clicked(<?php echo $idx2; ?>);
+		DDAuthorisationMode_changed(<?php echo $idx2; ?>);
+		DDQRCodeMadeMode_changed(<?php echo $idx2; ?>);
+<?php }} else { ?>
+		if(document.getElementById("ModelName").value.substr(8,1) != "0"){
+			document.getElementById("AcRatingCurrentDiv").style.display="block";
+		}
+		else{
+			document.getElementById("AcRatingCurrentDiv").style.display="none";
+		}
 		isQRCode_clicked();
 		AuthorisationMode_changed();
 		QRCodeMadeMode_changed();
+<?php } ?>
 	});
 
 	document.getElementById("save").onclick = function() {
@@ -347,8 +489,9 @@ img {
 			// POST 參數須使用 send() 發送
 			var data =  "SystemId=" + document.getElementById("SystemId").value+
 						"&SystemDateTime=" + document.getElementById("SystemDateTime").value+
-						"&PhaseLossPolicy=" + document.getElementById("PhaseLossPolicy").value+
-						"&FactoryConfiguration=" + (document.getElementById("FactoryConfiguration").checked?1:0)+
+						"&FactoryConfiguration=" + (document.getElementById("FactoryConfiguration").checked?1:0);
+<?php if(substr($ModelName,0,2)!="DO"){?>
+				data +=  "&PhaseLossPolicy=" + document.getElementById("PhaseLossPolicy").value+
 						"&AuthorisationMode=" + document.getElementById("AuthorisationMode").value+
 						"&isAPP=" + (document.getElementById("isAPP").checked?1:0)+
 						"&isQRCode=" + (document.getElementById("isQRCode").checked?1:0)+
@@ -358,7 +501,21 @@ img {
 						"&Intensity=" + document.getElementById("Intensity").value+
 						"&RfidCardNumEndian=" + document.getElementById("RfidCardNumEndian").value+
 						"&PsuAcInputType=" + document.getElementById("PsuAcInputType").value;
+<?php } ?>
+<?php if(substr($ModelName,0,2)=="DO"){?>
+<?php for($idx=0;$idx<$obj->{'DispenserQuantity'};$idx++){ $idx2=$idx+1;?>
+				data +=  "&DDSystemId<?php echo $idx2; ?>=" + document.getElementById("DDSystemId<?php echo $idx2; ?>").value+
+						"&DDFactoryConfiguration<?php echo $idx2; ?>=" + (document.getElementById("DDFactoryConfiguration<?php echo $idx2; ?>").checked?1:0)+
+						"&DDAuthorisationMode<?php echo $idx2; ?>=" + document.getElementById("DDAuthorisationMode<?php echo $idx2; ?>").value+
+						"&DDisAPP<?php echo $idx2; ?>=" + (document.getElementById("DDisAPP<?php echo $idx2; ?>").checked?1:0)+
+						"&DDisQRCode<?php echo $idx2; ?>=" + (document.getElementById("DDisQRCode<?php echo $idx2; ?>").checked?1:0)+
+						"&DDisRFID<?php echo $idx2; ?>=" + (document.getElementById("DDisRFID<?php echo $idx2; ?>").checked?1:0)+
+						"&DDQRCodeMadeMode<?php echo $idx2; ?>=" + document.getElementById("DDQRCodeMadeMode<?php echo $idx2; ?>").value+
+						"&DDQRCodeContent<?php echo $idx2; ?>=" + document.getElementById("DDQRCodeContent<?php echo $idx2; ?>").value+
+						"&DDIntensity<?php echo $idx2; ?>=" + document.getElementById("DDIntensity<?php echo $idx2; ?>").value+
+						"&DDRfidCardNumEndian<?php echo $idx2; ?>=" + document.getElementById("DDRfidCardNumEndian<?php echo $idx2; ?>").value;
 
+<?php }} ?>
 			// POST 請求必須設置表頭在 open() 下面,send() 上面
 			request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 			request.send(data);
@@ -415,6 +572,23 @@ img {
 		}
 	}
 
+	function DDAuthorisationMode_changed(i){
+		if(document.getElementById("DDAuthorisationMode"+i).value == "0"){
+//			if(document.getElementById("DDModelName"+i).value.substr(0,1) == "D"){
+				document.getElementById("DDstartMode"+i).style.display="block";
+//			}
+			if(!document.getElementById("DDisAPP"+i).checked && !document.getElementById("DDisRFID"+i).checked && !document.getElementById("DDisQRCode"+i).checked){
+				alert("Please choose one of 'APP、QR code、RFID'");
+				document.getElementById("DDisAPP"+i).checked=true;
+				document.getElementById("DDisQRCode"+i).checked=true;
+				document.getElementById("DDisRFID"+i).checked=true;
+			}
+		}
+		else{
+			document.getElementById("DDstartMode"+i).style.display="none";
+		}
+	}
+
 	function isQRCode_clicked(){
 		if(document.getElementById("isQRCode").checked){
 			document.getElementById("QRCodeMadeModeDiv").style.display="block";
@@ -430,6 +604,21 @@ img {
 		}
 	}
 
+	function DDisQRCode_clicked(i){
+		if(document.getElementById("DDisQRCode"+i).checked){
+			document.getElementById("DDQRCodeMadeModeDiv"+i).style.display="block";
+			DDQRCodeMadeMode_changed(i);
+		}
+		else{
+			document.getElementById("DDQRCodeMadeModeDiv"+i).style.display="none";
+			document.getElementById("DDQRCodeContentDiv"+i).style.display="none";
+			if(document.getElementById("DDAuthorisationMode"+i).value == "0" && !document.getElementById("DDisAPP"+i).checked && !document.getElementById("DDisRFID"+i).checked){
+				alert("Please choose one of 'APP、QR code、RFID'");
+				document.getElementById("DDisQRCode"+i).checked=true;
+			}
+		}
+	}
+
 	function isAPP_clicked(){
 		if(document.getElementById("ModelName").value.substr(0,1) == "D" && document.getElementById("AuthorisationMode").value == "0" && !document.getElementById("isQRCode").checked && !document.getElementById("isAPP").checked && !document.getElementById("isRFID").checked){
 			alert("Please choose one of 'APP、QR code、RFID'");
@@ -437,6 +626,13 @@ img {
 		}
 	}
 
+	function DDisAPP_clicked(i){
+		if(document.getElementById("DDAuthorisationMode"+i).value == "0" && !document.getElementById("DDisQRCode"+i).checked && !document.getElementById("DDisAPP"+i).checked && !document.getElementById("DDisRFID"+i).checked){
+			alert("Please choose one of 'APP、QR code、RFID'");
+			document.getElementById("DDisAPP"+i).checked=true;
+		}
+	}
+
 	function isRFID_clicked(){
 		if(document.getElementById("ModelName").value.substr(0,1) == "D" && document.getElementById("AuthorisationMode").value == "0" && !document.getElementById("isQRCode").checked && !document.getElementById("isAPP").checked && !document.getElementById("isRFID").checked){
 			alert("Please choose one of 'APP、QR code、RFID'");
@@ -444,6 +640,13 @@ img {
 		}
 	}
 
+	function DDisRFID_clicked(i){
+		if(document.getElementById("DDAuthorisationMode"+i).value == "0" && !document.getElementById("DDisQRCode"+i).checked && !document.getElementById("DDisAPP"+i).checked && !document.getElementById("DDisRFID"+i).checked){
+			alert("Please choose one of 'APP、QR code、RFID'");
+			document.getElementById("DDisRFID"+i).checked=true;
+		}
+	}
+
 	function QRCodeMadeMode_changed(){
 		if(document.getElementById("QRCodeMadeMode").value == "1"){
 			document.getElementById("QRCodeContentDiv").style.display="block";
@@ -453,6 +656,15 @@ img {
 		}
 	}
 
+	function DDQRCodeMadeMode_changed(i){
+		if(document.getElementById("DDQRCodeMadeMode"+i).value == "1"){
+			document.getElementById("DDQRCodeContentDiv"+i).style.display="block";
+		}
+		else{
+			document.getElementById("DDQRCodeContentDiv"+i).style.display="none";
+		}
+	}
+
 	Date.prototype.Format = function (fmt) { //author: meizz
 		var o = {
 			"M+": this.getMonth() + 1, //月份

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

@@ -71,6 +71,156 @@
 		if($_POST['PsuAcInputType'] != ""){
 			$json['PsuAcInputType']			= $_POST['PsuAcInputType'];
 		}
+		if($_POST['DDSystemId1'] != ""){
+			$json['DDSystemId1']				= $_POST["DDSystemId1"];
+		}
+		if($_POST['DDFactoryConfiguration1'] != ""){
+			$json['DDFactoryConfiguration1']	= $_POST['DDFactoryConfiguration1'];
+		}
+		if($_POST['DDAuthorisationMode1'] != ""){
+			$json['DDAuthorisationMode1']		= (int)$_POST['AuthorisationMode1'];
+		}
+		if($_POST['DDisAPP1'] != ""){
+			$json['DDisAPP1']					= (int)$_POST['DDisAPP1'];
+		}
+		if($_POST['DDisQRCode1'] != ""){
+			$json['DDisQRCode1']			 	= (int)$_POST['DDisQRCode1'];
+		}
+		if($_POST['DDisRFID1'] != ""){
+			$json['DDisRFID1']					= (int)$_POST['DDisRFID1'];
+		}
+		if($_POST['DDQRCodeMadeMode1'] != ""){
+			$json['DDQRCodeMadeMode1']			= (int)$_POST['DDQRCodeMadeMode1'];
+		}
+		if($_POST['DDQRCodeContent1'] != ""){
+			$json['DDQRCodeContent1']			= $_POST['DDQRCodeContent1'];
+		}
+		if($_POST['DDIntensity1'] != ""){
+			$json['DDIntensity1']				= (int)$_POST['DDIntensity1'];
+		}
+		if($_POST['DDRfidCardNumEndian1'] != ""){
+			$json['DDRfidCardNumEndian1']		= $_POST['DDRfidCardNumEndian1'];
+		}
+		if($_POST['DDSystemId2'] != ""){
+			$json['DDSystemId2']				= $_POST["DDSystemId2"];
+		}
+		if($_POST['DDFactoryConfiguration2'] != ""){
+			$json['DDFactoryConfiguration2']	= $_POST['DDFactoryConfiguration2'];
+		}
+		if($_POST['DDAuthorisationMode2'] != ""){
+			$json['DDAuthorisationMode2']		= (int)$_POST['AuthorisationMode2'];
+		}
+		if($_POST['DDisAPP2'] != ""){
+			$json['DDisAPP2']					= (int)$_POST['DDisAPP2'];
+		}
+		if($_POST['DDisQRCode2'] != ""){
+			$json['DDisQRCode2']			 	= (int)$_POST['DDisQRCode2'];
+		}
+		if($_POST['DDisRFID2'] != ""){
+			$json['DDisRFID2']					= (int)$_POST['DDisRFID2'];
+		}
+		if($_POST['DDQRCodeMadeMode2'] != ""){
+			$json['DDQRCodeMadeMode2']			= (int)$_POST['DDQRCodeMadeMode2'];
+		}
+		if($_POST['DDQRCodeContent2'] != ""){
+			$json['DDQRCodeContent2']			= $_POST['DDQRCodeContent2'];
+		}
+		if($_POST['DDIntensity2'] != ""){
+			$json['DDIntensity2']				= (int)$_POST['DDIntensity2'];
+		}
+		if($_POST['DDRfidCardNumEndian2'] != ""){
+			$json['DDRfidCardNumEndian2']		= $_POST['DDRfidCardNumEndian2'];
+		}
+		if($_POST['DDSystemId2'] != ""){
+			$json['DDSystemId2']				= $_POST["DDSystemId2"];
+		}
+		if($_POST['DDFactoryConfiguration2'] != ""){
+			$json['DDFactoryConfiguration2']	= $_POST['DDFactoryConfiguration2'];
+		}
+		if($_POST['DDAuthorisationMode2'] != ""){
+			$json['DDAuthorisationMode2']		= (int)$_POST['AuthorisationMode2'];
+		}
+		if($_POST['DDisAPP2'] != ""){
+			$json['DDisAPP2']					= (int)$_POST['DDisAPP2'];
+		}
+		if($_POST['DDisQRCode2'] != ""){
+			$json['DDisQRCode2']			 	= (int)$_POST['DDisQRCode2'];
+		}
+		if($_POST['DDisRFID2'] != ""){
+			$json['DDisRFID2']					= (int)$_POST['DDisRFID2'];
+		}
+		if($_POST['DDQRCodeMadeMode2'] != ""){
+			$json['DDQRCodeMadeMode2']			= (int)$_POST['DDQRCodeMadeMode2'];
+		}
+		if($_POST['DDQRCodeContent2'] != ""){
+			$json['DDQRCodeContent2']			= $_POST['DDQRCodeContent2'];
+		}
+		if($_POST['DDIntensity2'] != ""){
+			$json['DDIntensity2']				= (int)$_POST['DDIntensity2'];
+		}
+		if($_POST['DDRfidCardNumEndian2'] != ""){
+			$json['DDRfidCardNumEndian2']		= $_POST['DDRfidCardNumEndian2'];
+		}
+		if($_POST['DDSystemId3'] != ""){
+			$json['DDSystemId3']				= $_POST["DDSystemId3"];
+		}
+		if($_POST['DDFactoryConfiguration3'] != ""){
+			$json['DDFactoryConfiguration3']	= $_POST['DDFactoryConfiguration3'];
+		}
+		if($_POST['DDAuthorisationMode3'] != ""){
+			$json['DDAuthorisationMode3']		= (int)$_POST['AuthorisationMode3'];
+		}
+		if($_POST['DDisAPP3'] != ""){
+			$json['DDisAPP3']					= (int)$_POST['DDisAPP3'];
+		}
+		if($_POST['DDisQRCode3'] != ""){
+			$json['DDisQRCode3']			 	= (int)$_POST['DDisQRCode3'];
+		}
+		if($_POST['DDisRFID3'] != ""){
+			$json['DDisRFID3']					= (int)$_POST['DDisRFID3'];
+		}
+		if($_POST['DDQRCodeMadeMode3'] != ""){
+			$json['DDQRCodeMadeMode3']			= (int)$_POST['DDQRCodeMadeMode3'];
+		}
+		if($_POST['DDQRCodeContent3'] != ""){
+			$json['DDQRCodeContent3']			= $_POST['DDQRCodeContent3'];
+		}
+		if($_POST['DDIntensity3'] != ""){
+			$json['DDIntensity3']				= (int)$_POST['DDIntensity3'];
+		}
+		if($_POST['DDRfidCardNumEndian3'] != ""){
+			$json['DDRfidCardNumEndian3']		= $_POST['DDRfidCardNumEndian3'];
+		}
+		if($_POST['DDSystemId4'] != ""){
+			$json['DDSystemId4']				= $_POST["DDSystemId4"];
+		}
+		if($_POST['DDFactoryConfiguration4'] != ""){
+			$json['DDFactoryConfiguration4']	= $_POST['DDFactoryConfiguration4'];
+		}
+		if($_POST['DDAuthorisationMode4'] != ""){
+			$json['DDAuthorisationMode4']		= (int)$_POST['AuthorisationMode4'];
+		}
+		if($_POST['DDisAPP4'] != ""){
+			$json['DDisAPP4']					= (int)$_POST['DDisAPP4'];
+		}
+		if($_POST['DDisQRCode4'] != ""){
+			$json['DDisQRCode4']			 	= (int)$_POST['DDisQRCode4'];
+		}
+		if($_POST['DDisRFID4'] != ""){
+			$json['DDisRFID4']					= (int)$_POST['DDisRFID4'];
+		}
+		if($_POST['DDQRCodeMadeMode4'] != ""){
+			$json['DDQRCodeMadeMode4']			= (int)$_POST['DDQRCodeMadeMode4'];
+		}
+		if($_POST['DDQRCodeContent4'] != ""){
+			$json['DDQRCodeContent4']			= $_POST['DDQRCodeContent4'];
+		}
+		if($_POST['DDIntensity4'] != ""){
+			$json['DDIntensity4']				= (int)$_POST['DDIntensity4'];
+		}
+		if($_POST['DDRfidCardNumEndian4'] != ""){
+			$json['DDRfidCardNumEndian4']		= $_POST['DDRfidCardNumEndian4'];
+		}
 
 //		ob_start();
 		shell_exec('sync;sync;sync');