mtk学习开发归档02

1.         MMI L4通信

1.1.       如何通信

Send/Receive messages thru the message Queue.

#define OslMsgSendExtQueue  msg_send_ext_queue

#define OslReceiveMsgExtQ    receive_msg_ext_q

SetProtocolEventHandler(FuncCB, msg_id);

1.2.       通信数据

 

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;

1.3.       如何从MMI Queue中侦听消息

OslReadCircularQ(&Message);

OslReceiveMsgExtQ(mmi_qid, &mmi_message);

1.4.       如何在MMI 队列中写入消息

NVRAM接收到其他消息时

OslWriteCircularQ(&ilm_ptr);

1.5.       如何从L4C接听消息

注册一个消息回调函数

SetProtocolEventHandler(FuncCB, msg_id);

1.6.      如何向L4C 发送消息

2.        构建一个本地参数指针

3.        将请求数据填充进本地参数指针中。

4.        给结构体ilm_struct赋值。

5.        L4C发送消息。

消息信息 = 头信息 + 数据信息

Local parameter Header info:

 #define LOCAL_PARA_HDR /

kal_uint8 ref_count; /

kal_uint16 msg_len;

peer buffer parameter Header info :

 #define PEER_BUFF_HDR /

kal_uint16 pdu_len; /

kal_uint8 ref_count; /

kal_uint8 pb_resvered; /

kal_uint16 free_header_space; /

kal_uint16 free_tail_space;

2.7.  本地参数:(local parameter)

Header info + Data info:

例如:

typedef struct {

LOCAL_PARA_HDR

kal_uint8 volume_type;

kal_uint8 volume_level;

} mmi_eq_set_volume_req_struct;

2.8.  如何创建本地参数:(动态分配内存)

OslConstructDataPtr(sizeof(mmi_at_alarm_query_res_req_struct);

2.9.  何时释放本地参数

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

OslFreeDataPtr(sizeof(mmi_at_alarm_query_res_req_struct);

Peer buffer parameter:

Header info + Data info

Ex: typedef struct {

PEER_BUFF_HDR

void *ptr;

} mmi_example;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值