|
@@ -403,17 +403,28 @@ int main(void)
|
|
|
case CMD_QUERY_ALARM_LOG:
|
|
|
break;
|
|
|
case CMD_QUERY_SN:
|
|
|
+ ftime(&csuTime);
|
|
|
+ tmCSU = localtime(&csuTime.time);
|
|
|
DEBUG_INFO("Query serial number: %s\r\n", (char*)ShmSysConfigAndInfo->SysConfig.SerialNumber);
|
|
|
- tx_size = 7 + strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber);
|
|
|
+ tx_size = 15 + strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber);
|
|
|
outBuffer[0] = 0xaa;
|
|
|
outBuffer[1] = PROTOCOL_ADDR;
|
|
|
outBuffer[2] = inputBuffer[1];
|
|
|
outBuffer[3] = CMD_QUERY_SN;
|
|
|
- outBuffer[4] = strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber)&0xff;
|
|
|
- outBuffer[5] = (strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber)>>0x08) & 0xff;
|
|
|
+ outBuffer[4] = (strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber)+8)&0xff;
|
|
|
+ outBuffer[5] = ((strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber)+8)>>0x08) & 0xff;
|
|
|
+ outBuffer[6] = ((tmCSU->tm_year+1900)/1000)+'0';
|
|
|
+ outBuffer[7] = (((tmCSU->tm_year+1900)%1000)/100)+'0';
|
|
|
+ outBuffer[8] = (((tmCSU->tm_year+1900)%100)/10)+'0';
|
|
|
+ outBuffer[9] = ((tmCSU->tm_year+1900)%10) +'0';
|
|
|
+ outBuffer[10] = ((tmCSU->tm_mon+1)/10) +'0';
|
|
|
+ outBuffer[11] = ((tmCSU->tm_mon+1)%10) +'0';
|
|
|
+ outBuffer[12] = (tmCSU->tm_mday/10) +'0';
|
|
|
+ outBuffer[13] = (tmCSU->tm_mday%10) +'0';
|
|
|
+
|
|
|
for(uint8_t idx=0;idx<strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber);idx++)
|
|
|
{
|
|
|
- outBuffer[6+idx] = (char)ShmSysConfigAndInfo->SysConfig.SerialNumber[idx];
|
|
|
+ outBuffer[14+idx] = (char)ShmSysConfigAndInfo->SysConfig.SerialNumber[idx];
|
|
|
}
|
|
|
|
|
|
for(uint16_t idx=0;idx<(outBuffer[4] | (outBuffer[5]<<8));idx++)
|
|
@@ -496,11 +507,11 @@ int main(void)
|
|
|
memset(ShmSysConfigAndInfo->SysConfig.SerialNumber, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SerialNumber));
|
|
|
memset(ShmSysConfigAndInfo->SysConfig.SystemId, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SystemId));
|
|
|
|
|
|
- for(uint16_t idx=0;idx<(inputBuffer[4] | (inputBuffer[5]<<8));idx++)
|
|
|
+ for(uint16_t idx=0;idx<((inputBuffer[4] | (inputBuffer[5]<<8))-8);idx++)
|
|
|
{
|
|
|
- ShmSysConfigAndInfo->SysConfig.SerialNumber[idx] = inputBuffer[6+idx];
|
|
|
+ ShmSysConfigAndInfo->SysConfig.SerialNumber[idx] = inputBuffer[14+idx];
|
|
|
}
|
|
|
- ShmSysConfigAndInfo->SysConfig.SerialNumber[(inputBuffer[4] | (inputBuffer[5]<<8))] = '\0';
|
|
|
+ ShmSysConfigAndInfo->SysConfig.SerialNumber[(inputBuffer[4] | (inputBuffer[5]<<8))-8] = '\0';
|
|
|
memcpy(ShmSysConfigAndInfo->SysConfig.SystemId, ShmSysConfigAndInfo->SysConfig.ModelName, strlen((char*)ShmSysConfigAndInfo->SysConfig.ModelName));
|
|
|
memcpy(&ShmSysConfigAndInfo->SysConfig.SystemId[strlen((char*)ShmSysConfigAndInfo->SysConfig.ModelName)], ShmSysConfigAndInfo->SysConfig.SerialNumber, (inputBuffer[4] | (inputBuffer[5]<<8)));
|
|
|
|