51uwb.cn

 找回密码
 立即注册
查看: 5607|回复: 1
打印 上一主题 下一主题

上位机软件通信协议更改说明

[复制链接]

73

主题

249

帖子

7065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7065
跳转到指定楼层
楼主
发表于 2019-3-11 20:10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UWB 基站将测得的距离信息通过串口发送给上位机,上位机根据这些测距信息解算位置坐标, 需要统一规定信息的格式。

之前论坛里已经放过格式定义,请参见 链接

这里简单介绍下如果修改上位机的通信格式
用qt打开源码,找到RTLSClient.cpp 文件void RTLSClient::newData() ,下面的字符m 和 r 是通信的头标识
  1. case 0:
  2.                 if(tmp=='m')
  3.                     usart_state=1;
  4.                 break;
  5.             case 1:
  6.                 if(tmp=='r')
  7.                 {
  8.                     usart_state=2;
  9.                     data_pos =0;
  10.                 }
  11.                 break;
复制代码

void RTLSClient::ProcessData(void) 中可以找到将测得距离重新整合在一起
  1.    else if(frame_type == 2)
  2.     {
  3.         range[0]=frame[4]|frame[5]<<8;
  4.         range[1]=frame[6]|frame[7]<<8;
  5.         range[2]=frame[8]|frame[9]<<8;
  6.         range[3]=frame[10]|frame[11]<<8;
  7.         ra[0] = range[0]*10;
  8.         ra[1] = range[1]*10;
  9.         ra[2] = range[2]*10;
  10.         ra[3] = range[3]*10;
  11.         processTagRangeReport(0, TAG_ID, range[0]*10, lnum, seq);
  12.         processTagRangeReport(1, TAG_ID, range[1]*10, lnum, seq);
  13.         processTagRangeReport(2, TAG_ID, range[2]*10, lnum, seq);
  14.         processTagRangeReport(3, TAG_ID, range[3]*10, lnum, seq);
  15.         trilaterateTag(TAG_ID, seq);
  16.     }
复制代码
trilaterateTag(TAG_ID, seq); 就是三边定位函数具体实现

回复

使用道具 举报

0

主题

45

帖子

48

积分

新手上路

Rank: 1

积分
48
沙发
发表于 2021-9-30 17:19:42 | 只看该作者
好资料,学习了,谢谢楼主,赞赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-11-22 20:50 , Processed in 0.012082 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表