你好。 我已经 移除了示例应用程序的 UI 和 UART 组件、以降低功耗并实现 uC 睡眠。 执行此操作时、将删除所有调试功能、并且无法通过按下侧边按钮来触发配对。 为了解决这一问题、我实施了调试例程作为按钮回调、如下所示:
static uint16_t bdbCommissioningModes =
BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
static void commissioningBtnCallback(Button_Handle _buttonHandle,
Button_EventMask _buttonEvents)
{
if ((_buttonEvents & Button_EV_CLICKED) && (_buttonHandle == gLeftButtonHandle))
{
zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
zstack_bdbStartCommissioningReq.commissioning_mode =
bdbCommissioningModes;
Zstackapi_bdbStartCommissioningReq(appServiceTaskId,
&zstack_bdbStartCommissioningReq);
}
}
void configureCommissioningCb()
{
Button_Params bparams;
Button_Params_init(&bparams);
gLeftButtonHandle = Button_open(CONFIG_BTN_LEFT, &bparams);
Button_setCallback(gLeftButtonHandle, commissioningBtnCallback);
}
按钮回调正常运行并正确触发、但是我最终卡在 sendReqDefaultRsp ,即:
while(!gotRsp)
{
// Wait for the response message
OsalPort_blockOnEvent(Task_self());
pCmdStatus = (zstackmsg_genericReq_t*)OsalPort_msgFindDequeue(appServiceTaskId, pMsg->hdr.event);
if(pCmdStatus)
{
gotRsp = true;
}
}
似乎该应用程序等待从未送达的响应。 我的调试请求配置中是否缺少某些内容?