📄 mfw_ffs.c
字号:
return 0;
}
effs_t flash_Stopwread()
{
FlashStopwDataInitialise(); //hxl add for avoid fread fail error 2002-11-25
/* 2004/04/22 sunsj modify */
return ffs_fread(FFSFILE_STOPWATCH_PATH, &FFS_StopwData, sizeof(FFS_StopwData));
}
void FlashStopwDataInitialise(void)
{
FFS_StopwData=FlashStopwatchDefaultData;
//memset(&FFS_ScheData,0,sizeof(Flash_Sche));
}
effs_t flash_Memowrite()//gdy add for memo
{
//write_flag = DATA;
MmiTrace("flash_Memowrite");
ffsfileCmd.ffsfile[MemoFileIdx].pdir=FFSFILE_MEMO_PATH;
ffsfileCmd.ffsfile[MemoFileIdx].pdata=&FFS_MemoData;
ffsfileCmd.ffsfile[MemoFileIdx].size=sizeof(FFS_MemoData);
ffsfileCmd.ffsfile[MemoFileIdx].writeStatus=1;
//if time is stop
return 0;
}
effs_t flash_Memoread()//gdy add for memo
{
FlashMemoDataInitialise();
/* 2004/04/22 sunsj modify */
return ffs_fread(FFSFILE_MEMO_PATH, &FFS_MemoData, sizeof(FFS_MemoData));
}
void FlashMemoDataInitialise(void)
{
FFS_MemoData=FlashMemoDefaultData;
}
int Iswritefileend(char * filename, int filesize)
{
struct stat_s stat;
effs_t ret;
char str[20]="/bmi/"; /* 2004/04/22 sunsj modify */
strcat(str,filename);
ret=ffs_stat(str, &stat); // /mmi/
if( stat.size==filesize )
return 1;
else
return 0;
}
//hxl add 30/08/02---------------------------------------------------------
ConfigDataCheck ConfigDataCheckSum;
uint16 getConfigData_checksum(char *filepath)
{
uint16 checksumdata;
uint16 size=0;
uint8 *ptr;
checksumdata=0;
if( strcmp(filepath,FFSFILE_CONFIG_PATH)==0 )
{
ptr=( uint8 * )&FlashDefaultData;
size= sizeof(FlashDefaultData);
}
else if( strcmp(filepath,FFSFILE_ENVIR_PATH)==0 )
{
ptr=( uint8 * )&FlashEnvDefaultData;
size= sizeof(FlashEnvDefaultData);
}
else if( strcmp(filepath,FFSFILE_DCTB_PATH)==0 )
{ //2002.09.02
ptr=( uint8 * )&FlashDCTbDefaultData;
size= sizeof(FlashDCTbDefaultData);
}
else if( strcmp(filepath,FFSFILE_SETTING_PATH)==0 )
{
ptr=( uint8 * )&FlashSettingDefaultData;
size= sizeof(FlashSettingDefaultData);
}
else if( strcmp(filepath,FFSFILE_HOSTKEY_PATH)==0 )
{
ptr=( uint8 * )&FlashHostkeyDefaultData;
size= sizeof(FlashHostkeyDefaultData);
}
if( size )
for( checksumdata = 0; size--; checksumdata += *ptr++ );
return checksumdata;
}
uint16 getConfigData_size(char *filepath)
{
uint16 size=0;
if( strcmp(filepath,FFSFILE_CONFIG_PATH)==0 )
{
size= sizeof(FlashDefaultData);
}
else if( strcmp(filepath,FFSFILE_ENVIR_PATH)==0 )
{
size= sizeof(FlashEnvDefaultData);
}
else if( strcmp(filepath,FFSFILE_DCTB_PATH)==0 )
{
size= sizeof(FlashDCTbDefaultData);
}
else if( strcmp(filepath,FFSFILE_SETTING_PATH)==0 )
{
size= sizeof(FlashSettingDefaultData);
}
else if( strcmp(filepath,FFSFILE_HOSTKEY_PATH)==0 )
{
size= sizeof(FlashHostkeyDefaultData);
}
return size;
}
void flash_ConfigDataChecksum_init(void)
{
ConfigDataCheckSum.Mmidata_sum=getConfigData_checksum(FFSFILE_CONFIG_PATH);
ConfigDataCheckSum.Mmidata_size=sizeof(FlashDefaultData);
ConfigDataCheckSum.Environment_sum=getConfigData_checksum(FFSFILE_ENVIR_PATH);
ConfigDataCheckSum.Environment_size=sizeof(FlashEnvDefaultData);
ConfigDataCheckSum.DCTbdata_sum=getConfigData_checksum(FFSFILE_DCTB_PATH);
ConfigDataCheckSum.DCTbdata_size=sizeof(FlashDCTbDefaultData);
ConfigDataCheckSum.Settingdata_sum=getConfigData_checksum(FFSFILE_SETTING_PATH);
ConfigDataCheckSum.Settingdata_size=sizeof(FlashSettingDefaultData);
ConfigDataCheckSum.Hostkeydata_sum=getConfigData_checksum(FFSFILE_HOSTKEY_PATH);
ConfigDataCheckSum.Hostkeydata_size=sizeof(FlashHostkeyDefaultData);
}
effs_t flash_ConfigDataChecksum_write(void)
{
ConfigDataCheckSum.Mmidata_sum=getConfigData_checksum(FFSFILE_CONFIG_PATH);
ConfigDataCheckSum.Mmidata_size=sizeof(FlashDefaultData);
ConfigDataCheckSum.Environment_sum=getConfigData_checksum(FFSFILE_ENVIR_PATH);
ConfigDataCheckSum.Environment_size=sizeof(FlashEnvDefaultData);
ConfigDataCheckSum.DCTbdata_sum=getConfigData_checksum(FFSFILE_DCTB_PATH);
ConfigDataCheckSum.DCTbdata_size=sizeof(FlashDCTbDefaultData);
ConfigDataCheckSum.Settingdata_sum=getConfigData_checksum(FFSFILE_SETTING_PATH);
ConfigDataCheckSum.Settingdata_size=sizeof(FlashSettingDefaultData);
ConfigDataCheckSum.Hostkeydata_sum=getConfigData_checksum(FFSFILE_HOSTKEY_PATH);
ConfigDataCheckSum.Hostkeydata_size=sizeof(FlashHostkeyDefaultData);
MmiTrace("flash_ConfigDataChecksum_write");
// return ffs_fwrite(FFSFILE_CONFIG_CHECK_PATH,&ConfigDataCheckSum, sizeof(ConfigDataCheckSum));
ffsfileCmd.ffsfile[CheckFileIdx].pdir=FFSFILE_CONFIG_CHECK_PATH;
ffsfileCmd.ffsfile[CheckFileIdx].pdata=&ConfigDataCheckSum;
ffsfileCmd.ffsfile[CheckFileIdx].size=sizeof(ConfigDataCheckSum);
ffsfileCmd.ffsfile[CheckFileIdx].writeStatus=1;
return 0;
}
effs_t flash_ConfigDataChecksum_read(void)
{
flash_ConfigDataChecksum_init(); //hxl add for avoid fread fail error 2002-11-25
return ffs_fread(FFSFILE_CONFIG_CHECK_PATH,&ConfigDataCheckSum, sizeof(ConfigDataCheckSum));
}
//hxl add for QQ 2002-12-17-------------------------------------------------
#ifdef QQFUNC//hxl add for qq func switch,2003-3-24
TQQSET ffs_qqset;
effs_t flash_QQSetWrite()
{
MmiTrace("flash_QQSetWrite");
ffsfileCmd.ffsfile[QQSetFileIdx].pdir=FFSFILE_QQSET_PATH;
ffsfileCmd.ffsfile[QQSetFileIdx].pdata=&ffs_qqset;
ffsfileCmd.ffsfile[QQSetFileIdx].size=sizeof(ffs_qqset);
ffsfileCmd.ffsfile[QQSetFileIdx].writeStatus=1;
return 0;
}
effs_t flash_QQSetread()
{
MmiTrace("flash_QQSetread");
Flash_QQSetInit(); //hxl add for avoid fread fail error 2002-11-25
return ffs_fread(FFSFILE_QQSET_PATH, &ffs_qqset, sizeof(ffs_qqset));
}
void Flash_QQSetInit(void)
{
MmiTrace("Flash_QQSetInit");
memset(&ffs_qqset,0,sizeof(TQQSET));
}
effs_t flash_QQDataWrite(int nfile)
{
MmiTrace("flash_QQDataWrite");
if( nfile>=1 )
{
ffsfileCmd.ffsfile[QQDataFile1Idx].pdir=FFSFILE_QQData1_PATH;
ffsfileCmd.ffsfile[QQDataFile1Idx].pdata=pQQSmsfile1;
ffsfileCmd.ffsfile[QQDataFile1Idx].size=1024;
ffsfileCmd.ffsfile[QQDataFile1Idx].writeStatus=1;
}
if( nfile>=2 )
{
ffsfileCmd.ffsfile[QQDataFile2Idx].pdir=FFSFILE_QQData2_PATH;
ffsfileCmd.ffsfile[QQDataFile2Idx].pdata=pQQSmsfile2;
ffsfileCmd.ffsfile[QQDataFile2Idx].size=1024;
ffsfileCmd.ffsfile[QQDataFile2Idx].writeStatus=1;
}
if( nfile>=3 )
{
ffsfileCmd.ffsfile[QQDataFile3Idx].pdir=FFSFILE_QQData3_PATH;
ffsfileCmd.ffsfile[QQDataFile3Idx].pdata=pQQSmsfile3;
ffsfileCmd.ffsfile[QQDataFile3Idx].size=1024;
ffsfileCmd.ffsfile[QQDataFile3Idx].writeStatus=1;
}
if( nfile>=4 )
{
ffsfileCmd.ffsfile[QQDataFile4Idx].pdir=FFSFILE_QQData4_PATH;
ffsfileCmd.ffsfile[QQDataFile4Idx].pdata=pQQSmsfile4;
ffsfileCmd.ffsfile[QQDataFile4Idx].size=1024;
ffsfileCmd.ffsfile[QQDataFile4Idx].writeStatus=1;
}
return 0;
}
effs_t flash_QQDataread(int havefile)
{
MmiTrace("flash_QQDataread");
readQQfile(havefile);
return 1;
}
#endif
//end of hxl add for QQ 2002-12-17-------------------------------------------
void ffsfile_init(void)
{
MmiTrace("ffsfile_init");
Common_ffsfile_init();
phonebook_ffsfile_init();
FlashSmsInitialise();//added by windy 030325
}
void Common_ffsfile_init(void)
{
// hxl changed, for should check the file 0827-----------------------------
// flash file check, creat , write, read-----------
#ifdef QQFUNC//hxl add for qq func switch,2003-3-24
if( flash_CheckStat(FFSFILE_QQSET_PATH)<0 )
{
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
Flash_QQSetInit();
flash_QQSetWrite();
}
else
{
flash_QQSetread();
}
if( flash_CheckStat(FFSFILE_QQData1_PATH)>=0 )
{
flash_QQDataread(1);
}
else
flash_QQDataread(0);
#endif
if( flash_CheckStat("/voicememory/VM")<0 )
{
if( flash_CheckStat("/voicememory")<0 )
flash_PBmkdir("/voicememory");
ConfigVMReset();
flash_VMwrite("VM");
}
else
{
flash_VMread("VM");
}
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_GAME_PATH)<0 )
{
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
ConfigGameInit();
flash_Gamewrite();
}
else
{
flash_Gameread();
}
if( (getConfigData_checksum(FFSFILE_DCTB_PATH)!=ConfigDataCheckSum.DCTbdata_sum)//user update the default data
||(getConfigData_size(FFSFILE_DCTB_PATH)!=ConfigDataCheckSum.DCTbdata_size) )
{//user update the default data
FlashDCTbInitialise();
flash_DCTbwrite();
}
else
if( flash_CheckStat(FFSFILE_DCTB_PATH)<0 )
{
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
FlashDCTbInitialise();
flash_DCTbwrite();
}
else
{
flash_DCTbread();
}
if( (getConfigData_checksum(FFSFILE_SETTING_PATH)!=ConfigDataCheckSum.Settingdata_sum)//user update the default data
||(getConfigData_size(FFSFILE_SETTING_PATH)!=ConfigDataCheckSum.Settingdata_size) )
{//user update the default data
FlashSettingInitialise();
flash_settingwrite();
}
else
if( flash_CheckStat(FFSFILE_SETTING_PATH)<0 )
{
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
FlashSettingInitialise();
flash_settingwrite();
}
else
{
flash_settingread();
}
/*---------------------windy added followed code for common sms 0223---------------------*/
if( flash_CheckStat(FFSFILE_COM_SMS_PATH)<0 )
{
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
CommonSmsInitialise();
Common_Smswrite(); //end of windy add
}
else
{
Common_Smsread(); //windy add
}
/*---------------------end windy added for common sms 0223-----------------------------*/
if( flash_CheckStat(FFSFILE_SCHEDUE1_PATH)<0 )//||(flash_CheckStat(FFSFILE_SCHEDUE2_PATH)<0)||(flash_CheckStat(FFSFILE_SCHEDUE3_PATH)<0))
{
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
ScheInit();
/* 2004/04/22 sunsj modify */
Flash_ScheInitWrite("DateSchedule1");//hxl add for write dafault data
}
else
{
ScheMemoRead();
}
if( flash_CheckStat(FFSFILE_STOPWATCH_PATH)<0 )
{
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
FlashStopwDataInitialise();//gdy add 27/08/02
flash_Stopwrite();//gdy add 27/08/02
}
else
{
flash_Stopwread();
}
if( flash_CheckStat(FFSFILE_MEMO_PATH)<0 )
{
/* 2004/04/22 sunsj modify */
if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
flash_PBmkdir(FFSFILE_DIRECTORY);
FlashMemoDataInitialise();//gdy add 27/08/02
flash_Memowrite();//gdy add 27/08/02
}
else
{
flash_Memoread();//gdy add
}
if( flash_CheckStat(FFSFILE_CONSTCONFIG_PATH)<0 )
{
/* 2004/04/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -