⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfw_ffs.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    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 + -