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

📄 mfw_ffs.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    if( readErrFlag==1 )
    {
        flash_DCTbwrite();
    }

    //----------------hu binhao 2002-11-28 end----------------------------------
}

//-----------------------------END OF WUFEI ADD-------------------------------

static WriteFlag write_flag;
int flash_formatted(void); /* SPR#2487 - DS - Function to check if FFS is formatted */

FlashSetting FlashSettingData;//zy Mobile Innovation
static const FlashSetting FlashSettingDefaultData=
{
    "Welcome",
    0,//zy 2003-02-14 we set greetingword needn't initial
    {"A","B","C","D","E"},
    3,//background
    0, //Outer idle wallpaper /* 2004/04/10 sunsj mdoify */
    0,//0,1省电模式
    0,//开机动画
    0,//主题
    2,//背光强度
    18,
    0,
    7,//省电背光关闭时间
    0,
    0,//zy 10/22 hall on connect call
    0,//zy 02/14/2003 GPRS AUTOATTACH mode
    1,//zy 02/12/2003 led control on
 1	//LED switch	/* 2004/04/10 sunsj modify */
};//zy Mobile Innovation add "factory setting"
//--------------------------toolkit module added by gdy-----------------------------------------------------
T_MFW_DetailSche_index ScheDetailIndex[200];//gdy
T_MFW_SCHE_INDEX ScheIndex[200];//gdy
//FlashSchedule sche_data[78];//gdy
Flash_Sche  FFS_ScheData;//gdy

/* 2004/04/22 sunsj modify */
char ScheTable[3][20]={"DateSchedule1","DateSchedule2","DateSchedule3"};

static const Flash_Sche FlashScheduleDefaultData=
{
    {
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},
        {{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""},{{0,0},0,0,0,0,0,""}
    }
};

Flash_MData FFS_MemoData;

static const Flash_MData FlashMemoDefaultData=
{
    {
        {"",0},{"",0},{"",0},{"",0},{"",0},{"",0},{"",0},{"",0},{"",0},{"",0}
    }
};

Flash_Stopw   FFS_StopwData;//gdy
T_MFW_Stopw_INDEX  StopwIndex[5];

static const Flash_Stopw  FlashStopwatchDefaultData=
{
    {
        {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},"",0,0},
        {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},"",0,0},
        {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},"",0,0},
        {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},"",0,0},
        {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},"",0,0}
    }
};


void FlashSettingInitialise(void)
{
    FlashSettingData = FlashSettingDefaultData;
}//zy Mobile Innovation


