📄 mfw_ffs.c
字号:
default:break;
}
}
return ShortNum;
}
void CompressNum(const char * Num,unsigned char CompNum[])
{
int len,i;
len=strlen(Num);
for( i=0;i<len;i++ )
{
if( i%2==0 )
{
if( Num[i]==35 )
CompNum[i/2]=2;
else if( Num[i]==42 )
CompNum[i/2]=3;
else if( Num[i]==112 )
CompNum[i/2]=4;
else
CompNum[i/2]=Num[i]-42;
}
else if( i%2==1 )
{
if( Num[i]==35 )
CompNum[i/2]=(CompNum[i/2]<<4)+2;
else if( Num[i]==42 )
CompNum[i/2]=(CompNum[i/2]<<4)+3;
else if( Num[i]==112 )
CompNum[i/2]=(CompNum[i/2]<<4)+4;
else
CompNum[i/2]=(CompNum[i/2]<<4)+(Num[i]-42);
}
}
if( i%2==1 ) CompNum[i/2]=(CompNum[i/2]<<4)+0x00;
else if( i%2==0 ) CompNum[i/2]=0x00;
}
void UnCompressNum(const char * CompNum,unsigned char Num[])
{
int i,j,ExitFlag;
unsigned char GetByte;
i=0;
j=0;
ExitFlag=0;
do
{
GetByte=(CompNum[i]>>4) & 0x0F;
if( GetByte!=0x00 )
{
if( GetByte==2 )
Num[j]=35;
else if( GetByte==3 )
Num[j]=42;
else if( GetByte==4 )
Num[j]=112;
else
Num[j]=GetByte+42;
j=j+1;
}
else
{
Num[j]='\0';
ExitFlag=1;
}
if( ExitFlag!=1 )
{
GetByte=CompNum[i] & 0x0F;
if( GetByte!=0x00 )
{
if( GetByte==2 )
Num[j]=35;
else if( GetByte==3 )
Num[j]=42;
else if( GetByte==4 )
Num[j]=112;
else
Num[j]=GetByte+42;
j=j+1;
}
else
{
Num[j]='\0';
ExitFlag=1;
}
i=i+1;
}
}
while( ExitFlag==0 );
}
//------------------------------------------------------------------------------------------
//begin xzy add for fieldtest 0124
effs_t flash_FTwrite()
{
MmiTrace("flash_FTwrite");
//return ffs_fwrite("/mmi/MmiData", &FFS_flashData, sizeof(FFS_flashData));
//ffsfileCmd.ffsfile[MMIFileIdx].pdir=FFSFILE_FIELDTEST_PATH;
//ffsfileCmd.ffsfile[MMIFileIdx].pdata=&FFS_FieldTest;
//ffsfileCmd.ffsfile[MMIFileIdx].size=sizeof(FFS_FieldTest);
//ffsfileCmd.ffsfile[MMIFileIdx].writeStatus=1;
//if time is stop
ffs_fwrite(FFSFILE_FIELDTEST_PATH, &FFS_FieldTest, sizeof(FFS_FieldTest));
return 0;
}
effs_t flash_FTread()
{
FFS_FieldTest= FieldTestDefault;
/* 2004/04/22 sunsj modify */
return ffs_fread(FFSFILE_FIELDTEST_PATH, &FFS_FieldTest, sizeof(FFS_FieldTest));
}
//end xzy add for fieldtest 0124
effs_t flash_write()
{ //write_flag = DATA;
MmiTrace("flash_write");
//return ffs_fwrite("/mmi/MmiData", &FFS_flashData, sizeof(FFS_flashData));
ffsfileCmd.ffsfile[MMIFileIdx].pdir=FFSFILE_CONFIG_PATH;
ffsfileCmd.ffsfile[MMIFileIdx].pdata=&FFS_flashData;
ffsfileCmd.ffsfile[MMIFileIdx].size=sizeof(FFS_flashData);
ffsfileCmd.ffsfile[MMIFileIdx].writeStatus=1;
//if time is stop
return 0;
}
#if 0
effs_t flash_update()
{
if( write_flag == DATA )
{
write_flag = NO_DATA;
return ffs_fwrite(FFSFILE_CONFIG_PATH, &FFS_flashData, sizeof(FFS_flashData));
}
else
return EFFS_OK;
}
#endif
#ifndef WIN32
// EF 22/10/02 for WIN32 simulation, set anykeyanswer on, and keylock off
int flash_read()
{
FlashDataInitialise(); //hxl add for avoid fread fail error 2002-11-25
/* 2004/04/22 sunsj modify */
return ffs_fread(FFSFILE_CONFIG_PATH, &FFS_flashData, sizeof(FFS_flashData));
}
#else
int flash_read()
{FFS_flashData.settings_status|= SettingsAnyKeyAnswerOn;
FFS_flashData.settings_status &= ~SettingsKeyPadLockOn;
}
#endif
effs_t flash_data_write(const char* dir_name, const char* file_name, void* data_pointer, int data_size)
{
T_FFS_DIR dir;
int val;
char file[200];
/* SPR#2487 - DS - If FFS is not formatted, return from function */
if (flash_formatted() == FALSE)
{
TRACE_EVENT("ERROR flash_data_write(): NOT FORMATTED!");
return EFFS_NOFORMAT;
}
val = FFS_opendir(dir_name, &dir);
if(val < 0)
{
val = FFS_mkdir(dir_name);
switch(val)
{
case EFFS_OK:
case EFFS_EXISTS:
break;
default:
TRACE_ERROR("The FFS directory could not be created!");
TRACE_EVENT_P2("val = %d dir name = %s", val, dir_name);
return (effs_t)val;
}
}
sprintf(file, "%s/%s", dir_name, file_name);
val = FFS_fwrite( file, data_pointer, data_size);
if(val NEQ EFFS_OK)
{
TRACE_ERROR("The FFS file could not be created");
TRACE_EVENT_P2("val = %d file name = %s", val, file);
}
return (effs_t)val;
}
/* glowing,2004-06-10, import from TCS2112 */
/* Marcus: Issue 1719: 11/02/2003: Changed return value from effs_t to int */
int flash_data_read(const char* dir_name, const char* file_name, void* data_pointer, int data_size)
{
int val;
char file[200];
sprintf(file, "%s/%s", dir_name, file_name);
val = FFS_fread( file, data_pointer, data_size);
if (val NEQ data_size)
{
TRACE_ERROR("The FFS data could not be read!");
TRACE_EVENT_P1("val = %d", val);
/* Error, presumably -ve as in FFS_ERRORS, or the actual number of bytes read */
}
return val;
}
/* SPR#2487 - DS - Function to check if FFS is formatted */
int flash_formatted(void)
{
T_FFS_DIR dir;
int val;
/* Attempt to open "/mmi" directory */
val = FFS_opendir("/mmi", &dir);
/* If return val is not EFFS_NOFORMAT then
* assume that FFS is formatted.
*/
if (val == EFFS_NOFORMAT)
return FALSE;
else
return TRUE;
}
/* glowing,2004-06-10, end of import */
/*.................... zy changed 04/08/02...................................................*/
effs_t flash_settingwrite()
{ //write_flag = DATA;
MmiTrace("flash_settingwrite");
//return ffs_fwrite("/mmi/SettingData", &FlashSettingData, sizeof(FlashSettingData));
ffsfileCmd.ffsfile[SetFileIdx].pdir=FFSFILE_SETTING_PATH;
ffsfileCmd.ffsfile[SetFileIdx].pdata=&FlashSettingData;
ffsfileCmd.ffsfile[SetFileIdx].size=sizeof(FlashSettingData);
ffsfileCmd.ffsfile[SetFileIdx].writeStatus=1;
//if time is stop
return 0;
}//zy Mobile Innovation
effs_t flash_settingread()
{
FlashSettingInitialise(); //hxl add for avoid fread fail error 2002-11-25
/* 2004/04/22 sunsj modify */
return ffs_fread(FFSFILE_SETTING_PATH, &FlashSettingData, sizeof(FlashSettingData));
}//zy Mobile Innovation
//start of xsf add 2002.08.05
effs_t flash_hostwrite()
{
MmiTrace("flash_hostwrite");
//return ffs_fwrite("/mmi/HostkeyData", &FlashHostkeyData, sizeof(FlashHostkeyData));
/*ffsfileCmd.ffsfile[HstKeyFileIdx].pdir=FFSFILE_HOSTKEY_PATH;
ffsfileCmd.ffsfile[HstKeyFileIdx].pdata=&FlashHostkeyData;
ffsfileCmd.ffsfile[HstKeyFileIdx].size=sizeof(FlashHostkeyData);
ffsfileCmd.ffsfile[HstKeyFileIdx].writeStatus=1;*/
//xsf changed 2003.03.06 for "hostkey protect options" menu with KCD_OK/select .KCD_RIGHT/cancel.KCD_LEFT/confirm&save
/* 2004/04/22 sunsj modify */
ffs_fwrite(FFSFILE_HOSTKEY_PATH, &FlashHostkeyData, sizeof(FlashHostkeyData));
return 0;
}
effs_t flash_hostread()
{
FlashHostkeyInitialise(); //hxl add for avoid fread fail error 2002-11-25
/* 2004/04/22 sunsj modify */
return ffs_fread(FFSFILE_HOSTKEY_PATH, &FlashHostkeyData, sizeof(FlashHostkeyData));
}
effs_t flash_environmentwrite()
{ //write_flag = DATA;
// return ffs_fwrite("/mmi/EnvironmentData", &FlashEnvironmentData, sizeof(FlashEnvironmentData));
ffsfileCmd.ffsfile[EnvirFileIdx].pdir=FFSFILE_ENVIR_PATH;
ffsfileCmd.ffsfile[EnvirFileIdx].pdata=&FlashEnvironmentData;
ffsfileCmd.ffsfile[EnvirFileIdx].size=sizeof(FlashEnvironmentData);
ffsfileCmd.ffsfile[EnvirFileIdx].writeStatus=1;
//if time is stop
// timStart(gtimFfsWrite);
return 0;
}
effs_t flash_environmentread()
{
FlashEnviroInitialise(); //hxl add for avoid fread fail error 2002-11-25
return ffs_fread(FFSFILE_ENVIR_PATH, &FlashEnvironmentData, sizeof(FlashEnvironmentData));
}
//end of xsf add 2002.08.05
/*
effs_t flash_PBmkdir(const char *pathname)
{
return ffs_mkdir(pathname);
}
effs_t flash_CheckStat(const char *name)
{
struct stat_s stat;
return ffs_stat(name,&stat);
}
*/
/*....................end of zy changed 04/08/02...................................................*/
//---------------------------hxl add--------------------------------
void FlashDataInitialise(void)
{
FFS_flashData = FlashDefaultData;
}
//--------------------------gdy add---------------------------------
effs_t Flash_ScheInitWrite(char * filename)
{
int idx=0;
char *path=0;
char str[20]="/bmi/"; /* 2004/04/22 sunsj modify */
strcat(str,filename);
strcpy((char*)CurrentScheFileName,filename);
MmiTrace("Flash_ScheInitWrite");
//return ffs_fwrite( str, &FFS_ScheData,sizeof(FFS_ScheData));
/* 2004/04/22 sunsj modify */
switch( filename[12] ) //"DateSchedule1"
{
case 0x31:
idx=Sche1FileIdx;
path=FFSFILE_SCHEDUE1_PATH;
break;
case 0x32:
idx=Sche2FileIdx;
path=FFSFILE_SCHEDUE2_PATH;
break;
case 0x33:
idx=Sche3FileIdx;
path=FFSFILE_SCHEDUE3_PATH;
break;
default:
break;
}
ffsfileCmd.ffsfile[idx].pdir=path;
ffsfileCmd.ffsfile[idx].pdata=&FFS_ScheData;
ffsfileCmd.ffsfile[idx].size=sizeof(FFS_ScheData);
ffsfileCmd.ffsfile[idx].writeStatus=1;
//if time is stop
return 0;
}
int Flash_ScheRead(char * filename)
{
char str[20]="/bmi/"; /* 2004/04/22 sunsj modify */
int iCount;
strcat(str,filename);
strcpy((char*)CurrentScheFileName,filename);
memset(&FFS_ScheData,0,sizeof(FFS_ScheData));
FlashScheDataInitialise(); //hxl add for avoid fread fail error 2002-11-25
iCount=ffs_fread(str, &FFS_ScheData,sizeof(FFS_ScheData));
//TraceInt(iCount);
iCount/=sizeof(FlashSchedule);
//TraceInt(iCount);
return iCount;
}
void FlashScheDataInitialise(void)
{
FFS_ScheData=FlashScheduleDefaultData;
//memset(&FFS_ScheData,0,sizeof(Flash_Sche));
}
effs_t flash_Stopwrite()
{ //write_flag = DATA;
MmiTrace("flash_Stopwrite");
// return ffs_fwrite("/mmi/stopwatch", &FFS_StopwData, sizeof(FFS_StopwData));
ffsfileCmd.ffsfile[StpWatFileIdx].pdir=FFSFILE_STOPWATCH_PATH;
ffsfileCmd.ffsfile[StpWatFileIdx].pdata=&FFS_StopwData;
ffsfileCmd.ffsfile[StpWatFileIdx].size=sizeof(FFS_StopwData);
ffsfileCmd.ffsfile[StpWatFileIdx].writeStatus=1;
//if time is stop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -