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.

簇和回调函数的对应关系

请教一下Ti大神们:

      zigbee 3.0协议栈中簇和它相关的回调函数的对应关系在哪里呢?ZCL_CLUSTER_ID_GEN_ON_OFF 和zclSampleLight_OnOffCB()这个函数是怎么对应到一起的。还有这种类型的函数的定义,typedef void (*zclGCB_Identify_t)( zclIdentify_t *pCmd );  //输入形参为Pcmd,输出参数为void的一个函数   

感觉都没有用到呢? 

  • 是透過 zclGeneral_RegisterCmdCallbacks( SAMPLELIGHT_ENDPOINT, &zclSampleLight_CmdCallbacks )去註冊使用的
  • 嗯嗯,那怎么确定才能簇和回调函数相一一对应呢。是通过这个函数zclGeneral_HdlInSpecificCommands( zclIncoming_t *pInMsg )中的

    #ifdef ZCL_GROUPS
        case ZCL_CLUSTER_ID_GEN_GROUPS:
          if ( zcl_ServerCmd( pInMsg->hdr.fc.direction ) )
            stat = zclGeneral_ProcessInGroupsServer( pInMsg );
          else
            stat = zclGeneral_ProcessInGroupsClient( pInMsg, pCBs );
          break;
    #endif // ZCL_GROUPS
    #ifdef ZCL_SCENES
        case ZCL_CLUSTER_ID_GEN_SCENES:
          if ( zcl_ServerCmd( pInMsg->hdr.fc.direction ) )
            stat = zclGeneral_ProcessInScenesServer( pInMsg, pCBs );
          else
            stat = zclGeneral_ProcessInScenesClient( pInMsg, pCBs );
          break;
    #endif // ZCL_SCENES
    #ifdef ZCL_ON_OFF
        case ZCL_CLUSTER_ID_GEN_ON_OFF:
          stat = zclGeneral_ProcessInOnOff( pInMsg, pCBs );
          break;
    #endif // ZCL_ON_OFF
    这种一一对应的吗
  • 大神您好,请问一下簇和回调函数的对应关系是不是下面说的关系呢,还是怎么相互对应的呢
  • 能簇和回调函数相一一对应呢。是通过这个函数zclGeneral_HdlInSpecificCommands( zclIncoming_t *pInMsg )中的pCBs = zclGeneral_FindCallbacks( pInMsg->msg->endPoint ) 然後在呼叫對應的簇程序去處理

  • 好的,谢谢YiKai Chen大神,就是我还想咨询一下一般想进一步学习zigbee,怎么去寻找源码呢,我感觉TI本身协议栈提供的源码所实现的功能太少了,完全不能达到更深的学习目的呢。请大神指教一下!

  • TI本身协议栈提供的源码所实现的功能太少了,完全不能达到更深的学习目的呢

    根據我的經驗,TI协议栈提供的源码完全能夠作到Zigbee HA/zll/3.0 spec定義裡面的功能,為什麼你會說他提供的源码所实现的功能太少?

  • 嗯嗯,好的。那我还是就看协议栈中的内容进行学习,谢谢您