51uwb.cn

标题: DWM1000测距通信停止在Response [打印本页]

作者: 77296619    时间: 2021-9-24 21:36
标题: DWM1000测距通信停止在Response
我现在使用的是包含了非常复杂状态机的那份代码(DECA WAVE Release)。
但是在我测试的过程中我发现,在tag发送了poll之后,anchor接收到之后发送response信息,tag一直是收不到的,始终提示I= No Response(blink和rangeinit流程均正常)。


打印信息包括了:”RX timeout while in 2“、”PD_DATA_TIMEOUT 2“。现在我也不知道问题出在哪。

经过我调试后发现tag接收到anchor的RTLS_DEMO_MSG_RNG_INIT后,进入了TA_TXE_WAIT,但是并没有进入if(((inst->nextState == TA_TXPOLL_WAIT_SEND)  || (inst->nextState == TA_TXBLINK_WAIT_SEND)) && (inst->instToSleep))这个条件里,而是执行了else之后的代码。因为我看了博客中写的应该是执行满足if条件的代码,即testAppState = TA_SLEEP_DONE。 不知道是否是因为这个原因导致tag接收不到anchor的response?

我确定anchor是有在rxcallback中接收到RTLS_DEMO_MSG_TAG_POLL,并且发送了response(并且也执行了dw_event.type3 = DWT_SIG_TX_PENDING),在状态机中也执行到了TA_RX_WAIT_DATA中的case RTLS_DEMO_MSG_TAG_POLL中的if(dw_event->type3 == DWT_SIG_TX_PENDING)。

而在anchor发送完response后,tag没有进入rxcallback,不知道是什么原因?

还有为了确认我的代码无误,请问这份源代码是否开源?在哪里能下载到原版代码?

谢谢

作者: 蓝点无限    时间: 2021-9-25 09:06
知道非常复杂,为何还要难为自己和别人
我这里有一份代码,之前备份的,应该是没有改动,你可以参考链接:https://pan.baidu.com/s/1qosMfk3Ft7pGVmTSdvpXSg
提取码:6666

具体源码下载,你到decawave 官方网站找找
作者: 77296619    时间: 2021-9-25 12:04
蓝点无限 发表于 2021-9-25 09:06
知道非常复杂,为何还要难为自己和别人
我这里有一份代码,之前备份的,应该是没有改动,你可以参考链接 ...

没办法,项目需要。感谢您的分享
作者: 77296619    时间: 2021-9-29 15:45
我发现检查了代码仍然还是通信不了。

我现在有两个想法:
1、tag和anchor距离过近,我测试时是放在了相距不到一米的地方,这样导致了接收不到response frame。但是这种可能性应该是不大。
2、当tag接收不到response时,我重启了tag,接着tag发送blink frame,但是此时anchor进入了rxcallback,但是rx error, rxd->event是乱的,因此我怀疑,要么是response frame的格式不对,要么是tag的过滤设置问题。
所以能否请问一下,帧过滤设置是怎么一回事?在哪里检查?
作者: dragon_L    时间: 2021-9-30 09:05
应该是要么发送失败,要么就是发送和接收的时间没有在一段时间内
作者: lukkulluk    时间: 2022-3-4 15:59
谢谢楼主分享




欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3