云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ZigBee学习之11 - MAC层API解读2

ZigBee学习之11 - MAC层API解读2

  • 62 次阅读
  • 3 次下载
  • 2025/5/23 17:52:40

ZigBee学习之11——MAC层API解读2

回调函数事件

呵呵,名字很恐怖,其实就是用来应答请求函数的函数调用而已,不要想的太深奥哦! MAC_MLME_ASSOCIATE_IND

当MAC从其他器件接收到关联请求时发送给应有。应用在接收到这个事件后必须调用 MAC_MlmeAssociateRsp(),这个事件只发送给FFD应用,且这个FFD的PIB属性MAC_ASSOCIATION_PERMIT为真。

MAC_MLME_ASSOCIATE_CNF

作为对MAC_MlmeAssociateReq()的回应,MAC发送这个事件到应用,此事件指示了关联的状态,如果关联成功且请求了短地址,则短地址将被包含在事件中,否则短地址参数不可用。 MAC_MLME_DISASSOCIATE_IND 指示器件已经解关联 MAC_MLME_DISASSOCIATE_CNF

作为MAC_MlmeDisassociateReq()的回应发送给应用,此事件指示解关联操作的状态。 MAC_MLME_BEACON_NOTIFY_IND

当MAC接收到一个信标帧并且信标帧包含负载数据或者MAC_AUTO_REQUEST属性为FALSE时发送次事件到应有,此事件也包含LQI测量值、信标帧接收时间。 MAC_MLME_ORPHAN_IND MAC_MLME_SCAN_CNF MAC_MLME_START_CNF MAC_MLME_SYNC_LOSS_IND MAC_MLME_POLL_CNF MAC_MLME_COMM_STATUS_IND

发送这个事件的原因有多种,比如指示MAC_MlmeAssociateRsp()和MAC_MlmeOrphanRsp()的状态,也可以指示MAC接收到安全帧,但是安全处理出错。 MAC_MLME_POLL_IND

只有在MAC用一系列间接数据配置,设置macCfg.appPendingQueue为真,才能发送这个事件。当从其他设备接收到数据请求命令帧时发送此事件,应用应该调用MAC_McpsDataReq()来发送数据到那个设备,并且配置TX属性为MAC_TXOPTION_NO_RETRANS设置。 扩展接口

提供了一些非802.15.4协议定义的函数,比如电源管理。 通用常量和数据结构 电源模式 MAC_PWR_ON

MAC和无线电电源打开

MAC和无线电部分电源关闭

MAC_PWR_SLEEP_LITE

MAC_PWR_SLEEP_DEEP MAC和无线电完全电源关闭 uint8 MAC_PwrOffReq(uint8 mode)

请求MAC关闭无线电硬件电源并进入睡眠模式, 返回值: MAC_SUCCESS MAC_DENIED

操作成功 MAC不能关闭电源

void MAC_PwrOnReq(void)

请求MAC打开无线电硬件电源并唤醒设备

uint8 MAC_PwrMode(void) 返回MAC当前电源模式

uint32 MAC_PwrNextTimeout(void)

返回下一次MAC定时器超时,如果没有定时器运行则返回0 uint8 MAC_RandomByte(void)

从MAC随机数产生器返回一个随机字节 回调接口

void MAC_CbackEvent(macCbackEvent_t *pData)

发送MAC事件到应用,这个函数的执行需要分配一个OSAL消息,然后将事件参数拷贝到消息,然后将消息发送到应用OSAL事件处理函数。这个函数必须从任务或者是中断上下文执行,所以它是可重入的。 参数:

typedef struct {

uint8 event; uint8 status; } macEventHdr_t;

typedef union {

macEventHdr_t hdr;

macMlmeAssociateInd_t associateInd; macMlmeAssociateCnf_t associateCnf; macMlmeDisassociateInd_t disassociateInd; macMlmeDisassociateCnf_t disassociateCnf; macMlmeBeaconNotifyInd_t beaconNotifyInd; macMlmeOrphanInd_t orphanInd; macMlmeScanCnf_t scanCnf; macMlmeStartCnf_t startCnf; macMlmeSyncLossInd_t syncLossInd; macMlmePollCnf_t pollCnf;

macMlmeCommStatusInd_t commStatusInd; macMlmePollInd_t pollInd; macMcpsDataCnf_t dataCnf; macMcpsDataInd_t dataInd; macMcpsPurgeCnf_t purgeCnf; } macCbackEvent_t; hdr.event域为下面一些值

