在 ns_br 中,wisunstack 命令在用户调用 wisunstack start 后立即返回"start",这正如预期的那样。
但在 ns_node 中、如果在"wisunstack start"后调用 wisunstack、则 wisunstack 会返回"stop"、状态仅在调试完成后才会变为"start"。
这种行为是否符合预期? 我认为状态应该反映堆栈的状态、而不是连接状态。 您能否确认一下? 谢谢。
此致、
沭阳
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.
在 ns_br 中,wisunstack 命令在用户调用 wisunstack start 后立即返回"start",这正如预期的那样。
但在 ns_node 中、如果在"wisunstack start"后调用 wisunstack、则 wisunstack 会返回"stop"、状态仅在调试完成后才会变为"start"。
这种行为是否符合预期? 我认为状态应该反映堆栈的状态、而不是连接状态。 您能否确认一下? 谢谢。
此致、
沭阳
尊敬的沭阳:
您看到的行为似乎是预期的行为。 wisunstack 命令转换为命令 get 属性"PROP_NET_STACK_UP"。
在 ns_br 项目中,您可以在 NCP_BASE_MTD.cpp 中看到,当调用"PROP_NET_STACK_UP"时,is_net_STACK_UP()的值被返回到 pyspinel 接口。
extern "C" bool is_net_stack_up();
template <> otError NcpBase::HandlePropertyGet<SPINEL_PROP_NET_STACK_UP>(void)
{
return mEncoder.WriteBool((bool)is_net_stack_up());
}
如果按照 is_net_stack_up(),我们看到它返回 connectedFlg 变量的值,如果设备连接到网络,该值返回 true。
此连接在边界路由器上立即进行、但路由器节点上需要一些时间才能加入网络。
另一方面,如果在路由器节点端调用了 ifconfig up,则 ifconfig 立即返回 up。
此致、
SID