Эх сурвалжийг харах

[Add][Modularization][WebService / Webpage]

2022.06.06 / Folus Wen

Actions:
1. Add MaxChargingSoc to Charging configuration page.
2. Add MaxChargingSoc to SysConfig struct.

Files:
1. As follow commit history

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

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 2 жил өмнө
parent
commit
9e398ad7e2

+ 9 - 0
EVSE/Modularization/WebService.c

@@ -731,6 +731,7 @@ int main(int argc, char *argv[]) {
 			int MaxChargingCurrent = 0;
 			int AcMaxChargingCurrent = 0;
 			int MaxChargingDuration = 0;
+			int MaxChargingSoc = 0;
 			int StopChargingByButton = 0;
 			char *LocalWhiteCard0 = NULL;
 			char *LocalWhiteCard1 = NULL;
@@ -789,6 +790,10 @@ int main(int argc, char *argv[]) {
 				MaxChargingDuration = json_object_get_int(val_obj);
 				ShmSysConfigAndInfo->SysConfig.MaxChargingDuration = MaxChargingDuration;
 			}
+			if( json_object_object_get_ex(jobj, "MaxChargingSoc", &val_obj) ) {
+				MaxChargingSoc = json_object_get_int(val_obj);
+				ShmSysConfigAndInfo->SysConfig.MaxChargingSoc = MaxChargingSoc;
+			}
 			if( json_object_object_get_ex(jobj, "StopChargingByButton", &val_obj) ) {
 				StopChargingByButton = json_object_get_int(val_obj);
 				ShmSysConfigAndInfo->SysConfig.StopChargingByButton = StopChargingByButton;
@@ -1282,6 +1287,7 @@ int main(int argc, char *argv[]) {
 			ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent= 0;
 			ShmSysConfigAndInfo->SysConfig.AcMaxChargingCurrent= 0;
 			ShmSysConfigAndInfo->SysConfig.MaxChargingDuration=0;
+			ShmSysConfigAndInfo->SysConfig.MaxChargingSoc=0;
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[0], "111");
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[1], "222");
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[2], "333");
@@ -1779,6 +1785,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *MaxChargingCurrent;
 		struct json_object *AcMaxChargingCurrent;
 		struct json_object *MaxChargingDuration;
+		struct json_object *MaxChargingSoc;
 		struct json_object *StopChargingByButton;
 		struct json_object *LocalWhiteCard[10];
 		struct json_object *LocalWhiteCardArr= json_object_new_array();
@@ -2064,6 +2071,7 @@ int main(int argc, char *argv[]) {
 		MaxChargingCurrent = json_object_new_int(ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent);
 		AcMaxChargingCurrent = json_object_new_int(ShmSysConfigAndInfo->SysConfig.AcMaxChargingCurrent);
 		MaxChargingDuration = json_object_new_int(ShmSysConfigAndInfo->SysConfig.MaxChargingDuration);
+		MaxChargingSoc = json_object_new_int(ShmSysConfigAndInfo->SysConfig.MaxChargingSoc);
 		StopChargingByButton = json_object_new_int(ShmSysConfigAndInfo->SysConfig.StopChargingByButton);
 		LocalWhiteCard[0] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[0]);
 		LocalWhiteCard[1] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[1]);
@@ -2717,6 +2725,7 @@ int main(int argc, char *argv[]) {
 		json_object_object_add(jobj2,"MaxChargingCurrent",MaxChargingCurrent);
 		json_object_object_add(jobj2,"AcMaxChargingCurrent",AcMaxChargingCurrent);
 		json_object_object_add(jobj2,"MaxChargingDuration",MaxChargingDuration);
+		json_object_object_add(jobj2,"MaxChargingSoc",MaxChargingSoc);
 		json_object_object_add(jobj2,"StopChargingByButton",StopChargingByButton);
 		json_object_array_add(LocalWhiteCardArr,LocalWhiteCard[0]);
 		json_object_array_add(LocalWhiteCardArr,LocalWhiteCard[1]);

+ 1 - 0
EVSE/Projects/define.h

@@ -596,6 +596,7 @@ struct SysConfigData
     unsigned char           MaintainServerSecurityPassword[41]; // Maintain server AuthorizationKey for security profile
     unsigned char           PowerSharingServerIP[512];          // Local power sharing server ip address
     unsigned int            PowerSharingCapacityPower;          // Local power sharing capacity power
+    unsigned char			MaxChargingSoc;						//0: unlimit, 1 ~ 100 percent
 };
 
 struct ChargingInfoData

