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.

CC2530: 关于Zstack3.0.2处理ZCL_Read的问题

Part Number: CC2530

你好,请问一下我是基于GenericApp写的代码,由ZED向ZC发起ZCL_ReadSend请求的时候,发现并没有触发

case ZCL_INCOMING_MSG:部分的代码,实际追踪发现,ZCL_ReadSend请求被static uint8 zclProcessInReadCmd( zclIncoming_t *pInMsg )函数处理了
源代码基本没有动过,以下是Init部分
void zclGenericApp_Init(byte task_id)
{
  zclGenericApp_TaskID = task_id;

  // This app is part of the Home Automation Profile
  bdb_RegisterSimpleDescriptor(&zclGenericApp_SimpleDesc);

  // Register the ZCL General Cluster Library callback functions
  zclGeneral_RegisterCmdCallbacks(GENERICAPP_ENDPOINT, &zclGenericApp_CmdCallbacks);

  // GENERICAPP_TODO: Register other cluster command callbacks here

  // Register the application's attribute list
  zcl_registerAttrList(GENERICAPP_ENDPOINT, zclGenericApp_NumAttributes, zclGenericApp_Attrs);

  // Register the Application to receive the unprocessed Foundation command/response messages
  zcl_registerForMsg(zclGenericApp_TaskID);

#ifdef ZCL_DISCOVER
  // Register the application's command list
  zcl_registerCmdList(GENERICAPP_ENDPOINT, zclCmdsArraySize, zclGenericApp_Cmds);
#endif

  // Register low voltage NV memory protection application callback
  RegisterVoltageWarningCB(zclSampleApp_BatteryWarningCB);

  afRegister(&cood_ep_desc);
  // Register for all key events - This app will handle all key events
  RegisterForKeys(zclGenericApp_TaskID);

  bdb_RegisterCommissioningStatusCB(zclGenericApp_ProcessCommissioningStatus);
  bdb_RegisterIdentifyTimeChangeCB(zclGenericApp_ProcessIdentifyTimeChange);
  bdb_RegisterBindNotificationCB(zclGenericApp_BindNotification);

#if (defined(BDB_TL_TARGET) && (BDB_TOUCHLINK_CAPABILITY_ENABLED == TRUE))
  bdb_RegisterTouchlinkTargetEnableCB(zclGenericApp_ProcessTouchlinkTargetEnable);
#endif

#ifdef ZCL_DIAGNOSTIC
  // Register the application's callback function to read/write attribute data.
  // This is only required when the attribute data format is unknown to ZCL.
  zcl_registerReadWriteCB(GENERICAPP_ENDPOINT, zclDiagnostic_ReadWriteAttrCB, NULL);

  if (zclDiagnostic_InitStats() == ZSuccess)
  {
    // Here the user could start the timer to save Diagnostics to NV
  }
#endif
  bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION |
                         BDB_COMMISSIONING_MODE_NWK_STEERING |
                         BDB_COMMISSIONING_MODE_FINDING_BINDING |
                         BDB_COMMISSIONING_MODE_INITIATOR_TL);

#ifdef LCD_SUPPORTED
  HalLcdWriteString((char *)sDeviceName, HAL_LCD_LINE_3);
#endif // LCD_SUPPORTED
}
是否遗漏了某个部分,导致
没有进入这个switch分支?和
zclGenericApp_ProcessIncomingMsg((zclIncomingMsg_t *)MSGpkt);函数?