//start of xsf add 2002.08.05
//hostkey
FlashHostkey FlashHostkeyData;
FlashEnvironment FlashEnvironmentData;
static const FlashHostkey FlashHostkeyDefaultData=
{
    0,
    {0x31,0x31,0x31,0x31,0,0,0,0},
    {0,0,0,0,0},0,
    {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
};

static const FlashEnvironment FlashEnvDefaultData =
{ // default settings.
    NORMAL_ENV, //current environment
    {{
            RING,          //alert type
    3,           //index of ring type  	 
            3,          //ring volume
            0,          //uint8  Autoanswerflag
            0,           //uint8  Anykeyanswerflag
            1,          //uint8  connecttone
            RING,      //PromptEnum      alarmprompt;   //xsf add 2002.08.14
   	6,         // index of uint8  alarmtype
            3,         //alarm volume
            5,         //uint8       speakervolume;   //xsf add 2002.08.30 
            RING,   //SmsAlertType   SMSTone
            3,         //smsvolume
            1,         //uint8         KeypadTone
            0,        //uint8         MissedcallTone
            0,        //uint8         UnreadSMSTone
            3,        //uint8		KeypadVolume	//2003/12/08 sunsj
            0,              //WYJ 04.1.13 uint8	OnRingtype;	//最高位为静音开关 1-静音 
            3,              //WYJ 04.1.13  uint8 OnVolume;
            1,              //WYJ 04.1.13  uint8 OffRingtype;
            3,              //WYJ 04.1.13  uint8 OffVolume;
            2,              //WYJ 04.2.12 uint8	HallOnRingtype;	//最高位为静音开关 1-静音 
            3,              //WYJ 04.2.12 uint8 HallOnVolume;
            3,              //WYJ 04.2.12 uint8 HallOffRingtype;
            3,              //WYJ 04.2.12 uint8 HallOffVolume;
        }, //normal
        {
            RING,          //alert type
    3,           //index of ring type  	 
            6,   //ring volume
            0,          //uint8  Autoanswerflag
            0,           //uint8  Anykeyanswerflag
            1,          //uint8  connecttone
            RING,      //PromptEnum      alarmprompt;   //xsf add 2002.08.14
   	6,         // index of uint8  alarmtype
            6,         //alarm volume
            6,         //uint8       speakervolume;   //xsf add 2002.08.30 
            SMSRING,   //SmsAlertType   SMSTone
            6,         //smsvolume
            1,         //uint8         KeypadTone
            0,        //uint8         MissedcallTone
            0,        //uint8         UnreadSMSTone
            4,        //uint8		KeypadVolume	//2003/12/08 sunsj
            0,              //WYJ 04.1.13 uint8	OnRingtype;	//最高位为静音开关 1-静音 
            4,              //WYJ 04.1.13 uint8 uint8 OnVolume;
            1,              //WYJ 04.1.13 uint8 uint8 OffRingtype;
            4,              //WYJ 04.1.13 uint8 uint8 OffVolume;
            2,              //WYJ 04.2.12 uint8	HallOnRingtype;	//最高位为静音开关 1-静音 
            4,              //WYJ 04.2.12 uint8 HallOnVolume;
            3,              //WYJ 04.2.12 uint8 HallOffRingtype;
            4,              //WYJ 04.2.12 uint8 HallOffVolume;
        }, //outdoor
        {
            VIBRA,          //alert type
    3,           //index of ring type  	 
            0,         //ring volume
            0,          //uint8  Autoanswerflag
            0,           //uint8  Anykeyanswerflag
            0,          //uint8  connecttone
            VIBRA,      //PromptEnum      alarmprompt;   //xsf add 2002.08.14
   	6,         // index of uint8  alarmtype
            0,         //alarm volume
            3,         //uint8       speakervolume;   //xsf add 2002.08.30 
            SMSVIBRA,   //SmsAlertType   SMSTone
            0,         //smsvolume
            0,         //uint8         KeypadTone
            0,        //uint8         MissedcallTone
            0,        //uint8         UnreadSMSTone
            0,         //uint8		KeypadVolume	//2003/12/08 sunsj
            0x80,   //WYJ 04.1.13 uint8	OnRingtype;	//最高位为静音开关 1-静音 
            0,      //WYJ 04.1.13 uint8 uint8 OnVolume;
            0x81,   //WYJ 04.1.13 uint8 uint8 OffRingtype;
            0,      //WYJ 04.1.13 uint8 uint8 OffVolume;
            0x82,   //WYJ 04.2.12 uint8	HallOnRingtype;	//最高位为静音开关 1-静音 
            0,      //WYJ 04.2.12 uint8 HallOnVolume;
            0x83,   //WYJ 04.2.12 uint8 HallOffRingtype;
            0,      //WYJ 04.2.12 uint8 HallOffVolume;
        }, //meeting env  
        {
            VIBRA,          //alert type
    3,           //index of ring type  	 
            4,   //ring volume
            0,          //uint8  Autoanswerflag
            0,           //uint8  Anykeyanswerflag
            1,          //uint8  connecttone
            VIBRA,      //PromptEnum      alarmprompt;   //xsf add 2002.08.14
   	6,         // index of uint8  alarmtype
            4,         //alarm volume
            6,         //uint8       speakervolume;   //xsf add 2002.08.30 
            SMSRING,   //SmsAlertType   SMSTone
            4,         //smsvolume
            1,         //uint8         KeypadTone
            0,        //uint8         MissedcallTone
            0,        //uint8         UnreadSMSTone
            3,         //uint8		KeypadVolume	//2003/12/08 sunsj
            0,              //WYJ 04.1.13 uint8	OnRingtype;	//最高位为静音开关 1-静音 
            3,              //WYJ 04.1.13 uint8 uint8 OnVolume;
            1,              //WYJ 04.1.13 uint8 uint8 OffRingtype;
            3,              //WYJ 04.1.13 uint8 uint8 OffVolume;
            2,              //WYJ 04.2.12 uint8	HallOnRingtype;	//最高位为静音开关 1-静音 
            3,              //WYJ 04.2.12 uint8 HallOnVolume;
            3,              //WYJ 04.2.12 uint8 HallOffRingtype;
            3,              //WYJ 04.2.12 uint8 HallOffVolume;
        }, //incar env  
        {
            ALERTMUTE,          //alert type
    3,           //index of ring type  	 
            0,   //ring volume
            0,          //uint8  Autoanswerflag
            0,           //uint8  Anykeyanswerflag
            0,          //uint8  connecttone
            ALERTMUTE,      //PromptEnum      alarmprompt;   //xsf add 2002.08.14
            0,         // index of uint8  alarmtype
            0,         //alarm volume
            5,         //uint8       speakervolume;   //xsf add 2002.08.30 
            0,         //SmsAlertType   SMSTone
            0,         //smsvolume
            0,         //uint8         KeypadTone
            0,        //uint8         MissedcallTone
            0,        //uint8         UnreadSMSTone
            0,          //uint8		KeypadVolume	//2003/12/08 sunsj
            0x80,   //WYJ 04.1.13 uint8	OnRingtype;	//最高位为静音开关 1-静音 
            0,      //WYJ 04.1.13 uint8 uint8 OnVolume;
            0x81,   //WYJ 04.1.13 uint8 uint8 OffRingtype;
            0,      //WYJ 04.1.13 uint8 uint8 OffVolume;
            0x82,   //WYJ 04.2.12 uint8	HallOnRingtype;	//最高位为静音开关 1-静音 
            0,      //WYJ 04.2.12 uint8 HallOnVolume;
            0x83,   //WYJ 04.2.12 uint8 HallOffRingtype;
            0,      //WYJ 04.2.12 uint8 HallOffVolume;
        } //mute env 
    }
};
void FlashHostkeyInitialise(void)
{
    FlashHostkeyData = FlashHostkeyDefaultData;
}

void FlashEnviroInitialise(void)
{
    FlashEnvironmentData = FlashEnvDefaultData;
}
//end of xsf add 2002.08.05

/*---------------------windy added followed struct for common sms-----------------------------*/
CoMessage FFS_CoMsg[CommonMsgNum];
/*2004/04/13,talcon modify*/
static const CoMessage ALDefaultCommonSMS[CommonMsgNum]=
{  
    {"\x80\x8b\xf7\x56\xde\x75\x35\x00"}/*请回电*/,
    {"\x80\x66\x0e\x59\x29\x89\xc1\x30\x02\x00"}/*明天见。*/,
    //{"\x80\x62\x11\x57\x28\x5f\x00\x4f\x1a\xff\x0c\x7b\x49\x4f\x1a\x51\x8d\x80\x54\x7c\xfb\x30\x02\x00"}/*我在开会,等会再联系。*/, 
    {"\x80\x58\x35\x8f\x66\xff\x0c\x66\x5a\x4e\x9b\x52\x30\x30\x02\x00"}/*堵车,晚些到。*/,
    {"\x80\x80\x01\x57\x30\x65\xb9\x89\xc1\x00"}/*老地方见*/,
    {"\x80\x4e\xca\x59\x29\x52\xa0\x73\xed\x00"}/*今天加班*/,
    {"\x80\x8b\xf7\x7e\xd9\x62\x11\x52\x9e\x51\x6c\x5b\xa4\x62\x53\x75\x35\x8b\xdd\x00"}/*请给我办会室打电话*/,
    {"\x80\x75\x1f\x65\xe5\x5f\xeb\x4e\x50\x00"},/*生日快乐*/
    // {"\x80\x8b\xf7\x7e\xd9\x62\x11\x5b\xb6\x91\xcc\x62\x53\x75\x35\x8b\xdd\x00"}/*请给我家里打电话*/,
    {"\x80\x59\x7d\x76\x84\x30\x02\x00"}/*好的。*/,
    {"\x80\x4e\xca\x66\x5a\x67\x09\x7a\x7a\x54\x17\xff\x1f\x00"}/*今晚有空吗?*/,
    {"\x80\x62\x11\x73\xb0\x57\x28\x5f\xd9\xff\x0c\x66\x5a\x4e\x9b\x62\x53\x75\x35\x8b\xdd\x7e\xd9\x4f\x60\x00"},/*我现在忙,晚些打电话给你*/
    { "\x80\x65\xb0\x58\x9e\x67\x61\x76\xee\x00"},/*新增条目*/
    { "\x80\x65\xb0\x58\x9e\x67\x61\x76\xee\x00"},/*新增条目*/
    { "\x80\x65\xb0\x58\x9e\x67\x61\x76\xee\x00"},/*新增条目*/
    { "\x80\x65\xb0\x58\x9e\x67\x61\x76\xee\x00"},/*新增条目*/
    { "\x80\x65\xb0\x58\x9e\x67\x61\x76\xee\x00"},/*新增条目*/
};
void CommonSmsInitialise(void)
{
    memcpy(FFS_CoMsg,ALDefaultCommonSMS,CommonMsgNum*sizeof(CoMessage)); 
    //FFS_CoMsg = ALDefaultCommonSMS;
}
effs_t Common_Smswrite()
{ //write_flag = DATA;
    //return ffs_fwrite("/mmi/FlashSmsData",  &FFS_SMSData, sizeof(FFS_SMSData));
    ffsfileCmd.ffsfile[CommonSmsFileIdx].pdir=FFSFILE_COM_SMS_PATH;
    ffsfileCmd.ffsfile[CommonSmsFileIdx].pdata=(CoMessage*)FFS_CoMsg;
    ffsfileCmd.ffsfile[CommonSmsFileIdx].size=CommonMsgNum*sizeof(CoMessage);
    ffsfileCmd.ffsfile[CommonSmsFileIdx].writeStatus=1;
    return 0;

}
effs_t Common_Smsread()
{
    CommonSmsInitialise();  //hxl add for avoid fread fail error 2002-11-25
    /* 2004/04/22 sunsj modify */
    return ffs_fread(FFSFILE_COM_SMS_PATH, (CoMessage*) FFS_CoMsg, CommonMsgNum*sizeof(CoMessage));
}

/*---------------------end windy added for common sms-----------------------------*/

/*---------------------windy added followed struct for flash sms-----------------------------*/
FlashSMSdata             FFS_SMSData;
T_MMI_FLASH_SMS_INDEX Flash_sms_messages[FLSAH_SMS_NUM]; /* store info about the SMS: index... */
UBYTE    FlashSMStotal;
T_MFW_FS_TABLE       CurrentFlashSmsTable;
char FlashSMSTable[FlashSMS_Table][15]={"MobileSMS1","MobileSMS2","MobileSMS3","MobileSMS4","MobileSMS5"};

static const FlashSMSdata ALDefaultFlashSMS=
{  
    { 
        {-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},{-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},
        {-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},{-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},{-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},//05
        {-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},{-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},
        {-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},{-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},{-1,"",{"","","","","","",0},"",0,0,0xff,FALSE},//10
    },
    //  0,
};
void Get_FlashSms_data(void)
{
    int i,j;

    FlashSMStotal=0; 
    memset(Flash_sms_messages,0,sizeof(T_MMI_FLASH_SMS_INDEX)*FLSAH_SMS_NUM);
    for( i=0;i<FlashSMS_Table;i++ )
    {
        if( flash_Smsread(FlashSMSTable[i])!=0 )
        {
            for( j=0;j<FlashSMS_table_len;j++ )
            {
                if( (FFS_SMSData.NVMSMS[j].flag)!=FALSE )
                {
                    Flash_sms_messages[j+i*FlashSMS_table_len].index = j+i*FlashSMS_table_len;
                    Flash_sms_messages[j+i*FlashSMS_table_len].id= FFS_SMSData.NVMSMS[j].id;
                    Flash_sms_messages[j+i*FlashSMS_table_len].state = FFS_SMSData.NVMSMS[j].state;
                    Flash_sms_messages[j+i*FlashSMS_table_len].flag= FFS_SMSData.NVMSMS[j].flag;
                    strcpy(Flash_sms_messages[j+i*FlashSMS_table_len].addr, FFS_SMSData.NVMSMS[j].addr);
                    memcpy(&Flash_sms_messages[j+i*FlashSMS_table_len].time, &FFS_SMSData.NVMSMS[j].time, sizeof(T_MFW_SMS_SCTP));
                    FlashSMStotal++;
                }
                else
                {
                    Flash_sms_messages[j+i*FlashSMS_table_len].index = j+i*FlashSMS_table_len;
                    Flash_sms_messages[j+i*FlashSMS_table_len].flag= FFS_SMSData.NVMSMS[j].flag;              
                }                          
            }
            CurrentFlashSmsTable=i;
        }
    }

}

void FlashSmsInitialise(void) 
{
    int i;

    CurrentFlashSmsTable=FlashSmsNULL;
    /* 2004/04/22 sunsj modify */
    if( flash_CheckStat(FFSFILE_DIRECTORY)<0 )
    {
        flash_PBmkdir(FFSFILE_DIRECTORY);
        ConfigFLASHSMSReset();            
        flash_Smswrite(FlashSMSTable[0]);
    }
    else
    {
        //if flashSms file is not exist, read default data
        for( i=0;i<FlashSMS_Table;i++ )
        {
            if( flash_Smsread(FlashSMSTable[i])==0 )
            {
                ConfigFLASHSMSReset();
                flash_Smswrite(FlashSMSTable[i]);                                      
                CurrentFlashSmsTable=i;
            }
        }
        //if flashSms file exist, read file data
        Get_FlashSms_data();
    }
}

effs_t flash_Smswrite(const char *filename) 
{ 
    char str[20]="/bmi/"; /* 2004/04/22 sunsj modify */
    int       idx=0;
    char *path=0;
    TRACE_FUNCTION("flash_Smswrite");
    strcat(str,filename);  
    //MmiTrace("flash_Smswrite");
    return ffs_fwrite(str,&FFS_SMSData,sizeof(FFS_SMSData)); 
}

void ConfigFLASHSMSReset(void)
{
    FFS_SMSData=ALDefaultFlashSMS;
}

int  flash_Smsread(const char *filename)
{
    char str[20]="/bmi/";  
    TRACE_FUNCTION ("flash_Smsread()");
    strcat(str,filename);
    if( flash_CheckStat(str)<0 )
        return 0;
    else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -