TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310使用TI 15.4-Stack的协调器怎么发广播数据

协调器这样发数据,节点都收不到数据,是哪里设置不对吗

源码如下

        if (pDstAddr->addr.shortAddr == 0)
        {
            uint8_t *pMsgBuf  = (uint8_t *)OsalPort_malloc(sendLen);

            if(pMsgBuf)
            {
                /* Build the message */
                uint8_t *pBuf = pMsgBuf;
                *pBuf++ = (uint8_t)Smgs_cmdIds_broadcastCtrlMsg;
                memcpy(pBuf, pMsg, len);

                sendBroadcastMsg(Smgs_cmdIds_broadcastCtrlMsg, 
                                sendLen,
                                pMsgBuf);
                OsalPort_free(pMsgBuf);
            }
        }
static void sendBroadcastMsg(Smsgs_cmdIds_t type, uint16_t len,
                    uint8_t *pData)
{
    ApiMac_mcpsDataReq_t dataReq;

    /* Only supported for FH mode */
    if(!fhEnabled)
    {
        return;
    }
    /* Fill the data request field */
    memset(&dataReq, 0, sizeof(ApiMac_mcpsDataReq_t));

    dataReq.dstAddr.addrMode = ApiMac_addrType_none;
    dataReq.srcAddrMode = ApiMac_addrType_short;

    dataReq.dstPanId = devicePanId;

    dataReq.msduHandle = getMsduHandle(type);

    dataReq.txOptions.ack = false;
    dataReq.txOptions.indirect = false;
    dataReq.msdu.len = len;
    dataReq.msdu.p = pData;

#ifdef FEATURE_MAC_SECURITY
    /* Fill in the appropriate security fields */
    Cllc_securityFill(&dataReq.sec);
#endif /* FEATURE_MAC_SECURITY */

    /* Send the message */
    ApiMac_mcpsDataReq(&dataReq);
}
Viki Shi:

1、参考一下sensor/collector的例程
2、抓包看一下具体情况

YiKai Chen:

sensor的RX如果不是一直開著,广播数据可能漏接

FreePom:

回复 Viki Shi:

你好
collector的发广播数据为什么要限制在FH模式下,之前发不出广播数据,是因为fhEnabled这个标志影响了
static void sendBroadcastMsg(Smsgs_cmdIds_t type, uint16_t len,uint8_t *pData)
{ApiMac_mcpsDataReq_t dataReq;
/* Only supported for FH mode */if(!fhEnabled){return;}

FreePom:

回复 YiKai Chen:

谢谢提醒

Viki Shi:

回复 FreePom:

因为广播数据没有ACK,无法保证睡眠节点能收到广播消息。而在FH模式下,存在一个sensor可以接收广播数据的特定时隙

FreePom:

回复 Viki Shi:

意思是,如果广播不需要ACK的话,可以不需要这个条件限制了?

FreePom:

回复 Viki Shi:

好的,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » CC1310使用TI 15.4-Stack的协调器怎么发广播数据
分享到: 更多 (0)