TDOA Delayed Tx 实现以及验证
在博文:https://www.cnblogs.com/tuzhuke/p/11638221.html 中描述了delayed tx实现方法,这里贴出全部delayed tx 代码以及对应验证代码
1 delayed tx 代码
static uint32 final_tx_time;
static uint64 final_tx_ts;
void BPhero_Distance_Sync_Node(void)
{
int address = ;
msg_f_send.destAddr[] = 0xFF;
msg_f_send.destAddr[] = 0xFF; final_tx_time = dwt_readsystimestamphi32() +0x100000;
dwt_setdelayedtrxtime(final_tx_time); final_tx_ts = (((uint64)(final_tx_time & 0xFFFFFFFE)) << ) + TX_ANT_DLY; final_msg_set_ts(&msg_f_send.messageData[FIRST_TX], final_tx_ts);// 2 3 4 5 6 msg_f_send.seqNum = sync_seqnum;
msg_f_send.messageData[]='S';
msg_f_send.messageData[]=; dwt_writetxdata(psduLength, (uint8 *)&msg_f_send, ) ; // write the frame data
dwt_writetxfctrl(psduLength, );
dwt_starttx(DWT_START_TX_DELAYED);
while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))
{ }; /* Clear TX frame sent event. */
dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_TXFRS); // dwt_forcetrxoff();
if(++sync_seqnum == )
sync_seqnum = ;
}
2 delayed tx验证方法
h32_timestamp= final_tx_ts>>;
l8_timestamp = final_tx_ts&0xFF;
sprintf(lcd_display_str, "%X%X",h32_timestamp,l8_timestamp);
OLED_ShowString(,,(uint8_t *)lcd_display_str); last_tx_ts = get_tx_timestamp_u64(); h32_timestamp= last_tx_ts>>;
l8_timestamp = last_tx_ts&0xFF;
sprintf(lcd_display_str, "%X%X",h32_timestamp,l8_timestamp);
OLED_ShowString(,,(uint8_t *)lcd_display_str);
验证方法是把delayed tx timestamp打印出来,同时打印发送tx_timestamp,比较二者是否一致。
上述代码将两个时间放在液晶上显示,观察到两个数据完全一样,说明delayed tx code 没有问题
3注意问题:
final_tx_ts 所有40bit都是有效的,而last_tx_ts低9bit 一直为0,两者比较的时候需要忽略低9bit
4其它问题:
64bit 显示有如下问题,中间需要加变量,具体原因没有去深入查资料,有明白的同学可以留言指导
last_rx_ts= 0x123456789A;
sprintf(lcd_display_str, "%X%X",last_rx_ts>>32,last_rx_ts);
液晶上显示120
last_rx_ts= 0x123456789A;
sprintf(lcd_display_str, "%X%X",last_rx_ts,last_rx_ts>>32);
液晶上显示3456789A12
更多内容参考蓝点无限论坛bphero.com.cn
TDOA Delayed Tx 实现以及验证的更多相关文章
- TDOA基础之 delayed tx 实现说明
不论是在TWR 还是TDOA定位算法中,delayed tx 都会用到,这篇博文主要解析delayed tx 实现. 何为delayed tx? delayed tx 是延时发送,为何要延时?因为这个 ...
- TDOA基站 之 时间同步
TDOA 和 TWR相比,标签可以用最少的信息来定位,但是对于基站要求很高,需要“时间同步”. 这也是TDOA算法的核心部分,很多套件对此讳莫如深,希望能沟通过本文使读者能对TODA同步有一定初步了解 ...
- selenium滑块验证
使用selenium模拟登录解决滑块验证问题 本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录,如果还是模拟 ...
- TDOA 之 基站逻辑代码实现
在前一篇博文里描述了基站的逻辑部分,这里贴出来具体代码实现.https://www.cnblogs.com/tuzhuke/p/11689881.html 1 Sync 信息部分 case 'S': ...
- TDOA 之 基站接收数据
基站主要 接收同步节点发来的同步信号,代码里定义为S信息. 以及标签节点发来的定位信号,代码中定义为T信号. 代码中使用中断以及帧过滤功能,对模块只接收自己关心设定好的信息,通过中断告知上层,而不是长 ...
- 【DWM1000】 code 解密2一 工程初始化代码分析
instance_init 函数追下去,绝大多数的代码都在初始化如下结构体 typedef struct { INST_MODE mode; instance_init -ANCHOR //insta ...
- 【DWM1000】 code 解密1一 去掉Main 函数多余内容
蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 室内定位兴起,DWM1000 作为超宽带UWB的代表,在国内用的越来越多,但是可见资料非常少. 一方面 ...
- 一些关于Hibernate延迟加载的误区
最近面试别人,正好出的笔试题中有道关于Hibernate延迟加载的问题,聊天过程中发现很多人对Hibernate的延迟加载有些理解误区,写 些东东在这里,希望对大家有所帮助. 首先是第一个误区:延迟加 ...
- Tx.Origin 用作身份验证
Solidity 中有一个全局变量,tx.origin,它遍历整个调用栈并返回最初发送调用(或交易)的帐户的地址.在智能合约中使用此变量进行身份验证会使合约容易受到类似网络钓鱼的攻击. 有关进一步阅读 ...
随机推荐
- Arm 环境上面libgdiplus的简单安装配置
1. 下载libgdiplus的包 wget http://download.mono-project.com/sources/libgdiplus/libgdiplus0-6.0.4.tar.gz ...
- Java调用SqlLoader将大文本导入数据库
Java调用SqlLoader将大文本导入数据库 业务场景:将一千万条数据,大约500M的文本文档的数据导入到数据库 分析:通过Java的IO流解析txt文本文档,拼接动态sql实现insert入库, ...
- Ubuntu bashrc profile environment 区别
在 Ubuntu 中有如下几个文件可以设置环境变量: /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. ...
- WUSTOJ 1344: still水题(Java)进制转换
题目链接:1344: still水题 Description 送AC,不解释 Input 输入两个整数n和b,b表示该数的进制(包含2.8.16进制,多组数组) Output 输出该整数(10进制,每 ...
- WUSTOJ 1326: Graph(Java)费马数
题目链接:1326: Graph 参考博客:HNUSTOJ-1617 Graph(费马数)--G2MI Description Your task is to judge whether a regu ...
- 机器学习-EM算法-pLSA模型笔记
pLSA模型--基于概率统计的pLSA模型(probabilistic Latent Semantic Analysis,概率隐语义分析),增加了主题模型,形成简单的贝叶斯网络,可以使用EM算法学习模 ...
- 网易自动化测试工具(airtest)的环境部署
airtest 环境配置: 1.安装Python2.7 及 Python3.6 版本(2个需要都安装) 2.配置python环境变量(AirtestIDE 需要在python2.x的环境下运行,所以尽 ...
- 2.33模型--去除字符串两头空格.c
[注:本程序验证是使用vs2013版] #include <stdio.h> #include <stdlib.h> #include <string.h> #pr ...
- Python Unittest进行接口测试的简单示例
今年肯定是要把Python学到一定程度的,否则感觉自己混不下去了,那就开始半挣扎的咸鱼生活吧. ---------------------------------------------------- ...
- SaltStack实现动态文件分发,支持脚本换行,中文乱码
场景:将动态脚本分发到各个机器的指定目录下 说明:使用SaltStack的 file.managed file.managed 里面可以定义内容的几种方式 - source: - contents: ...