mtk学习开发归档03

本文档详细介绍了在MTK平台上如何创建和管理Peer buffer parameter,包括何时释放参数。同时,深入剖析了Network Simulator在模拟协议栈中的作用,包括其与PMS的通讯方式。

如何创建Peer buffer parameter(动态分配内存)

MMI 不使用 this buffer L4通信

construct_peer_buff(pdu_len, header_len, tail_len, direction);

3.1.  何时释放Peer buffer parameter

L4接收到消息并处理完成后,会自动释放参数。

free_peer_buff(peer_buff);

例程如下:

Set a volume request:

void SetVolumeLevelReq(volume_type_enum volume_type,U8 volume_level)

{

MYQUEUE Message;

mmi_eq_set_volume_req_struct *setVolumeLevelReq;

Message.oslMsgId = MSG_ID_MMI_EQ_SET_VOLUME_REQ;

//Message ID, reference the l4a.h file

setVolumeLevelReq = OslConstructDataPtr(sizeof(mmi_eq_set_volume_req_struct));

//Create local parameter buffer

setVolumeLevelReq->volume_type = volume_type;

setVolumeLevelReq->volume_level = volume_level;

Message.oslDataPtr = (oslParaType *)setVolumeLevelReq; //Local parameter buffer

Message.oslPeerBuffPtr= NULL; //Peer parameter buffer

Message.oslSrcId=MOD_MMI; //Send from Source module

Message.oslDestId=MOD_L4C; //Send to destination module

OslMsgSendExtQueue(&Message); //Send to L4 task

}

每个功能的具体实现(比如说播放音频)都会定义mmi_xxxxx_reg_sturct形式结构体

结构体组成:Header info + Data info:

例如(请求播放音频)

typedef struct

{

LOCAL_PARA_HDR //头信息(Header info)

kal_uint8    sound_id;

kal_uint8    style; /* audio_play_style_enum */

} mmi_eq_play_audio_req_struct;

3.2.  通信数据

#define MYQUEUE   ilm_struct

typedef struct ilm_struct {

oslModuleType oslSrcId; // Source module ID.

oslModuleType oslDestId; // Destination module ID.

oslMsgType oslSapId; // service access point.

oslMsgType oslMsgId; // message name ID.

oslParaType *oslDataPtr; //local parameter buffer

oslPeerParaPtr *oslPeerBuffPtr; //peer buffer pointer

} ilm_struct;

3.3.  示例代码

{

MYQUEUE Message;

mmi_eq_play_audio_req_struct *audioPlayReq;

//create local parameter buffer

audioPlayReq = OslConstructDataPtr(sizeof(mmi_eq_play_audio_req_struct));

audioPlayReq->sound_id = (U8) soundId;

audioPlayReq->style = 2;                    /* style; */

audioPlayReq->identifier = (U16) soundId;

Message.oslMsgId = PRT_EQ_PLAY_AUDIO_REQ; //message id,reference the l4a.h

Message.oslDataPtr = (oslParaType*) audioPlayReq; //local parameter buffer

Message.oslPeerBuffPtr = NULL; //Peer parameter buffer

Message.oslSrcId = MOD_MMI; //Send from Source module

Message.oslDestId = MOD_L4C; //Send to destination module

OslMsgSendExtQueue(&Message); //Send to L4 task

}

1.         Network simulator 分析

MMI : Man machine Interface

PMS : Pixtel MMI Simulator

NWS : Network Simulator (MMINWSimulator)

DTD : Document Type Definition

XML : Extensible Markup Language

1.1.       模拟协议栈

1.1.1.      

 

 

 

 

PMS

 

 

 

 

 

 

 

 

 

NWS

 

 

 

 

 

XML

(Sends Automatic and

Manual Messages)

 

Plugins

 

  Data File

Icoming messages

Outgoing messages

Asvc Events

Via File I/O

Calls

Return data

Message Flow

 

 

 

 

 

 

 

 

 

 

1.1.2.       NetWork Simulator任务

 

1. 联系NWS PMS,模拟MMI 协议栈之间的通讯

2. 在数据文件中存储数据来模拟Flash中的数据存储

1.1.3.       NWS PMS通讯方式

NWS PMS之间通过三种方式通信

1.      接收从PMS发送给NWS incoming messages 例如,拨号请求

2.      incoming messageNWS发送outgoing messagePMS 例如,获得电话薄入口请求

3.      NWS发送异步消息到PMS 例如,Boot Up等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值