+ 38 - 0
EVSE/rootfs/var/www/set_charging.php

@@ -710,6 +710,12 @@ CORE STYLES ABOVE - NO TOUCHY
 											<input type="text" name="MaxChargingDuration" id="MaxChargingDuration" class="form-control" value="<?php echo $obj['MaxChargingDuration'];?>" placeholder="<?php echo ($obj['MaxChargingDuration']==0||$obj['MaxChargingDuration']=="")?"'0' means unlimit":"";?>" title="'0' means unlimit">
 											<small class="form-text text-muted-red"><label id="MaxChargingDurationText" style="display:none;">'0' means unlimit</label></small>
 										</div>
+										<div class="form-group" style="display:<?php echo $am001;?>">
+											<label id="MaxChargingSocLbl">Max Charging Soc</label>
+											<small class="form-text text-muted-red">percent</small>
+											<input type="text" name="MaxChargingSoc" id="MaxChargingSoc" class="form-control" value="<?php echo $obj['MaxChargingSoc'];?>" placeholder="<?php echo ($obj['MaxChargingSoc']==0||$obj['MaxChargingSoc']=="")?"'0' means unlimit":"";?>" title="'0' means unlimit">
+											<small class="form-text text-muted-red"><label id="MaxChargingSocText" style="display:none;">'0' means unlimit</label></small>
+										</div>
 										<div class="form-group" style="display:<?php echo $am001;?>">
 											<label>Stop Charging By Button</label>
 											<select class="form-control" id="StopChargingByButton" name="StopChargingByButton">
@@ -2091,6 +2097,9 @@ CORE STYLES ABOVE - NO TOUCHY
 		if(document.getElementById("MaxChargingDuration").value=="0" || document.getElementById("MaxChargingDuration").value==""){
 			document.getElementById("MaxChargingDurationText").style.display="block";
 		}
+		if(document.getElementById("MaxChargingSoc").value=="0" || document.getElementById("MaxChargingSoc").value==""){
+			document.getElementById("MaxChargingSocText").style.display="block";
+		}
 		if(document.getElementById("ModelName").value.substr(8,1) != "0"){
 			document.getElementById("AcMaxChargingCurrentDiv").style.display="block";
 			if(document.getElementById("AcMaxChargingCurrent").value=="0" || document.getElementById("AcMaxChargingCurrent").value==""){
@@ -2100,6 +2109,7 @@ CORE STYLES ABOVE - NO TOUCHY
 			document.getElementById("MaxChargingPowerLbl").innerHTML="DC MaxCharging Power";
 			document.getElementById("MaxChargingCurrentLbl").innerHTML="DC MaxCharging Current";
 			document.getElementById("MaxChargingDurationLbl").innerHTML="DC MaxCharging Duration";
+			document.getElementById("MaxChargingSocLbl").innerHTML="DC MaxCharging Soc";
 		}
 		else{
 			document.getElementById("AcMaxChargingCurrentDiv").style.display="none";
@@ -2137,6 +2147,14 @@ CORE STYLES ABOVE - NO TOUCHY
 				document.getElementById(this.id+"Text").style.display="none";
 			}
 		});
