📄 mmi_atc.c
字号:
}
}
else if(0 == strcmp((char *)dir_str, PICTURE_DIRECTORY))
{
//the file is in multim
if(MMIMULTIM_syncAddPicture(file_name))
{
//return "ok\r\n" to sync tool;
ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
}
else
{
return FALSE;
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the picture delete command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandlePicDelete(
uint8 *cmd, // Point to the command infomation buffer
uint32 len // The length of command infomation buffer
)
{
uint8 file_name[MMI_SYNC_FULLFILENAME_MAX_LEN + 1] = {0};
uint8 dir_str[MMI_SYNC_DIR_MAX_LEN+1] = {0};
SCI_TRACE_LOW("mmi_atc.c: HandlePicDelete(), cmd = %s, len = %d", cmd, len);
if(!GetString(file_name, MMI_SYNC_FULLFILENAME_MAX_LEN, cmd, len, MMI_SYNC_FILENAME_SYMBOL))
{
return FALSE;
}
if(!GetString(dir_str, MMI_SYNC_DIR_MAX_LEN, cmd, len, DIRECTORY_SYMBOL))
{
return FALSE;
}
SCI_TRACE_LOW("mmi_atc.c: HandlePicDelete(), file_name = %s, dir = %d", file_name, dir_str);
if(0 == strcmp((char *)dir_str, PHOTO_DIRECTORY))
{
if(MMIDC_SyncDelete(file_name))
{
//return "ok\r\n" to sync tool;
ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
}
else if(0 == strcmp((char *)dir_str, PICTURE_DIRECTORY))
{
//the file is in multim
if(MMIMULTIM_SyncDeletePicture(file_name))
{
//return "ok\r\n" to sync tool;
ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
}
else
{
return FALSE;
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the picture modify command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandlePicModify(
uint8 *cmd, // Point to the command infomation buffer
uint32 len // The length of command infomation buffer
)
{
uint8 old_file_name[MMI_SYNC_FULLFILENAME_MAX_LEN + 1] = {0};
uint8 new_file_name[MMI_SYNC_FULLFILENAME_MAX_LEN + 1] = {0};
uint8 dir_str[MMI_SYNC_DIR_MAX_LEN+1] = {0};
uint32 i = 0;
if(!GetString(old_file_name, MMI_SYNC_FULLFILENAME_MAX_LEN, cmd, len, MMI_SYNC_FILENAME_SYMBOL))
{
SCI_TRACE_LOW("mmi_atc.c: HandlePicModify, get old file name failed");
return FALSE;
}
if(!GetString(dir_str, MMI_SYNC_DIR_MAX_LEN, cmd, len, DIRECTORY_SYMBOL))
{
SCI_TRACE_LOW("mmi_atc.c: HandlePicModify, get dir string failed");
return FALSE;
}
cmd += strlen((char *)old_file_name) +1;
len -= strlen((char *)old_file_name) +1;
if(!GetString(new_file_name, MMI_SYNC_FULLFILENAME_MAX_LEN, cmd, len, MMI_SYNC_FILENAME_SYMBOL))
{
SCI_TRACE_LOW("mmi_atc.c: HandlePicModify, get new file name failed");
return FALSE;
}
SCI_TRACE_LOW("mmi_atc.c: HandlePicModify(), old file name = %s, new file name = %s", old_file_name, new_file_name);
if(0 == strcmp((char *)dir_str, PHOTO_DIRECTORY))
{
if(MMIDC_SyncRename(old_file_name, new_file_name))
{
//return "ok\r\n" to sync tool;
ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
}
else if(0 == strcmp((char *)dir_str, PICTURE_DIRECTORY))
{
//the file is in multim
if(MMIMULTIM_SyncRenamePicture(old_file_name, new_file_name))
{
//return "ok\r\n" to sync tool;
ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
}
else
{
return FALSE;
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the alarm sync command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandleAlarmSync(
uint8 *cmd, // Point to the command infomation buffer
uint32 len // The length of command infomation buffer
)
{
//SCI_ASSERT(PNULL != cmd);
SCI_TRACE_LOW("mmi_atc.c: HandleAlarmSync()");
MMIALM_FindLatestEventToSet(TRUE);
SCI_TRACE_LOW("ReturnResponse pointer is %x len is %x \n",(uint8 *)MMI_TO_SYNC_OK_SYMBOL,strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
SCI_TRACE_LOW("ReturnResponse pointer is %x len is %x \n",(uint8 *)MMI_TO_SYNC_OK_SYMBOL,strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
// ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
// ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
// ReturnResponse((uint8 *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
return TRUE;
}
/*****************************************************************************/
// Description : This function get string finished by finish_char
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN GetString(
uint8* dest_str_ptr,
uint32 max_len,
uint8* src_str_ptr,
uint32 src_str_len,
uint8 finish_char
)
{
uint8* ptr = src_str_ptr;
uint32 i=0;
for(i=0; i<src_str_len; i++)
{
if(*(ptr++) == finish_char)
{
break;
}
}
if((ptr-1 - src_str_ptr > 0) && (ptr-1 - src_str_ptr <= max_len))
{
// strncpy((char *)dest_str_ptr, (char *)src_str_ptr, ptr-1 - src_str_ptr);
MMI_MEMCPY(dest_str_ptr, max_len, src_str_ptr, src_str_len, ptr-1 - src_str_ptr);
}
else
{
return FALSE;
}
return TRUE;
}
/*****************************************************************************/
// Description : This function return response to at
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL void ReturnResponse(
uint8* res_ptr,
uint16 len
)
{
SIO_ATC_WriteCmdRes(res_ptr, len);
}
/*****************************************************************************/
// Description : This function judge pb paramter
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN JudgePbInSim(
BOOLEAN *is_in_sim,
uint8 cmd_char
)
{
if(cmd_char == PB_SYNC_IN_SIM)
{
*is_in_sim = TRUE;
}
else if(cmd_char == PB_SYNC_NOT_IN_SIM)
{
*is_in_sim = FALSE;
}
else
{
SCI_TRACE_LOW("mmi_atc.c: JudgePbInSim(), return FALSE, cmd_char = %X", cmd_char);
return FALSE;
}
return TRUE;
}
/*****************************************************************************/
// Description : This function get pb entry id from cmd string
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL uint16 GetPbEntryId(uint8* cmd, uint16 len)
{
uint8 id_str[PB_ENTRY_ID_MAX_LEN +1] = {0};
SCI_ASSERT(len >= PB_ENTRY_ID_MAX_LEN);
strncpy((char *)id_str,(char*)cmd, PB_ENTRY_ID_MAX_LEN);
return atoi((char*)id_str);
}
/*****************************************************************************/
// Description : This functions switch binary and hex char, copied from Anli.Wwei
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
void BinaryToHexChar(uint8* src_ptr, uint16 src_len, uint8* dest_ptr, uint16* dest_len)
{
uint8 szValue[ 4 ] = { 0 };
uint16 i = 0;
SCI_ASSERT(src_ptr != NULL && src_len > 0);
SCI_ASSERT(dest_ptr != NULL && (*dest_len > src_len * 2));
for(i = 0; i < src_len; ++i)
{
sprintf((char*)szValue, "%02x", *src_ptr);
*dest_ptr = szValue[0];
dest_ptr++;
*dest_ptr = szValue[1];
dest_ptr++;
src_ptr++;
}
*dest_ptr = '\0';
*dest_len = src_len * 2;
}
void HexCharToBinary(uint8* src_ptr, int src_len, uint8* dest_ptr, uint16* dest_len)
{
uint8 btValue;
uint16 nDesIdx = 0;
uint16 i = 0;
SCI_ASSERT(src_ptr != NULL && src_len > 0);
SCI_ASSERT( *dest_len >= src_len / 2 );
for( i = 0; i < src_len; ++i, ++nDesIdx)
{
btValue = HexCharToByte( *(src_ptr + i) );
*(dest_ptr + nDesIdx) = btValue << 4;
++i;
*(dest_ptr + nDesIdx) |= HexCharToByte( *(src_ptr + i) );
}
*dest_len = src_len / 2;
}
uint8 HexCharToByte(uint8 cValue)
{
uint8 btValue = 0;
if( cValue >= '0' && cValue <= '9' )
{
btValue = cValue - '0';
}
else if( cValue >= 'a' && cValue <= 'z' )
{
btValue = cValue - 'a' + 10;
}
else if( cValue >= 'A' && cValue <= 'Z' )
{
btValue = cValue - 'A' + 10;
}
else
{
SCI_ASSERT( FALSE );
}
return btValue;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -