if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_PERIODIC_CLUSTERID,
10,
"000000000",
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) 这是给终端的发送函数。方式是广播。
uint8 data[11]="0123456789";
if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_P2P_CLUSTERID, //注意 接收的时候是这个簇
10,
data,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ); 这是给协调器发的。
case SAMPLEAPP_P2P_CLUSTERID: HalUARTWrite(0, "Rx:", 3); //提示接收到数据
HalUARTWrite(0, pkt->cmd.Data, pkt->cmd.DataLength); //串口输出接收到的数据
HalUARTWrite(0, "\n", 1); // 回车换行
break;
case SAMPLEAPP_PERIODIC_CLUSTERID: HalUARTWrite(0, "Rx:", 3); //提示信息
HalUARTWrite(0, pkt->cmd.Data, pkt->cmd.DataLength); //输出接收到的数据
HalUARTWrite(0, "\n", 1); break;
以上是接收事件函数中的给串口的部分。
有没有可能是广播的时候,自己给自己发啊?
可能问题有点弱,刚开始学,还请各位大神给出指教。
VV:
你设备注册了几个endpoint? 目的endpoint写的是0xFF吗?
用单播测试下。