📄 mmi_atc.c
字号:
BOOLEAN is_in_sim = FALSE;
uint16 pb_entry_size = 0;
SCI_ASSERT(len >= 1 + sizeof(PB_PHONEBOOK_ENTRY_T));
if(!JudgePbInSim(&is_in_sim, *cmd))
{
return FALSE;
}
cmd++;
// SCI_MEMCPY(&pb_entry, cmd, sizeof(PB_PHONEBOOK_ENTRY_T));
pb_entry_size = sizeof(PB_PHONEBOOK_ENTRY_T);
HexCharToBinary(cmd, len-1,(uint8*)&pb_entry, &pb_entry_size);
SCI_ASSERT(pb_entry_size == sizeof(PB_PHONEBOOK_ENTRY_T));
SCI_TRACE_LOW("mmi_atc.c: HandlePbModify(), is_in_sim = %d, entry_id = %d", is_in_sim, pb_entry.entry_id);
if(MMIPB_SyncModify(is_in_sim, &pb_entry))
{
//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));
}
return TRUE;}
/*****************************************************************************/
// Description : This function handle the sms deletecommand
// Global resource dependence : none
// Author: lin.lin
// Note: status(1 byte) + storage(1 byte) + record id(1 byte)
/*****************************************************************************/
LOCAL BOOLEAN HandleSmsDelete(
uint8 *cmd, // Point to the command infomation buffer
uint32 len // The length of command infomation buffer
)
{
uint8 record_id = 0;
BOOLEAN is_mt_sms;
BOOLEAN is_save_in_sim;
uint8 record_id_str[3]= {0};
uint8 param[SMS_DELETE_PARAM_NUM] = {0};
uint8 i = 0;
if(len != SMS_DELETE_PARAM_NUM + 2)
{
SCI_TRACE_LOW("mmi_atc.c:HandleSmsDelete(), length error, len = %d", len);
return FALSE;
}
for (i=0; i<SMS_DELETE_PARAM_NUM - 1; i++)
{
param[i] = *(cmd++);
len--;
}
strncpy((char*)record_id_str,(char*)cmd,3);
SCI_TRACE_LOW("mmi_atc.c:HandleSmsDelete(), record_id_str = %s", record_id_str);
record_id= atoi((char*)record_id_str);
if(SMS_SYNC_STATUS_MT == param[0])
{
is_mt_sms = TRUE;
}
else if(SMS_SYNC_STATUS_MO == param[0])
{
is_mt_sms = FALSE;
}
else
{
SCI_TRACE_LOW("mmi_atc.c:HandleSmsDelete(), SMS status error, %s", param[0]);
return FALSE;
}
if(SMS_SYNC_STORAGE_SIM == param[1])
{
is_save_in_sim = TRUE;
}
else if(SMS_SYNC_STORAGE_ME == param[1])
{
is_save_in_sim = FALSE;
}
else
{
SCI_TRACE_LOW("mmi_atc.c:HandleSmsDelete(), SMS storage error, %s", param[1]);
return FALSE;
}
//record_id = param[2];
SCI_TRACE_LOW("mmi_atc.c: HandleSmsDelete(), record_id = %d, is_mt_sms = %d, is_save_in_sim = %d",
record_id, is_mt_sms, is_save_in_sim);
//call the sms function
if(MMISMS_DelSMSByAT(is_mt_sms, is_save_in_sim, record_id))
{
//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));
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the ring getinfo command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandleRingGetInfo(
uint8 *cmd, // Point to the command infomation buffer
uint32 len // The length of command infomation buffer
)
{
MULTIM_INFO_T ring_info = {0};
uint8 res_cmd[MAX_RESCMD_LEN] = {0};
uint16 res_len = 0;
if(MMIMULTIM_SyncGetRingInfo(&ring_info))
{
strcpy((char *)res_cmd, (char *)MMI_SYNC_INDICATE);
res_len += strlen((char *)MMI_SYNC_INDICATE);
*(res_cmd + res_len) = sizeof(MULTIM_INFO_T);
res_len++;
MMI_MEMCPY(res_cmd + res_len, MAX_RESCMD_LEN - res_len, &ring_info, sizeof(MULTIM_INFO_T), sizeof(MULTIM_INFO_T));
res_len += sizeof(MULTIM_INFO_T);
MMI_MEMCPY(res_cmd + res_len, MAX_RESCMD_LEN - res_len, (char *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL), strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
res_len += strlen((char*)MMI_TO_SYNC_OK_SYMBOL);
ReturnResponse(res_cmd, res_len);
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the ring add command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandleRingAdd(
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};
SCI_TRACE_LOW("mmi_atc.c: HandleRingAdd(), cmd = %s, len = %d", cmd, len);
if(!GetString(file_name, MMI_SYNC_FULLFILENAME_MAX_LEN, cmd, len, MMI_SYNC_FILENAME_SYMBOL))
{
return FALSE;
}
SCI_TRACE_LOW("mmi_atc.c: HandleRingAdd(), file_name = %s", file_name);
if(MMIMULTIM_syncAddRing(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));
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the ring delete command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandleRingDelete(
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};
SCI_TRACE_LOW("mmi_atc.c: HandleRingDelete(), cmd = %s, len = %d", cmd, len);
if(!GetString(file_name, MMI_SYNC_FULLFILENAME_MAX_LEN, cmd, len, MMI_SYNC_FILENAME_SYMBOL))
{
return FALSE;
}
SCI_TRACE_LOW("mmi_atc.c: HandleRingDelete(), file_name = %s", file_name);
if(MMIMULTIM_SyncDeleteRing(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));
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the ring modify command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandleRingModify(
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};
SCI_TRACE_LOW("mmi_atc.c: HandleRingModify(), cmd = %s, len = %d", cmd, len);
if(!GetString(old_file_name, MMI_SYNC_FULLFILENAME_MAX_LEN, cmd, len, MMI_SYNC_FILENAME_SYMBOL))
{
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))
{
return FALSE;
}
if(MMIMULTIM_SyncRenameRing (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));
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the picture getinfo command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandlePicGetInfo(
uint8 *cmd, // Point to the command infomation buffer
uint32 len // The length of command infomation buffer
)
{
MULTIM_INFO_T pic_info = {0};
uint8 res_cmd[MAX_RESCMD_LEN] = {0};
uint16 res_len = 0;
uint8 pic_type = 0;
BOOLEAN result = FALSE;
SCI_TRACE_LOW("mmi_atc.c: HandlePicGetInfo(), cmd = %s, len = %d", cmd, len);
pic_type = *cmd;
if(PHOTO_GETINFO == pic_type)
{
result = MMIDC_SyncGetPhotoInfo(&pic_info);
}
else if(PIC_GETINFO == pic_type)
{
result = MMIMULTIM_SyncGetPicInfo(&pic_info);
}
if(result)
{
strcpy((char *)res_cmd, (char *)MMI_SYNC_INDICATE);
res_len += strlen((char *)MMI_SYNC_INDICATE);
*(res_cmd + res_len) = sizeof(MULTIM_INFO_T);
res_len++;
MMI_MEMCPY(res_cmd + res_len, MAX_RESCMD_LEN - res_len, &pic_info, sizeof(MULTIM_INFO_T), sizeof(MULTIM_INFO_T));
res_len += sizeof(MULTIM_INFO_T);
MMI_MEMCPY(res_cmd + res_len, MAX_RESCMD_LEN - res_len, (char *)MMI_TO_SYNC_OK_SYMBOL, strlen((char*)MMI_TO_SYNC_OK_SYMBOL), strlen((char*)MMI_TO_SYNC_OK_SYMBOL));
res_len += strlen((char*)MMI_TO_SYNC_OK_SYMBOL);
ReturnResponse(res_cmd, res_len);
}
else
{
ReturnResponse((uint8 *)MMI_TO_SYNC_ERROR_SYMBOL, strlen((char*)MMI_TO_SYNC_ERROR_SYMBOL));
}
return TRUE;
}
/*****************************************************************************/
// Description : This function handle the picture add command
// Global resource dependence : none
// Author: lin.lin
// Note:
/*****************************************************************************/
LOCAL BOOLEAN HandlePicAdd(
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: HandlePicAdd(), 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: HandlePicAdd(), file_name = %s, dir = %s", file_name, dir_str);
if(0 == strcmp((char *)dir_str, PHOTO_DIRECTORY))
{
if(MMIDC_SyncAdd(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));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -