Part Number:CC2530
我用一个协调器向另一个协调器发送INTERPAN 消息,为什么另一个协调器收不到消息?
以下是我的发送代码。
SampleApp_interPan_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
SampleApp_interPan_DstAddr.panId = 0x000B;// SampleApp_epDesc.endPoint = STUBAPS_INTER_PAN_EP;
StubAPS_SetInterPanChannel(0x0B);
StubAPS_RegisterApp(&SampleApp_epDesc); uint8 byData[10];
byData[0] = ((_NIB.nwkPanId >> 8) & 0xFF);
byData[1] = ((_NIB.nwkPanId ) & 0xFF);
if ( AF_DataRequest( &SampleApp_interPan_DstAddr, &SampleApp_interPan_epDesc,
CID_INTER_C2E_PANID,
10,
&byData[0],
&SampleApp_interPan_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
else
{
}
YiKai Chen:
建議先抓包看看inter PAN的封包有沒有送出來
,
user6536599:
好像消息没有发出来,那这是发送消息部分的代码错误了嘛
,
YiKai Chen:
建議你參考一下 e2e.ti.com/…/can-t-receive-interpan-messages
,
Kevin Qiu1:
参考Yikai发的链接,需要先确保inter-pan的数据包发送出来
,
user6536599:
现在已经看到有包发出来了,那么作为接收端的协调器应该怎样判断是否收到interpan消息呢?
,
YiKai Chen:
接收端可以先到INTERP_DataIndication看看有沒有收到封包
,
user6536599:
您的意思是在INTERP_DataIndication相关代码部分加个判断,还是抓包看?我抓包软件只有packet sniffer
,
YiKai Chen:
設置断奌在INTERP_DataIndication內部調试看看有沒有收到interPan資料
,
user6536599:
在此设置断点,发现并没有运行到这里
,
YiKai Chen:
先查收發有沒有在同樣的channel
,
user6536599:
信道是相同的,都是0x0B
,
YiKai Chen:
看看AF_INCOMING_MSG_CM能不能收到 DstEndPoint == STUBAPS_INTER_PAN_EP的訊息
,
user6536599:
接收端的 AF_INCOMING_MSG_CM 并没有收到任何消息,我在接收端的协调器并没有连接任何子节点,如果有消息,一定是发送端发送的interpan消息,然而,接收端没有收到任何消息。
,
YiKai Chen:
你截图的Data Request 並不是interpan message 、你確定你抓包有看到interpan message 送出?
,
user6536599:
从一个pan到另一个pan的通讯方式不应该是interpan吗,那从抓包该怎样看出是iinterpan message 呢,
,
YiKai Chen:
用DstEndPoint 是不是STUBAPS_INTER_PAN_EP判断
,
user6536599:
请问,我的这个协调器发送的是什么类型的消息?我想发送interpan消息,但一直调不出来,我是按照那个帖子里的方法来做的。却一直发送这样的消息
,
YiKai Chen:
可以附上你完整的抓包檔嗎?
,
user6536599:
抓包文档。.psd
,
YiKai Chen:
附圖上的封包像是你發出來的interpan封包嗎?如果是,這個封包是有MAC ack,代表接收端應該有收到,你可能要先確認接收端視不是也有把interPAN的定義加上
,
user6536599:
多谢前辈的解答,我现在已经可以收到interpan消息,同时我的接收端还要接收其他消息,有办法区分这两种消息类型吗?我想让接收端接收到interpan消息后做出反应。
,
YiKai Chen:
试试從source PANID 或是endpoint 判定