MAC_MLME_ASSOCIATE_IND Associate indication. MAC_MLME_ASSOCIATE_CNF Associate confirm.

MAC_MLME_DISASSOCIATE_IND Disassociate indication. MAC_MLME_DISASSOCIATE_CNF Disassociate confirm. MAC_MLME_BEACON_NOTIFY_IND Beacon notify indication. MAC_MLME_ORPHAN_IND Orphan indication.

MAC_MLME_SCAN_CNF Scan confirm. MAC_MLME_START_CNF Start confirm.

MAC_MLME_SYNC_LOSS_IND Sync loss indication. MAC_MLME_POLL_CNF Poll confirm.

MAC_MLME_COMM_STATUS_IND Communication status indication. MAC_MLME_POLL_IND Poll indication. MAC_MCPS_DATA_CNF Data confirm. MAC_MCPS_DATA_IND Data indication. MAC_MCPS_PURGE_CNF Purge confirm. MAC_PWR_ON_CNF Power on confirm. uint8 MAC_CbackCheckPending(void) 返回应用中的间接消息队列 配置 配置常量

MAC用数据结构来包含多种用户配置参数。这个数据结构叫macCfg在mac_cfg.c中定义 typedef struct {

uint8 txDataMax; uint8 txMax; uint8 rxMax;

uint8 dataIndOffset; bool appPendingQueue; } macCfg_t; txDataMax txMax

rxMax

传输数据队列中的最大数据帧队列数目,范围:1-255,默认值: 2 传输数据队列中的最大帧队列数目,范围:1-255,默认值: 5 接收数据队列中的数据帧队列数目,范围:1-255,默认值: 2

为应用定义的头发配额外的数据字节,范围:0-127,默认值:

0

dataIndOffset 默认值为FALSE 编译时配置

appPendingQueue当设置为真时,在从其他设备接收到数据请求帧将发送MAC_MLME_POLL_IND,

MAC源码有一些编译时配置的参数。 MAC_NO_PARAM_CHECK MACNODEBUG

设置为FALSE,则会检测API函数的参数是否符合IEEE规范。设置

为TRUE则可以减少代码量,默认为FALSE

如果定义了这个宏,则允许MAC_ASSERT()进行运行时检测。不定义这个

如果为TRUE,LED将会随着接收的开关而开关。

宏可以优化代码量 MAC_RX_ONOFF_DEBUG_LED

在文档的最后画出了如果用API函数构建网络,进行通信的梯形图,呵呵早知道有这个,就直接看这个了,不细心阿!不过看来这个文档之后对ZigBee的组网方式有了一定的了解,起码心里有个底了,知道网络是如何建立的,一个新设备如何加入到一个网络中。

作者:Free

原文来源:61IC中国电子在线

搜索更多关于: ZigBee学习之11 - MAC层API解读2 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

ZigBee学习之11——MAC层API解读2 回调函数事件 呵呵,名字很恐怖,其实就是用来应答请求函数的函数调用而已,不要想的太深奥哦! MAC_MLME_ASSOCIATE_IND 当MAC从其他器件接收到关联请求时发送给应有。应用在接收到这个事件后必须调用 MAC_MlmeAssociateRsp(),这个事件只发送给FFD应用,且这个FFD的PIB属性MAC_ASSOCIATION_PERMIT为真。 MAC_MLME_ASSOCIATE_CNF 作为对MAC_MlmeAssociateReq()的回应,MAC发送这个事件到应用,此事件指示了关联的状态,如果关联成功且请求了短地址,则短地址将被包含在事件中,否则短地址参数不可用。 MAC_MLME_DISASSOCIATE_IND 指示器件已经解关联 MAC

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com