📄 mfw_ffs.c
字号:
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 + -