TI中文支持网
TI专业的中文技术问题搜集分享网站

zstack 3.0.2 通过AF_DataRequest发送和接收数据的问题

终端点播发送数据,但是协调器接收不到,通过调试知道协调器(接收端)代码并未跑到AF_INCOMING_MSG_CMD事件中,发送数据的抓包截图显示数据已经发出去了,所以麻烦大佬帮我看一下咋回事吧,谢谢啦。

初始化部分代码:

SimpleDescriptionFormat_t zclGenericApp_SimpleDesc =
{GENERICAPP_ENDPOINT,//  int Endpoint;ZCL_HA_PROFILE_ID,//  uint16 AppProfId;// GENERICAPP_TODO: Replace ZCL_HA_DEVICEID_ON_OFF_LIGHT with application specific device IDZCL_HA_DEVICEID_ON_OFF_LIGHT,//  uint16 AppDeviceId;GENERICAPP_DEVICE_VERSION,//  intAppDevVer:4;GENERICAPP_FLAGS,//  intAppFlags:4;ZCLGENERICAPP_MAX_INCLUSTERS,//  byte  AppNumInClusters;(cId_t *)zclGenericApp_InClusterList, //  byte *pAppInClusterList;ZCLGENERICAPP_MAX_OUTCLUSTERS,//  byte  AppNumInClusters;(cId_t *)zclGenericApp_OutClusterList //  byte *pAppInClusterList;
};
static endPointDesc_t zclGenericApp_TestEp =
{
GENERICAPP_ENDPOINT, // endpoint
0,
&zclGenericApp_TaskID,
(SimpleDescriptionFormat_t *)&zclGenericApp_SimpleDesc, 
noLatencyReqs 
};
const cId_t zclGenericApp_InClusterList[] =
{ZCL_CLUSTER_ID_GEN_BASIC,ZCL_CLUSTER_ID_GEN_IDENTIFY,ZCL_CLUSTER_CLUSTERID,
};
*****************************************************************************************
const cId_t zclGenericApp_OutClusterList[] =
{ZCL_CLUSTER_ID_GEN_BASIC,ZCL_CLUSTER_CLUSTERID,
};

发送部分代码:

my_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;//设置发送模式
my_DstAddr.endPoint = GENERICAPP_ENDPOINT;//初始化端口号
my_DstAddr.addr.shortAddr=0x0000; 
AF_DataRequest(&my_DstAddr,&zclGenericApp_TestEp,ZCL_CLUSTER_CLUSTERID,uart_rdlen-1,&uart_rdata[1],&zclGenericApp_TaskID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);

接收部分代码:

case AF_INCOMING_MSG_CMD:

HalUARTWrite(0,"msg00\n",6);
GenericApp_MessageMSGCB( MSGpkt );

break;

********************************************************************
void GenericApp_MessageMSGCB(afIncomingMSGPacket_t *pkt){
uint8 buffer[10];
switch ( pkt->clusterId )
{
case ZCL_CLUSTER_CLUSTERID: 
osal_memcpy(buffer,pkt->cmd.Data,pkt->cmd.DataLength);
Uart_Write(SEND_DATA,0,buffer,pkt->cmd.DataLength);
break;

}
}

发送数据时抓包如下:

YiKai Chen:

先設断点在AF.c的afincomingmsg理頭看看有沒有收到封包

Viki Shi:

请参考这边的类似问题:e2echina.ti.com/…/563151

YIFEI YUAN:

回复 YiKai Chen:

在afIncomingData中收到了数据包,所以应该是数据发到了,但是没出触发AF_INCOMING_MSG_CMD事件,但是我看另一个帖子里说的是“zclGenericApp_event_loop理面無法收AF_INCOMING_MSG_CMD”,除非修改afBuildMSGIncoming。所以这个修改方式有没有参考啊?

YiKai Chen:

回复 YIFEI YUAN:

作法上可以參考 dev.ti.com/…/node

YIFEI YUAN:

回复 YiKai Chen:

我去看了这个文档,没有找到相应的修改方法呀,“修改afBuildMSGIncoming讓他收到自定义的Cluster ID後會轉送到zclGenericApp_event_loop”,这个应该怎么修改呀?

赞(0)
未经允许不得转载:TI中文支持网 » zstack 3.0.2 通过AF_DataRequest发送和接收数据的问题
分享到: 更多 (0)