- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
以下为系统处理来自AF层数据包的大致流程,afIncomingData() ——afBuildMSGIncoming() ——osal_msg_send() —— osal_set_event()——根据task_id调用事件处理函数(如SampleApp_ProcessEvent()) ——判断具体事件类型调用相应回调函数(如SampleApp_MessageMSGCB()) ——实现具体现象? afIncomingData()函数用来从APS层传递一个ASDU到AF层;中间调用了afBuildMSGIncoming()函数,这个函数是用来为APS层建立一个特定格式的消息包,然后再调用osal_msg_send()把消息(包含了ASDU)传往AF层.AF层规定接收的数据包的类型如下:typedef struct{ osal_event_hdr_t hdr; uint16 groupId; uint16 clusterId; afAddrType_t srcAddr; byte endPoint; byte wasBroadcast; byte LinkQuality; byte SecurityUse; uint32 timestamp; afMSGCommandFormat_t cmd;} afIncomingMSGPacket_t;?首先看一下afIncomingData()函数/********************************************************************* * @fn afIncomingData * * @brief Transfer a data PDU (ASDU) from the APS sub-layer to the AF. * * @param aff - pointer to APS frame format * @param SrcAddress - Source address * @param LinkQuality - incoming messages link quality * @param SecurityUse - Security enable/disable * * @return none *///传输数据:APS----AFvoid afIncomingData( aps_FrameFormat_t *aff, zAddrType_t *SrcAddress, uint8 LinkQuality, byte SecurityUse, uint32 timestamp ){ endPointDesc_t *epDesc = NULL; uint16 epProfileID = 0xFFFF; // Invalid Profile ID epList_t *pList; uint8 grpEp;//----------- /*如果这个帧传递模式是组传递*/ if ( ((aff-FrmCtrl APS_DELIVERYMODE_MASK) == APS_FC_DM_GROUP) ) { // Find the first endpoint for this group grpEp = aps_FindGroupForEndpoint( aff-GroupID, APS_GROUPS_FIND_FIRST ); if ( grpEp == APS_GROUPS_EP_NOT_FOUND ) return;// No endpoint found,没找到终端? epDesc = afFindEndPointDesc( grpEp );//找到终端,接着找终端描述符 if ( epDesc == NULL ) return;// Endpoint descriptor not found,没找到终端描述符? pList = afFindEndPointDescList( epDesc-endPoint );? //找到终端描述符 } //pList指向终端列表中的元素//----------- /*广播到各端点*/ else if ( aff-DstEndPoint == AF_BROADCAST_ENDPOINT ) { // Set the list if ( (pList = epList) ) { epDesc = pList-epDesc; } }//----------- /*单播到特定端点*/ else if ( (epDesc = afFindEndPointDesc( aff-DstEndPoint ))
您可能关注的文档
- Property income例题.docx
- 南师硕士期末英语写作练习exercise__1(unity).doc
- 西方经济学微观CH7~8 学生版.doc
- course 4 The Income Statement 损益表.docx
- ObjectArx自定义实体入门.docx
- HND 所得税模版.docx
- 昆明理工大学第一册UNIT 8.doc
- 简洁完整英语-宏观经济学复试或平时用,只看这即可学遍宏观经济学所有的英语词汇、句子了!.doc
- 关于zigbee协议栈SerialApp工程里ZDP_MatchDescReq发起的简单描述符绑定机制.docx
- 2015年6月六级真题三套全(带答案去听力).doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)