ZLL 1.02 Bridge 重启 与 Remote 重启 问题
All
用SmartRF 05EB+2530EM 测试ZLL1.0.2, Download SampleBridge和SampleLight到EB板, 按照"Z-Stack Lighting Sample Application User's Guide", 测试功能没有问题, Touch搜到light, ON/OFF控制 light, 但是 Bridge重启后, 就不能再对Light的控制, 需要再touch才能控制.
我在调试中也遇到了这样的问题。请问TI员工我如何做才能让 Bridge重启后 或Remote重启后仍能对已连接过的Light进行控制?
请Ti员工百忙中给予解答, Thanks.
我这边验证了下,确实存在这个问题,之后给你个答复。
谢谢!
你好,
在重启以后,当你再去ON/OFF控制一个灯的时候,调用的是下面程序
zclGeneral_SendOnOff_CmdOn( SAMPLEBRIDGE_ENDPOINT, &zllSampleBridge_DstAddr, FALSE, sampleBridgeSeqNum++ );
在上面这个函数里面因为Reset,所以zllSampleBridge_DstAddr被初始化,所以值为0
在zllSampleBridge_Init被初始化。
那么这个命令显示是一个无效的命令,因为目的地址不对。
正确的做法是,需要选择一个合适的灯,选择灯的时候,就把这个目的地址获取到了,之后就可以控制了
选择灯也是通过按键实现的
if ( keys == DEV_SEL_UP_KEY )
{
if ( linkedAddrNum > 0 )
{
if( (linkedAddrSelIdx+1) >= linkedAddrNum )
{
linkedAddrSelIdx = 0;
}
else
{
linkedAddrSelIdx++;
}
zllSampleBridge_DstAddr.addrMode = afAddr16Bit;
zllSampleBridge_DstAddr.addr.shortAddr = linkedTargets.arr[linkedAddrSelIdx].Addr;
zllSampleBridge_DstAddr.endPoint = linkedTargets.arr[linkedAddrSelIdx].EP;
zclGeneral_SendIdentify( SAMPLEBRIDGE_ENDPOINT, &zllSampleBridge_DstAddr,
SAMPLEBRIDGE_CMD_IDENTIFY_TIME, FALSE, sampleBridgeSeqNum++ );
HalLcdWriteStringValue( "Dev Sel:", zllSampleBridge_DstAddr.addr.shortAddr, 16, HAL_LCD_LINE_3 );
}
else
{
HalLcdWriteString( "Dev Sel: no trgt", HAL_LCD_LINE_3 );
}
}
if ( keys == DEV_SEL_DN_KEY )
Thanks W
根据的回答进行测试 其结果是正确的!