Răsfoiți Sursa

[Add][Modularization][Module_4g / Webservice]

2022.04.22 / Folus Wen

Actions:
1. Webpage network configuration add cellular network type item.
2. Webpage backend configuration enable OCPP related item if local loading balance enable.

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 ani în urmă
părinte
comite
edfcc1b141

+ 2 - 2
EVSE/Modularization/Makefile

@@ -8,7 +8,7 @@ Lib_RatedCurrentLib = "-L./" -lm -lModule_RatedCurrent
 all: clean Module_RFIDLib Module_SystexLib Module_RatedCurrentLib Module_UpgradeLib Module_Wifi \
      WebServiceLib Ocpp16 Phihong_PsuCommObj Module_4g Infypwr_PsuCommObj \
      Module_EventLogging Module_ProduceUtils \
-     Ocpp20 Module_InitUpgrade Module_Payment Module_DcMeter Ocppph Module_PowerSharing_Task
+     Ocpp20 Module_Payment Module_DcMeter Ocppph Module_PowerSharing_Task
 
 clean:
 	rm -f libModule_RFID.a
@@ -155,4 +155,4 @@ Module_PowerSharing_Task:
 	rm -f Module_PowerSharing
 	$(CC) -D $(Project) "-I../Projects" "-I./ocppfiles" "-include./Module_RatedCurrent.h" -O0  -Wall -fmessage-length=0 Module_PowerSharing.c ${Lib_RatedCurrentLib} -lm -lrt -o Module_PowerSharing
 	rm -f *.o
-	mv -f Module_PowerSharing ../rootfs/root
+	mv -f Module_PowerSharing ../rootfs/root

+ 1 - 1
EVSE/Modularization/Module_4g.c

@@ -1598,7 +1598,7 @@ int main(void)
 							 *	TODO:
 							 *	1. Act priority check
 							 */
