|
@@ -118,12 +118,12 @@ static void MainTask(void* arg)
|
|
file = OsaFopen(APP_DATAINFO_FILE_NAME,"rb");
|
|
file = OsaFopen(APP_DATAINFO_FILE_NAME,"rb");
|
|
OsaFseek(file, 0, SEEK_SET);
|
|
OsaFseek(file, 0, SEEK_SET);
|
|
pReadAppData = OsaAllocZeroMemory(AppDataHr.fileBodySize+3);
|
|
pReadAppData = OsaAllocZeroMemory(AppDataHr.fileBodySize+3);
|
|
- readCount = OsaFread(pReadAppData, AppConfigHr.fileBodySize+3, 1, file);
|
|
|
|
- printf("AppConfigHr.fileBodySize+4 = %d\n",AppConfigHr.fileBodySize+3);
|
|
|
|
|
|
+ readCount = OsaFread(pReadAppData, AppDataHr.fileBodySize+3, 1, file);
|
|
|
|
+ printf("AppDataHr.fileBodySize+3 = %d\n",AppDataHr.fileBodySize+3);
|
|
printf("readCount = %d\n",readCount);
|
|
printf("readCount = %d\n",readCount);
|
|
- printf("the config data = \n");
|
|
|
|
- for (int i ;i<AppConfigHr.fileBodySize+3;i++)
|
|
|
|
- printf("%d ",*(pReadAppData+i));
|
|
|
|
|
|
+ printf("the data = ");
|
|
|
|
+ for (int i=0 ;i<AppDataHr.fileBodySize+3;i++)
|
|
|
|
+ printf("%x(%d) ",*(pReadAppData+i),i);
|
|
printf("\n");
|
|
printf("\n");
|
|
#endif
|
|
#endif
|
|
if(AppNVMData.AppSwVersion!=APPSWVERSION)
|
|
if(AppNVMData.AppSwVersion!=APPSWVERSION)
|
|
@@ -607,7 +607,6 @@ static void appSaveDataInfo(void)
|
|
{
|
|
{
|
|
OSAFILE fp = PNULL;
|
|
OSAFILE fp = PNULL;
|
|
UINT32 writeCount = 0;
|
|
UINT32 writeCount = 0;
|
|
- AppDataHeader AppDataHr; //4 bytes
|
|
|
|
fp = OsaFopen(APP_DATAINFO_FILE_NAME, "wb"); //read & write
|
|
fp = OsaFopen(APP_DATAINFO_FILE_NAME, "wb"); //read & write
|
|
if(OsaFseek(fp, 0, SEEK_SET) != 0)
|
|
if(OsaFseek(fp, 0, SEEK_SET) != 0)
|
|
{
|
|
{
|
|
@@ -624,10 +623,12 @@ static void appSaveDataInfo(void)
|
|
#endif
|
|
#endif
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- AppDataHr.fileBodySize = sizeof(AppDataBody);
|
|
|
|
|
|
+ AppDataHr.fileBodySize = sizeof(AppDataInfo);
|
|
AppDataHr.checkSum = OsaCalcCrcValue((UINT8 *)&AppDataInfo, sizeof(AppDataInfo));
|
|
AppDataHr.checkSum = OsaCalcCrcValue((UINT8 *)&AppDataInfo, sizeof(AppDataInfo));
|
|
-
|
|
|
|
- writeCount = OsaFwrite(&AppDataHr, sizeof(AppDataHeader), 1, fp);
|
|
|
|
|
|
+ #ifdef USING_PRINTF
|
|
|
|
+ printf(" AppDataHr.fileBodySize:%x\n",AppDataHr.fileBodySize);
|
|
|
|
+ #endif
|
|
|
|
+ writeCount = OsaFwrite(&AppDataHr, sizeof(AppDataHr), 1, fp);
|
|
if (writeCount != 1)
|
|
if (writeCount != 1)
|
|
{
|
|
{
|
|
#ifdef USING_PRINTF
|
|
#ifdef USING_PRINTF
|
|
@@ -665,12 +666,12 @@ static void LoadAppDataInfo(void)
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- readCount = OsaFread(&AppDataHr, sizeof(AppDataHeader), 1, fp);
|
|
|
|
|
|
+ readCount = OsaFread(&AppDataHr, sizeof(AppDataHr), 1, fp);
|
|
UINT8 readtimes=0;
|
|
UINT8 readtimes=0;
|
|
while (readCount != 1 && readtimes<=5 )
|
|
while (readCount != 1 && readtimes<=5 )
|
|
{
|
|
{
|
|
readtimes++;
|
|
readtimes++;
|
|
- readCount = OsaFread(&AppDataHr, sizeof(AppDataHeader), 1, fp);
|
|
|
|
|
|
+ readCount = OsaFread(&AppDataHr, sizeof(AppDataHr), 1, fp);
|
|
osDelay(10);
|
|
osDelay(10);
|
|
}
|
|
}
|
|
if(readtimes>5)
|
|
if(readtimes>5)
|
|
@@ -680,7 +681,7 @@ static void LoadAppDataInfo(void)
|
|
appSaveDataInfo();
|
|
appSaveDataInfo();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- if(AppDataHr.fileBodySize==sizeof(AppDataBody))//结构体数据没变动,可直接读出
|
|
|
|
|
|
+ if(AppDataHr.fileBodySize==sizeof(AppDataInfo))//结构体数据没变动,可直接读出
|
|
{
|
|
{
|
|
readCount = OsaFread(pReadAppConfig, AppDataHr.fileBodySize, 1, fp);
|
|
readCount = OsaFread(pReadAppConfig, AppDataHr.fileBodySize, 1, fp);
|
|
//crcCheck = OsaCalcCrcValue((UINT8 *)pReadAppConfig, sizeof(AppNVMData));
|
|
//crcCheck = OsaCalcCrcValue((UINT8 *)pReadAppConfig, sizeof(AppNVMData));
|
|
@@ -705,6 +706,9 @@ static void LoadAppDataInfo(void)
|
|
//crcCheck = OsaCalcCrcValue((UINT8 *)pReadAppConfig, sizeof(AppNVMData));
|
|
//crcCheck = OsaCalcCrcValue((UINT8 *)pReadAppConfig, sizeof(AppNVMData));
|
|
}
|
|
}
|
|
appSaveDataInfo();
|
|
appSaveDataInfo();
|
|
|
|
+ #ifdef USING_PRINTF
|
|
|
|
+ printf(" Struct update\n");
|
|
|
|
+ #endif
|
|
}
|
|
}
|
|
OsaFclose(fp);
|
|
OsaFclose(fp);
|
|
return;
|
|
return;
|
|
@@ -713,12 +717,13 @@ static void LoadAppDataInfo(void)
|
|
//无法找到文件时的第一次启动,后续不会启动此函数
|
|
//无法找到文件时的第一次启动,后续不会启动此函数
|
|
static void setDefaultAppDataInfo(void)
|
|
static void setDefaultAppDataInfo(void)
|
|
{
|
|
{
|
|
- memset(&AppDataInfo, 0x00, sizeof(AppDataBody));
|
|
|
|
|
|
+ memset(&AppDataInfo, 0x00, sizeof(AppDataInfo));
|
|
AppDataInfo.appDataModify = false;
|
|
AppDataInfo.appDataModify = false;
|
|
AppDataInfo.BmsChrgInfoSendFreq = 5;
|
|
AppDataInfo.BmsChrgInfoSendFreq = 5;
|
|
AppDataInfo.BmsDisChrgInfoSendFreq = 30;
|
|
AppDataInfo.BmsDisChrgInfoSendFreq = 30;
|
|
AppDataInfo.GpsChrgInfoSendFreq = 30;
|
|
AppDataInfo.GpsChrgInfoSendFreq = 30;
|
|
AppDataInfo.GpsDisChrgInfoSendFreq = 5;
|
|
AppDataInfo.GpsDisChrgInfoSendFreq = 5;
|
|
|
|
+ AppDataInfo.CumulativeCapacity = 0;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|