itmozun 发表于 2023-4-13 18:04:36

上位机标签与基站的距离是怎么得到的

上位机里面有一段代码是收到串口传过来的数据后就进行解析,然后可以得到标签与基站的距离,这个解析的原理是什么?//当接收到有效数据包后,对数据包里的数据进行解析,
//解析主要内容有3个距离信息(如果是4基站定位有4个距离信息),标签的ID以及其它信息。
void mainwindow::ProcessData(void)
{
    uint8_t frame_type;
    uint8_t TAG_ID,seq;
    uint16range,lnum;
    frame_type = frame;

    TAG_ID = frame;
    lnum = frame|frame<<8;
    seq = lnum&0xff;


    if(frame_type==1)
    {
      range=frame|frame<<8;
      range=frame|frame<<8;
      range=frame|frame<<8;
      range = range*10;
      range = range*10;
      range = range*10;


      if(_useAutoPos) //if Anchor auto positioning is enabled then process Anchor-Anchor TWR data
      {
            processAnchRangeReport(0, 1, range, lnum, seq);
            processAnchRangeReport(0, 2, range, lnum, seq);
            processAnchRangeReport(1, 2, range, lnum, seq);
      }
    }
    else if(frame_type == 2)
    {
      range=frame|frame<<8;
      range=frame|frame<<8;
      range=frame|frame<<8;
      range=frame|frame<<8;

      ra = range*10;//解码
      ra = range*10;
      ra = range*10;
      ra = range*10;


      processTagRangeReport(0, TAG_ID, range*10, lnum, seq);//校正
      processTagRangeReport(1, TAG_ID, range*10, lnum, seq);
      processTagRangeReport(2, TAG_ID, range*10, lnum, seq);
      processTagRangeReport(3, TAG_ID, range*10, lnum, seq);


      trilaterateTag(TAG_ID, seq);//定位
      //qDebug() << range;
      //这个是解算标签坐标的入口函数,在这个函数会判断是有几个基站距离,然后调用calculateTagLocation 完成解算
    }

}

蓝点无限 发表于 2023-4-13 22:27:06

      range=frame|frame<<8;
      range=frame|frame<<8;
      range=frame|frame<<8;
      range=frame|frame<<8;

      ra = range*10;//解码
      ra = range*10;
      ra = range*10;
      ra = range*10;
匹配字符串
页: [1]
查看完整版本: 上位机标签与基站的距离是怎么得到的