Browse Source

2020.04.14 / Folus Wen

Actions:
1. Module_ProduceUtils.c implement 4G revision info read command.
2. Module_ProduceUtils.c implement save configuration to memroy command.

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 5 năm trước cách đây
mục cha
commit
3d144cbff1

+ 60 - 4
EVSE/Modularization/Module_ProduceUtils.c

@@ -33,6 +33,8 @@
 #define ARRAY_SIZE(A)			(sizeof(A) / sizeof(A[0]))
 #define PASS					1
 #define FAIL					0
+#define ON						1
+#define OFF						0
 #define MtdBlockSize			0x600000
 
 #define LISTEN_PORT				8234
@@ -42,7 +44,7 @@
 
 struct SysConfigAndInfo			*ShmSysConfigAndInfo;
 struct StatusCodeData 			*ShmStatusCodeData;
-
+struct OCPP16Data				*ShmOCPP16Data;
 
 int StoreLogMsg(const char *fmt, ...)
 {
@@ -126,6 +128,24 @@ int InitShareMemory()
 	else
 	{}
 
+	//creat ShmOCPP16Data
+	if ((MeterSMId = shmget(ShmOcppModuleKey, sizeof(struct OCPP16Data),  0777)) < 0)
+	{
+		#ifdef SystemLogMessage
+		DEBUG_ERROR("shmget ShmOCPP16Data NG");
+		#endif
+		result = FAIL;
+	}
+	else if ((ShmOCPP16Data = shmat(MeterSMId, NULL, 0)) == (void *) -1)
+	{
+		#ifdef SystemLogMessage
+		DEBUG_ERROR("shmat ShmOCPP16Data NG");
+		#endif
+		result = FAIL;
+	}
+	else
+	{}
+
    	return result;
 }
 
@@ -488,8 +508,25 @@ int main(void)
 						}
 						outBuffer[20] = chksum;
 						break;
-					case CMD_QUERY_PRESENT_OUTPUTCURRENT:
+					case CMD_QUERY_4G_REVISION:
+						DEBUG_INFO("Query 4G module revision: %s\r\n", (char*)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSoftwareVer);
+						tx_size = 7 + strlen((char*)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSoftwareVer);
+						outBuffer[0] = 0xaa;
+						outBuffer[1] = PROTOCOL_ADDR;
+						outBuffer[2] = inputBuffer[1];
+						outBuffer[3] = CMD_QUERY_4G_REVISION;
+						outBuffer[4] = strlen((char*)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSoftwareVer)&0xff;
+						outBuffer[5] = (strlen((char*)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSoftwareVer)>>0x08) & 0xff;
+						for(uint8_t idx=0;idx<strlen((char*)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSoftwareVer);idx++)
+						{
+							outBuffer[6+idx] = (char)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSoftwareVer[idx];
+						}
 
+						for(uint16_t idx=0;idx<(outBuffer[4] | (outBuffer[5]<<8));idx++)
+						{
+						  chksum ^= outBuffer[6 + idx];
+						}
+						outBuffer[6+(outBuffer[4] | (outBuffer[5]<<8))] = chksum;
 						break;
 					case CMD_QUERY_AC_STATUS:
 						break;
@@ -522,7 +559,7 @@ int main(void)
 						outBuffer[3] = CMD_CONFIG_SERIAL_NUMBER;
 						outBuffer[4] = 0x01;
 						outBuffer[5] = 0x00;
-						outBuffer[6] = (StoreUsrConfigData(&ShmSysConfigAndInfo->SysConfig)!=0x01?0x00:0x01);
+						outBuffer[6] = 0x01;
 						outBuffer[7] = outBuffer[6];
 
 						DEBUG_INFO("Config serial number: %s\r\n", (char*)ShmSysConfigAndInfo->SysConfig.SerialNumber);
@@ -547,7 +584,7 @@ int main(void)
 						outBuffer[3] = CMD_CONFIG_MODEL_NAME;
 						outBuffer[4] = 0x01;
 						outBuffer[5] = 0x00;
-						outBuffer[6] = (StoreUsrConfigData(&ShmSysConfigAndInfo->SysConfig)!=0x01?0x00:0x01);
+						outBuffer[6] = 0x01;
 						outBuffer[7] = outBuffer[6];
 						DEBUG_INFO("Config model name: %s\r\n", (char*)ShmSysConfigAndInfo->SysConfig.ModelName);
 						break;
@@ -587,6 +624,25 @@ int main(void)
 					case CMD_CONFIG_MCU_RESET_REQUEST:
 						break;
 					case CMD_CONFIG_BREATHE_LED_TIMING:
+						break;
+					case CMD_CONFIG_SAVE_CONFIGURATION:
+						tx_size = 8;
+						outBuffer[0] = 0xaa;
+						outBuffer[1] = PROTOCOL_ADDR;
+						outBuffer[2] =  inputBuffer[1];
+						outBuffer[3] = CMD_CONFIG_SAVE_CONFIGURATION;
+						outBuffer[4] = 0x01;
+						outBuffer[5] = 0x00;
+						outBuffer[6] = (StoreUsrConfigData(&ShmSysConfigAndInfo->SysConfig)!=0x01?0x00:0x01);
+						outBuffer[7] = outBuffer[6];
+						DEBUG_INFO("Save configuration\r\n");
+
+						if((outBuffer[6] == PASS))
+						{
+							sprintf((char*)ShmOCPP16Data->Reset.Type, "Soft");
+							ShmOCPP16Data->MsMsg.bits.ResetReq = ON;
+						}
+
 						break;
 					case CMD_UPDATE_START:
 						break;

+ 2 - 0
EVSE/Modularization/Module_ProduceUtils.h

@@ -38,6 +38,7 @@ enum MESSAGE_COMMAND
 	CMD_QUERY_BLE_CENTRAL_ID = 0x2B,
 	CMD_QUERY_POWER_CONSUMPTION = 0x2C,
 	CMD_QUERY_GUN_PLUGIN_TIMES = 0x2D,
+	CMD_QUERY_4G_REVISION = 0x31,
 
 	CMD_CONFIG_FAN_SPEED = 0x81,
 	CMD_CONFIG_SERIAL_NUMBER = 0x82,
@@ -50,6 +51,7 @@ enum MESSAGE_COMMAND
 	CMD_CONFIG_MCU_MODE = 0x8A,
 	CMD_CONFIG_MCU_RESET_REQUEST = 0x8C,
 	CMD_CONFIG_BREATHE_LED_TIMING = 0x8D,
+	CMD_CONFIG_SAVE_CONFIGURATION = 0x91,
 
 	CMD_UPDATE_START = 0xe0,
 	CMD_UPDATE_ABOARD = 0xe1,

BIN
EVSE/Projects/AW-Regular/Images/FactoryDefaultConfig.bin


BIN
EVSE/Projects/AW-Regular/Images/ramdisk.gz