- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OSAL处理来自AF的数据包
以下为系统处理来自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----AF
void 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
您可能关注的文档
- 检验抽样计划.doc
- 嵌入式系统课设.doc
- Module 2 Fantasy Literature 教案.doc
- 2017考研英语怎样突破长难句翻译.docx
- 雅思考试中容易理解错的句子.doc
- JAVA服务器之性能问题研究.doc
- Modernism 现代主义.doc
- Android深入探究笔记之二十_--_广播接收者.doc
- Contrastive linguistics英汉对比研究概念.doc
- 四川省成都石室中学(英语).doc
- 2024-2025学年统编版道德与法治九年级下册2.1 推动和平与发展 课件1.pptx
- 8上-9.1认识总体国家安全观 2024-2025学年统编版道德与法治.pptx
- 第10课《唐雎不辱使命》课件-2023-2024学年统编版语文九年级下册.pptx
- 2.2+地形图的判读+课件-2024-2025学年七年级地理上学期人教版(2024).pptx
- 5.1+人口与人种(教学课件)-【上好课】七年级地理上册同步高效课堂(人教版2024).pptx
- 第11课《记承天寺夜游》课件-2024-2025学年统编版语文八年级上册.pptx
- 专题03+走向近代(考题猜想)-2024-2025学年九年级历史上学期期末考点大串讲(统编版).docx
- 专题01+富强与创新【精讲课件】(考情分析+知识构建+考点梳理+热点链接】-【上好课】2025年中考道德与法治一轮复习讲练测(广东专用).pptx
- 1.1+开放互动的世界+课件-+2024-2025学年统编版道德与法治九年级下册+.pptx
- 11.1 探问人生目标(教学课件) 2024-2025学年统编版道德与法治.pptx
文档评论(0)