微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Quickview 中正确显示 NAMED_VALUE_FLOAT 值

如何解决如何在 Quickview 中正确显示 NAMED_VALUE_FLOAT 值

我在 Mission Planner 中自动处理 NAMED_VALUE_FLOAT 有一个小问题。

根据:https://github.com/ArduPilot/MissionPlanner/pull/2360 在 Quickview 中显示 NAMED_VALUE_FLOAT 应该很容易。所以这是我的设置:

  • Mission Planner 作为地面控制站 (GCS)(SysId:255,CompID:0)
  • Pixhawk 立方体作为自动驾驶仪(用于通过 USB 连接到 GCS 的调试)(SysId:1,Comp:0 和 1)
  • ArduinoUno 作为协同计算机(连接到 PX TELEM2,发送 MavLink2 Heartbeat [1 Hz] 和 NAMED_VALUE_FLOAT [2 Hz]),代码如下,使用的库:https://github.com/mavlink/c_library_v2
#include<common\mavlink.h>
#include<mavlink_helpers.h>
#include<mavlink_types.h>
#include<minimal\mavlink_msg_heartbeat.h>

mavlink_system_t mavlink_system = {
    1,// System ID (1-255)
    2  // Component ID (a MAV_COMPONENT value)
};

uint16_t packed;
mavlink_message_t msg;
mavlink_message_t heartbeat;
uint8_t buf[MAVLINK_MAX_PACKET_LEN];
uint16_t len;
short i;
float debug;

void setup() {
  // put your setup code here,to run once:
  Serial.begin(115200); 
  i = 0;
  debug = 0.0;
}

void loop() {
  // put your main code here,to run repeatedly:
  packed = mavlink_msg_named_value_float_pack(1,2,&msg,millis(),"debug",debug);
  len = mavlink_msg_to_send_buffer(buf,&msg);
  Serial.write(buf,len);
  if(debug >= 100){
    debug = 0;
  }
  debug = debug + 0.5;
  if(i == 2){
    i = 0;
    packed = mavlink_msg_heartbeat_pack(1,&heartbeat,18,3,5);
    len = mavlink_msg_to_send_buffer(buf,&heartbeat);
    Serial.write(buf,len);
  }
  i = i + 1;
  delay(500);
}

认情况下,Mission Planner 应该使用 customfield0 来处理我的调试值。 那么我是如何测试这个的:

  • 我将 PX 与 PC 和 Mission Planner 连接起来
  • 我正在检查 Quickview 中是否存在我的调试字段(双击任何值并查找 MAV_DEBUG) [不应该在那里]

    no_custom_field

  • 我正在连接 Arduino 并重复之前的检查 [字段可见]

    field_visible

  • 我正在选择我的领域

    no change in value

  • 如果字段值发生变化,我非常担心

但我的值 MAV_DEBUG 始终为 0.0 是否应该更改任何内容以正确显示此值?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?