-							configNetworkMode(NETWORK_MODE_AUTO);
+							configNetworkMode(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomNetworkType);
 							if(Dongle.Model == DONGLE_QUECTEL)
 							{
 								system("/root/ppp/4GDetection /dev/ttyUSB3 &");

+ 11 - 0
EVSE/Modularization/WebService.c

@@ -958,6 +958,7 @@ int main(int argc, char *argv[]) {
 			char *TelcomChapPapPwd=NULL;
 			char *TelcomIpAddress=NULL;
 			char TelcomEnabled=0;
+			char TelcomNetworkType=0;
 			char Wcnt=0;
 			char Tcnt=0;
 			if( json_object_object_get_ex(jobj, "Eth0DhcpClient", &val_obj) ) {
@@ -1041,11 +1042,18 @@ int main(int argc, char *argv[]) {
 				if(TelcomEnabled!=ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomEnabled) Tcnt++;
 				ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomEnabled=TelcomEnabled;
 			}
+			if( json_object_object_get_ex(jobj, "TelcomNetworkType", &val_obj) ) {
+				TelcomNetworkType = json_object_get_int(val_obj);
+				if(TelcomNetworkType!=ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomNetworkType) Tcnt++;
+				ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomNetworkType=TelcomNetworkType;
+			}
 			if(Wcnt>0){
 				system ("pkill Module_Wifi");
 			}
 			if(Tcnt>0){
 				system ("pkill Module_4g");
+				system ("killall 4GDetection");
+				system ("killall pppd");
 			}
 		}
 		if (strcmp(argv[1], "4") == 0) {
@@ -1857,6 +1865,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *TelcomIpAddress;
 		struct json_object *TelcomNetworkConn;
 		struct json_object *TelcomEnabled;
+		struct json_object *TelcomNetworkType;
 		//backend
 		struct json_object *BackendConnTimeout;
 		struct json_object *OfflinePolicy;
@@ -2541,6 +2550,7 @@ int main(int argc, char *argv[]) {
 		TelcomIpAddress = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomIpAddress);
 		TelcomNetworkConn = json_object_new_int(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomNetworkConn);
 		TelcomEnabled = json_object_new_int(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomEnabled);
+		TelcomNetworkType = json_object_new_int(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomNetworkType);
 		//backend
 		BackendConnTimeout = json_object_new_int(ShmSysConfigAndInfo->SysConfig.BackendConnTimeout);
 		OfflinePolicy = json_object_new_int(ShmSysConfigAndInfo->SysConfig.OfflinePolicy);
@@ -2968,6 +2978,7 @@ int main(int argc, char *argv[]) {
 		json_object_object_add(jobj3,"TelcomIpAddress",TelcomIpAddress);
 		json_object_object_add(jobj3,"TelcomNetworkConn",TelcomNetworkConn);
 		json_object_object_add(jobj3,"TelcomEnabled",TelcomEnabled);
+		json_object_object_add(jobj3,"TelcomNetworkType",TelcomNetworkType);
 		printf("%s\n", json_object_to_json_string(jobj3));
 		json_object_put(jobj3);
 

+ 38 - 0
EVSE/Projects/AX80/Apps/LCM_Wistron/LcmCommandDriver.c

@@ -124,6 +124,44 @@ int publish_back_dimming(struct mosquitto *mosq, uint8_t lightLevel)
 	return publish_data(mosq, "client/command", outputStr);
 }
 
+/**
+ *
+ * @param mosq
+ */
+int publish_audio_volume(struct mosquitto *mosq, uint8_t volume)
+{
+	json_object *payload = json_object_new_object();
+	char outputStr[2048]={0};
+	char buf[8];
+
+	json_object_object_add(payload, "task_name", json_object_new_string("audio_volume"));
+
+	sprintf(buf, "%d", volume);
+	json_object_object_add(payload, "volume", json_object_new_string(buf));
+
+	sprintf(outputStr, "%s", json_object_to_json_string_ext(payload, JSON_C_TO_STRING_PLAIN));
+	json_object_put(payload);
+
+	return publish_data(mosq, "client/command", outputStr);
+}
+
+/**
+ *
+ * @param mosq
+ */
+int publish_trigger_report_status(struct mosquitto *mosq)
+{
+	json_object *payload = json_object_new_object();
+	char outputStr[2048]={0};
+
+	json_object_object_add(payload, "task_name", json_object_new_string("report_status"));
+
+	sprintf(outputStr, "%s", json_object_to_json_string_ext(payload, JSON_C_TO_STRING_PLAIN));
+	json_object_put(payload);
+
+	return publish_data(mosq, "client/command", outputStr);
+}
+
 /**
  *
  * @param mosq

+ 26 - 0
EVSE/Projects/AX80/Apps/LCM_Wistron/Module_LcmControl_Wistron.c

@@ -725,6 +725,24 @@ int publish_clear_screen_sample(struct mosquitto *mosq)
 	return publish_clear_screen(mosq);
 }
 
+/**
+ *
+ */
+int publish_audio_volume_sample(struct mosquitto *mosq)
+{
+	return publish_audio_volume(mosq, 50);
+}
+
+/**
+ *
+ * @param mosq
+ * @return
+ */
+int publish_trigger_report_status_sample(struct mosquitto *mosq)
+{
+	return publish_trigger_report_status(mosq);
+}
+
 /**
  *
  * @return
@@ -1019,6 +1037,8 @@ int main(void)
 		printf("\n  9: publish_videoview_add_sample.");
 		printf("\n  10: publish_view_remove_sample.");
 		printf("\n  11: publish_clear_screen.");
+		printf("\n  12: publish_audio_volume.");
+		printf("\n  13: publish_trigger_report_status.");
 		printf("\n ==================================================");
 		printf("\n  Please input item to test: ");
 		scanf("%s", &cmd[0]);
@@ -1058,6 +1078,12 @@ int main(void)
 			case 11:
 				publish_clear_screen_sample(mosq);
 				break;
+			case 12:
+				publish_audio_volume_sample(mosq);
+				break;
+			case 13:
+				publish_trigger_report_status_sample(mosq);
+				break;
 		}
 #endif
 

+ 2 - 0
EVSE/Projects/AX80/Apps/LCM_Wistron/Module_LcmControl_Wistron.h

@@ -200,5 +200,7 @@ extern int publish_imageview_add(struct mosquitto *mosq, Image_List *imageList,
 extern int publish_videoview_add(struct mosquitto *mosq, Video_List *videoList, uint8_t listCount);
 extern int publish_view_remove(struct mosquitto *mosq, Text_List *textList, uint8_t textListCount,  Image_List *imageList, uint8_t imageListCount,  Video_List *videoList, uint8_t videoListCount);
 extern int publish_clear_screen(struct mosquitto *mosq);
+extern int publish_audio_volume(struct mosquitto *mosq, uint8_t volume);
+extern int publish_trigger_report_status(struct mosquitto *mosq);
 
 #endif /* MODULE_MQTTCLIENT_H_ */

+ 2 - 1
EVSE/Projects/define.h

@@ -385,7 +385,8 @@ struct TeleConfigData
 {
 	unsigned char		TelcomModelName[64];		//default: Null
 	unsigned char		TelcomSoftwareVer[64];		//default: Null
-	unsigned char		TelcomApn[256];				//default: Null
+	unsigned char		TelcomApn[255];				//default: Null
+	unsigned char		TelcomNetworkType;			//0: Auto	1: CDMA	 2: WCDMA  3: LTE  4: TD-SCDMA  5: UMTS  6: CDMA  7: HDR  8: CDMA/HDR
 	int					TelcomRssi;					//dbm
 	unsigned char		TelcomChapPapId[256];		//default: Null
 	unsigned char		TelcomChapPapPwd[256];		//default: Null

+ 3 - 1
EVSE/rootfs/var/www/set_backend.php

@@ -539,6 +539,7 @@ CORE STYLES ABOVE - NO TOUCHY
 
 <?php if(substr($ModelName,0,2)=="AX"){?>
 	function isEnableLocalPowerSharging_changed(){
+		/*
 		if(document.getElementById("isEnableLocalPowerSharging").selectedIndex!=0){
 			document.getElementById("OcppServerURL").setAttribute("readOnly","true");
 			document.getElementById("MaintainServerURL").setAttribute("readOnly","true");
@@ -550,7 +551,8 @@ CORE STYLES ABOVE - NO TOUCHY
 			document.getElementById("MaintainServerURL").removeAttribute("readOnly");
 			document.getElementById("ChargeBoxId").removeAttribute("readOnly");
 			document.getElementById("chargePointVendor").removeAttribute("readOnly");
-		}
+		}*/
+
 		if(document.getElementById("isEnableLocalPowerSharging").selectedIndex==2){
 			document.getElementById("PowerSharingServerIPDiv").style.display="block";
 		}

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

@@ -264,6 +264,15 @@ img {
 											<label>APN</label>
 											<input type="text" name="TelcomApn" id="TelcomApn" class="form-control" value="<?php echo $obj->{'TelcomApn'};?>">
 										</div>
+										<div class="form-group">
+											<label>Network Type</label>
+											<select class="form-control" id="TelcomNetworkType" name="TelcomEnabled">
+												<option value="0" <?php echo $obj->{'TelcomNetworkType'}=="0"?"selected":""?>>Auto</option>
+												<option value="1" <?php echo $obj->{'TelcomNetworkType'}=="1"?"selected":""?>>2G</option>
+                                                                                                <option value="5" <?php echo $obj->{'TelcomNetworkType'}=="5"?"selected":""?>>3G</option>
+												<option value="3" <?php echo $obj->{'TelcomNetworkType'}=="3"?"selected":""?>>4G</option>							
+											</select>
+										</div>	
 										<div class="form-group">
 											<label>RSSI</label>
 											<input type="text" readonly class="form-control" placeholder="<?php echo $obj->{'TelcomRssi'};?> dBm">
@@ -384,6 +393,7 @@ img {
 						"&WifiSubmaskAddress=" + document.getElementById("WifiSubmaskAddress").value+
 						"&WifiGatewayAddress=" + document.getElementById("WifiGatewayAddress").value+
 						"&TelcomApn=" + escape(document.getElementById("TelcomApn").value)+
+						"&TelcomNetworkType=" + escape(document.getElementById("TelcomNetworkType").value)+
 						"&TelcomChapPapId=" + escape(document.getElementById("TelcomChapPapId").value)+
 						"&TelcomChapPapPwd=" + escape(document.getElementById("TelcomChapPapPwd").value)+
 						"&TelcomIpAddress=" + document.getElementById("TelcomIpAddress").value+

+ 3 - 0
EVSE/rootfs/var/www/set_network_action.php

@@ -76,6 +76,9 @@
 		if(isset($_REQUEST['TelcomEnabled'])){
 			$json['TelcomEnabled']			= $_REQUEST['TelcomEnabled'];
 		}
+		if(isset($_REQUEST['TelcomNetworkType'])){
+			$json['TelcomNetworkType']			= $_REQUEST['TelcomNetworkType'];
+		}
 
 //		ob_start();
 		

+ 2 - 0
Makefile

@@ -1771,6 +1771,8 @@ AX80-rootfs:
 	@sync
 	@mount -o loop EVSE/Projects/AX80/Images/ramdisk EVSE/Projects/AX80/Images/mnt
 	@cp -rfv EVSE/rootfs/* EVSE/Projects/AX80/Images/mnt/
+	@rm -f EVSE/Projects/AX80/Images/mnt/root/Module_PCBTest
+	@rm -f EVSE/Projects/AX80/Images/mnt/root/Module_Payment
 	@chown www-data:www-data EVSE/Projects/AX80/Images/mnt/var/www -R
 	@chmod 777 EVSE/Projects/AX80/Images/mnt/var/log -R
 	@chmod 777 EVSE/Projects/AX80/Images/mnt/var/run -R