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

Z-Stack Mesh 1.0.0终端问题

Z-Stack Mesh 1.0.0终端启动问题

终端一直是DEV_INIT状态,协议栈未修改什么?

怎么才能让终端开始加协调器?

YiKai Chen:

移除預編譯的HOLD_AUTO_START選項

Viki Shi:

使用HOLD_AUTO_START选项,那么工程就会禁止自动启动ZDApp事件处理循环中的ZDO_NETWORK_INIT事件,也就是上电后不自动调用ZDOInitDevice(),需要通过外部事件,或者用户自己调用这个函数

Alvin Chen:

回复 YiKai Chen:

默认是HOLD_AUTO_START。你自己手动控制ZDOInitDevice(0)

user5367314:

回复 YiKai Chen:

GenericApp例程里预编译没有HOLD_AUTO_START
我自己加上了xHOLD_AUTO_START还是一直DEV_INIT
NWK_AUTO_POLL
ZTOOL_P1
MT_TASK
MT_SYS_FUNC
MT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
xPOWER_SAVING
xHOLD_AUTO_START

YiKai Chen:

回复 user5367314:

調試一下看看程序卡在那吧

user5367314:

回复 YiKai Chen:

Z-Stack Mesh 1.0.0例程,协调器和终端分别通过按键触发下面的函数
发现终端一直无法入网?怎么回事?// Initiate an End Device Bind Request for the mandatory endpointdstAddr.addrMode = Addr16Bit;dstAddr.addr.shortAddr = 0x0000; // CoordinatorZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(),GenericApp_epDesc.endPoint,GENERICAPP_PROFID,GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,FALSE );

user5367314:

回复 YiKai Chen:

调试发现终端运行到下面的else里,
这是官方的例程,我没改什么啊,默认就是HOLD的?
else//运行到这里{ZDOInitDevice( ZDO_INIT_HOLD_NWK_START );// Blink LED to indicate HOLD_STARTHalLedBlink ( HAL_LED_4, 0, 50, 500 );}

void ZDApp_Init( uint8 task_id )
{// Save the task IDZDAppTaskID = task_id;
// Initialize the ZDO global device short address storageZDAppNwkAddr.addrMode = Addr16Bit;ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR;(void)NLME_GetExtAddr();// Load the saveExtAddr pointer.
// Check for manual "Hold Auto Start"ZDAppCheckForHoldKey();
// Initialize ZDO items and setup the device – type of device to create.ZDO_Init();
// Register the endpoint description with the AF// This task doesn't have a Simple description, but we still need// to register the endpoint.afRegister( (endPointDesc_t *)&ZDApp_epDesc );

#if defined( ZDO_USERDESC_RESPONSE )ZDApp_InitUserDesc();
#endif // ZDO_USERDESC_RESPONSE
// Start the device?if ( devState != DEV_HOLD ){ZDOInitDevice( 0 );}else//运行到这里{ZDOInitDevice( ZDO_INIT_HOLD_NWK_START );// Blink LED to indicate HOLD_STARTHalLedBlink ( HAL_LED_4, 0, 50, 500 );}
// Initialize the ZDO callback function pointers zdoCBFunc[]ZDApp_InitZdoCBFunc();
ZDApp_RegisterCBs();

#if !defined ( ZDP_BIND_SKIP_VALIDATION )
#if defined ( REFLECTOR )ZDApp_InitPendingBind();
#endif
#endif
} /* ZDApp_Init() */

YiKai Chen:

回复 user5367314:

把在ZDApp_Init里面的ZDAppCheckForHoldKey();這一行去掉再試試

user5367314:

回复 YiKai Chen:

可以了,原来是被按键HOLD住了,
ZDP_EndDeviceBindReq和ZDP_MatchDescReq是做什么用的?

YiKai Chen:

回复 user5367314:

ZDP_EndDeviceBindReq和ZDP_MatchDescReq是做綁定用的

赞(0)
未经允许不得转载:TI中文支持网 » Z-Stack Mesh 1.0.0终端问题
分享到: 更多 (0)