This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ZLL 1.02 Bridge 重启 与 Remote 重启 问题

Other Parts Discussed in Thread: Z-STACK

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    

    根据的回答进行测试 其结果是正确的!