各位大侠好,我是个ZStack协议栈学习的新手,自学了一段时间,有很多疑惑。
1、两个端点绑定过程,一般通过按键触发绑定,按键处理程序如下
if ( keys & HAL_KEY_SW_2 )
{
HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF );
// Initiate an End Device Bind Request for the mandatory endpoint
dstAddr.addrMode = Addr16Bit;
dstAddr.addr.shortAddr = 0x0000; // Coordinator
ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(), GenericApp_epDesc.endPoint,
GENERICAPP_PROFID,
GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
FALSE );
}
if ( keys & HAL_KEY_SW_3 )
{
}
if ( keys & HAL_KEY_SW_4 )
{
HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF );
// Initiate a Match Description Request (Service Discovery)
dstAddr.addrMode = AddrBroadcast;
dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
GENERICAPP_PROFID,
GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
FALSE );
}
这里不能明白,在按键2时已经发起了绑定请求,按键4干么还要发起启动匹配描述符请求?绑定的过程不就是一个匹配描述符的过程吗?
还是这是两种形式的绑定过程?
2、还有一个问题,就是无线串口,协议中Uart应该有两种工作模式,DMA和ISR,他们的区别是什么,能不能详细讲讲DMA模式的流程
3、听说ZTool是TI的很不错的协议栈开发工具,能不能具体介绍下使用?
多谢多谢,暂时先问这么多吧
WZ:
1. 按键2 是 发起binding请求,一般需要另外一个设备发起相应的binding命令来完成binding的操作。按键4 也叫auto-matching。可以自动寻找相应的网络设备完成binding。比如灯和开关。
2。 DMA是指使用芯片内部的DMA控制器来完成数据传输。ISR是使用串口中断来用MCU来进行数据搬运。DMA方式节省MCU的时间和增加效率。
3。 Ztool是不错的工具,你可以在Z-stack的安装目录下找到他,然后打开help文件。里面有详细的介绍。注意要enable MT 的功能。
WZ:
1. 按键2 是 发起binding请求,一般需要另外一个设备发起相应的binding命令来完成binding的操作。按键4 也叫auto-matching。可以自动寻找相应的网络设备完成binding。比如灯和开关。
2。 DMA是指使用芯片内部的DMA控制器来完成数据传输。ISR是使用串口中断来用MCU来进行数据搬运。DMA方式节省MCU的时间和增加效率。
3。 Ztool是不错的工具,你可以在Z-stack的安装目录下找到他,然后打开help文件。里面有详细的介绍。注意要enable MT 的功能。
Alex Abraham:
回复 WZ:
按键4看起来只是一个没有给endPoint赋值的广播命令。。。