#include "includes.h" SUT_CONFIG sutProductPara; void SaveProductParaToFlash(void); void ReadProductParaFromFlash(void) { unsigned char Rand,needSave; needSave=0; Rand=0;//GetRandBySTM32ID(); ReadFlashData(APP_CONFIG_ADDR,(unsigned char *)&sutProductPara,sizeof(SUT_CONFIG)); if(MCU_FLAG!=sutProductPara.McuFlag || 0!=strcmp(sutProductPara.ProductName,PRODUCT_NAME)){ SlwTrace(INF,"Rst Para",1); memset((unsigned char *)&sutProductPara,0,sizeof(SUT_CONFIG)); sutProductPara.McuFlag=MCU_FLAG; //MCU标识 strcpy(sutProductPara.ProductName,PRODUCT_NAME); sutProductPara.ProductVersion=PRODUCT_VERSION; sutProductPara.PSN=0; sutProductPara.Addr=0; sutProductPara.Sdebug=0; needSave=1; } else if(PRODUCT_VERSION!=sutProductPara.ProductVersion){ sutProductPara.ProductVersion=PRODUCT_VERSION; sutProductPara.Sdebug=0; needSave=1; } if(needSave) SaveProductParaToFlash(); } void SaveProductParaToFlash(void) { PWR_EN_HIGH; WritePageData(APP_CONFIG_ADDR,(unsigned char *)&sutProductPara,sizeof(SUT_CONFIG)); PWR_EN_LOW; } void PcMsgHandle(char *msg) { const char *CmdList[]={ "TM", //调试Modem "SADDR", "RADDR", "SDEBUG", "SNODEBU", "SVER", ""//必须以空字串为结束 }; unsigned long PSN,AKEY; char buf[50]; char bufIP[6]; //char strAccount[20]; //char strPassword[20]; int i,j,temp,len; char flag; const char *pCmd; char *pMsg; int CmdListNum=0; pMsg = msg; while(*CmdList[CmdListNum++]);//计算命令列表个数 CmdListNum--; //查找与命令列表相同的命令位置 for(i=0;i0x20 && ';'!=*p && ValueLen<40) { *Value=*p; p++; Value++; ValueLen++; } *Value=0; return ValueLen; }