|
@@ -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;
|