+		document.getElementById("MaxChargingSoc").addEventListener("change", function() {
+			if(document.getElementById(this.id).value == "0" || document.getElementById(this.id).value == ""){
+				document.getElementById(this.id+"Text").style.display="block";
+			}
+			else{
+				document.getElementById(this.id+"Text").style.display="none";
+			}
+		});
 		document.getElementById("AcMaxChargingCurrent").addEventListener("change", function() {
 			if(document.getElementById(this.id).value == "0" || document.getElementById(this.id).value == ""){
 				document.getElementById(this.id+"Text").style.display="block";
@@ -2186,6 +2204,7 @@ CORE STYLES ABOVE - NO TOUCHY
 						"&MaxChargingCurrent=" + document.getElementById("MaxChargingCurrent").value+
 						"&AcMaxChargingCurrent=" + document.getElementById("AcMaxChargingCurrent").value+
 						"&MaxChargingDuration=" + document.getElementById("MaxChargingDuration").value+
+						"&MaxChargingSoc=" + document.getElementById("MaxChargingSoc").value+
 						"&StopChargingByButton=" + document.getElementById("StopChargingByButton").value+
 						"&LocalWhiteCard0=" + document.getElementById("LocalWhiteCard0").value+
 						"&LocalWhiteCard1=" + document.getElementById("LocalWhiteCard1").value+
@@ -2264,6 +2283,7 @@ CORE STYLES ABOVE - NO TOUCHY
 		var MaxChargingCurrent = document.getElementById("MaxChargingCurrent").value;
 		var AcMaxChargingCurrent = document.getElementById("AcMaxChargingCurrent").value;
 		var MaxChargingDuration = document.getElementById("MaxChargingDuration").value;
+		var MaxChargingSoc = document.getElementById("MaxChargingSoc").value;
 		
 		if(LocalWhiteCard0 != ""){
 			if(LocalWhiteCard0.length>32){
@@ -2455,6 +2475,24 @@ CORE STYLES ABOVE - NO TOUCHY
 			document.getElementById("MaxChargingDuration").focus();
 			return false;
 		}
+		if((document.getElementById("ModelName").value.substr(0,1)=="D") && (MaxChargingSoc > 100))
+		{
+			alert("MaxChargingSoc must <= 100!");
+			document.getElementById("MaxChargingSoc").focus();
+			return false;
+		}
+		if((document.getElementById("ModelName").value.substr(0,1)=="D") && (MaxChargingSoc == ""))
+		{
+			alert("Fill Max Charging Soc !");
+			document.getElementById("MaxChargingSoc").focus();
+			return false;
+		}
+		if((document.getElementById("ModelName").value.substr(0,1)=="D") && (MaxChargingSoc < 0))
+		{
+			alert("MaxChargingSoc must >= 0!");
+			document.getElementById("MaxChargingSoc").focus();
+			return false;
+		}
 		
 		if(document.getElementById("ModelName").value.substr(0,1)=="A" && MaxChargingCurrent < 6 && MaxChargingCurrent !=0)
 		{

+ 4 - 0
EVSE/rootfs/var/www/set_charging_action.php

@@ -27,6 +27,7 @@
 		checkMaxValue("MaxChargingCurrent");
 		checkMaxValue("AcMaxChargingCurrent");
 		checkMaxValue("MaxChargingDuration");
+		checkMaxValue("MaxChargingSoc");
 		checkValue("StopChargingByButton");
 		if(substr($_POST['ModelName'],0,1)=="A" && $_POST['MaxChargingCurrent']<6 && $_POST['MaxChargingCurrent']!=0){
 			$jsone['result'] = "Fail";
@@ -50,6 +51,9 @@
 		if(isset($_POST['MaxChargingDuration'])){
 			$json['MaxChargingDuration'] 		= (int)$_POST['MaxChargingDuration'];
 		}
+		if(isset($_POST['MaxChargingSoc'])){
+			$json['MaxChargingSoc'] 		= (int)$_POST['MaxChargingSoc'];
+		}
 		if(isset($_POST['StopChargingByButton'])){
 			$json['StopChargingByButton'] 		= (int)$_POST['StopChargingByButton'];
 		}