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

协调器可以接收数据,但是无法发送数据,串口接收发送正常

如题:

1.协调器挂多个或少个设备无关,也会出现此情况

2.串口打印数据发送接收均正常

3.设备返回的状态可以发送至上位机

配置协调器:

NV_INIT
NV_RESTORE
xHOLD_AUTO_START
ZTOOL_P1
MT_TASK
MT_APP_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
MULTICAST_ENABLED=FALSE
ZCL_READ
ZCL_WRITE
ZCL_REPORT
xZCL_EZMODE
ZCL_BASIC
ZCL_IDENTIFY
ZCL_ON_OFF
ZCL_SCENES
ZCL_GROUPS
ZCL_WINDOWCOVERING
ZCL_DOORLOCK
ZCL_LEVEL_CTRL
ZCL_DIAGNOSTIC
FEATURE_SYSTEM_STATS
ZIGBEEPRO
WDT_IN_PM1
HAL_UART=TRUE

路由和协调器参考配置

AN123 – Breaking the 400-Node ZigBee® Network Barrier
With TI’s ZigBee SoC and Z-Stack™ Software

问题:

1.协调器能接收无法发送

2.抓包发现原来配置的15s一次的link status都没有发出来

协调器无法发出信息.zip

YiKai Chen:

能具體解釋一下协调器能无法发送、你是怎樣发送、還有你用的Z-Stack 版本和例程是?

Alvin Chen:

e2echina.ti.com/…/155357

Sleeping Forest:

回复 YiKai Chen:

1.协调器接收上位机命令,串口收发正常,但是无法发送出来抓包抓不到这条数据
2.版本是home 1.2.2a路由switch(开关设备)

YiKai Chen:

回复 Sleeping Forest:

能具體解釋一下协调器能是怎樣发送数据?

Alvin Chen:

回复 Sleeping Forest:

抓不到说明没发送成功,发送函数是什么?

Sleeping Forest:

回复 Alvin Chen:

其他设备发送也无法发生发送,linkstatus都没有发出来

Sleeping Forest:

回复 YiKai Chen:

串口透传,AF_datarequest发送,发送地址通过发送下来的长地址获取短地址后发送IEEEadrss_dest[0] = RfTx.IEEEAddr[0];IEEEadrss_dest[1] = RfTx.IEEEAddr[1];IEEEadrss_dest[2] = RfTx.IEEEAddr[2];IEEEadrss_dest[3] = RfTx.IEEEAddr[3];IEEEadrss_dest[4] = RfTx.IEEEAddr[4];IEEEadrss_dest[5] = RfTx.IEEEAddr[5];IEEEadrss_dest[6] = RfTx.IEEEAddr[6];IEEEadrss_dest[7] = RfTx.IEEEAddr[7];AddrMgrNwkAddrLookup( IEEEadrss_dest, (uint16*)ShortSaddr);//ShortSaddr = BUILD_UINT16(RfTx.shortadr[1], RfTx.shortadr[0]);SendDatasing(RfTx.SynHead,ShortSaddr,Uartrevlen);

Sleeping Forest:

回复 YiKai Chen:

uint8 SendDatasing(uint8 *buf, UINT16 addr, uint8 Leng)
{if(Leng>65)Leng=65;if(addr==0)return 0;afAddrType_t SendDataAddr; SendDataAddr.endPoint = SAMPLELIGHT_ENDPOINT;SendDataAddr.addr.shortAddr = addr;if(addr==0xffff){SendDataAddr.addrMode = (afAddrMode_t)AddrBroadcast;AF_DataRequest( &SendDataAddr, &sampleLight_TestEp,SAMPLEAPP_PERIODIC_CLUSTERID,Leng,buf,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS );}else{SendDataAddr.addrMode = (afAddrMode_t)Addr16Bit;AF_DataRequest( &SendDataAddr, &sampleLight_TestEp,//广播命令不需要重复发送。SAMPLEAPP_PERIODIC_CLUSTERID,Leng,buf,&SampleApp_TransID,//AF_SKIP_ROUTING,// 第一次发送跳过路由,如果失败再增加路由发送。提升客户体验。AF_DISCV_ROUTE,// AF_ACK_REQUEST,//AF_DEFAULT_RADIUS );memcpy(bufs,buf,Leng);addrs=addr; Lengs= Leng ;countt=0;// osal_start_timerEx( zclSampleLight_TaskID,SAMPLEAPP_SEND_WRITEDATA_EVT,500 );//上位机发给开关信息,开关没有应答会连发3次。}return 0;
}

YiKai Chen:

回复 Sleeping Forest:

先設個斷點調試看看AddrMgrNwkAddrLookup拿到的ShortSaddr對不對吧

Sleeping Forest:

回复 YiKai Chen:

这个问题并不是百分比复现只是偶尔有这样的情况,只能加打印下一次出现才能确定。短地址试过是可以的。

赞(0)
未经允许不得转载:TI中文支持网 » 协调器可以接收数据,但是无法发送数据,串口接收发送正常
分享到: 更多 (0)