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

📄 mmi_atc.c

📁 嵌入式展讯mmi层kernel的c 源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
    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 + -