mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-03 00:31:36 +08:00
combine sensor_gps + vehicle_gps_position msgs (keeping separate topics)
This commit is contained in:
@@ -90,7 +90,7 @@ bool CRSFTelemetry::send_battery()
|
||||
|
||||
bool CRSFTelemetry::send_gps()
|
||||
{
|
||||
vehicle_gps_position_s vehicle_gps_position;
|
||||
sensor_gps_s vehicle_gps_position;
|
||||
|
||||
if (!_vehicle_gps_position_sub.update(&vehicle_gps_position)) {
|
||||
return false;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include <uORB/Subscription.hpp>
|
||||
#include <uORB/topics/battery_status.h>
|
||||
#include <uORB/topics/vehicle_attitude.h>
|
||||
#include <uORB/topics/vehicle_gps_position.h>
|
||||
#include <uORB/topics/sensor_gps.h>
|
||||
#include <uORB/topics/vehicle_status.h>
|
||||
#include <drivers/drv_hrt.h>
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <uORB/Subscription.hpp>
|
||||
#include <uORB/topics/vehicle_gps_position.h>
|
||||
#include <uORB/topics/sensor_gps.h>
|
||||
#include <uORB/topics/battery_status.h>
|
||||
#include <uORB/topics/vehicle_attitude.h>
|
||||
#include <matrix/math.hpp>
|
||||
@@ -262,7 +262,7 @@ void BST::RunImpl()
|
||||
}
|
||||
|
||||
if (_gps_sub.updated()) {
|
||||
vehicle_gps_position_s gps;
|
||||
sensor_gps_s gps;
|
||||
_gps_sub.copy(&gps);
|
||||
|
||||
if (gps.fix_type >= 3 && gps.eph < 50.0f) {
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#include <uORB/topics/vehicle_air_data.h>
|
||||
#include <uORB/topics/vehicle_local_position.h>
|
||||
#include <uORB/topics/vehicle_global_position.h>
|
||||
#include <uORB/topics/vehicle_gps_position.h>
|
||||
#include <uORB/topics/sensor_gps.h>
|
||||
#include <uORB/topics/vehicle_status.h>
|
||||
|
||||
#include <drivers/drv_hrt.h>
|
||||
@@ -71,7 +71,7 @@ struct frsky_subscription_data_s {
|
||||
uORB::SubscriptionData<vehicle_air_data_s> vehicle_air_data_sub{ORB_ID(vehicle_air_data)};
|
||||
uORB::SubscriptionData<vehicle_local_position_s> vehicle_local_position_sub{ORB_ID(vehicle_local_position)};
|
||||
uORB::SubscriptionData<vehicle_global_position_s> vehicle_global_position_sub{ORB_ID(vehicle_global_position)};
|
||||
uORB::SubscriptionData<vehicle_gps_position_s> vehicle_gps_position_sub{ORB_ID(vehicle_gps_position)};
|
||||
uORB::SubscriptionData<sensor_gps_s> vehicle_gps_position_sub{ORB_ID(vehicle_gps_position)};
|
||||
uORB::SubscriptionData<vehicle_status_s> vehicle_status_sub{ORB_ID(vehicle_status)};
|
||||
};
|
||||
|
||||
@@ -180,7 +180,7 @@ void frsky_send_frame1(int uart)
|
||||
int16_t telem_flight_mode = get_telemetry_flight_mode(subscription_data->vehicle_status_sub.get().nav_state);
|
||||
frsky_send_data(uart, FRSKY_ID_TEMP1, telem_flight_mode); // send flight mode as TEMP1. This matches with OpenTX & APM
|
||||
|
||||
const vehicle_gps_position_s &gps = subscription_data->vehicle_gps_position_sub.get();
|
||||
const sensor_gps_s &gps = subscription_data->vehicle_gps_position_sub.get();
|
||||
frsky_send_data(uart, FRSKY_ID_TEMP2, gps.satellites_used * 10 + gps.fix_type);
|
||||
|
||||
frsky_send_startstop(uart);
|
||||
@@ -204,7 +204,7 @@ void frsky_send_frame2(int uart)
|
||||
const vehicle_global_position_s &gpos = subscription_data->vehicle_global_position_sub.get();
|
||||
const vehicle_local_position_s &lpos = subscription_data->vehicle_local_position_sub.get();
|
||||
const battery_status_s &battery_status = subscription_data->battery_status_sub.get();
|
||||
const vehicle_gps_position_s &gps = subscription_data->vehicle_gps_position_sub.get();
|
||||
const sensor_gps_s &gps = subscription_data->vehicle_gps_position_sub.get();
|
||||
|
||||
/* send formatted frame */
|
||||
float course = 0, lat = 0, lon = 0, speed = 0, alt = 0;
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
#include <uORB/topics/vehicle_global_position.h>
|
||||
#include <uORB/topics/vehicle_local_position.h>
|
||||
#include <uORB/topics/vehicle_status.h>
|
||||
#include <uORB/topics/vehicle_gps_position.h>
|
||||
#include <uORB/topics/sensor_gps.h>
|
||||
|
||||
#include <drivers/drv_hrt.h>
|
||||
|
||||
@@ -69,7 +69,7 @@ struct s_port_subscription_data_s {
|
||||
uORB::SubscriptionData<vehicle_acceleration_s> vehicle_acceleration_sub{ORB_ID(vehicle_acceleration)};
|
||||
uORB::SubscriptionData<vehicle_air_data_s> vehicle_air_data_sub{ORB_ID(vehicle_air_data)};
|
||||
uORB::SubscriptionData<vehicle_global_position_s> vehicle_global_position_sub{ORB_ID(vehicle_global_position)};
|
||||
uORB::SubscriptionData<vehicle_gps_position_s> vehicle_gps_position_sub{ORB_ID(vehicle_gps_position)};
|
||||
uORB::SubscriptionData<sensor_gps_s> vehicle_gps_position_sub{ORB_ID(vehicle_gps_position)};
|
||||
uORB::SubscriptionData<vehicle_local_position_s> vehicle_local_position_sub{ORB_ID(vehicle_local_position)};
|
||||
uORB::SubscriptionData<vehicle_status_s> vehicle_status_sub{ORB_ID(vehicle_status)};
|
||||
};
|
||||
@@ -336,6 +336,6 @@ void sPort_send_flight_mode(int uart)
|
||||
|
||||
void sPort_send_GPS_info(int uart)
|
||||
{
|
||||
const vehicle_gps_position_s &gps = s_port_subscription_data->vehicle_gps_position_sub.get();
|
||||
const sensor_gps_s &gps = s_port_subscription_data->vehicle_gps_position_sub.get();
|
||||
sPort_send_data(uart, FRSKY_ID_TEMP2, gps.satellites_used * 10 + gps.fix_type);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#include <uORB/topics/actuator_motors.h>
|
||||
#include <uORB/topics/home_position.h>
|
||||
#include <uORB/topics/vehicle_air_data.h>
|
||||
#include <uORB/topics/vehicle_gps_position.h>
|
||||
#include <uORB/topics/sensor_gps.h>
|
||||
|
||||
#include <drivers/drv_hrt.h>
|
||||
|
||||
@@ -213,7 +213,7 @@ void
|
||||
build_gps_response(uint8_t *buffer, size_t *size)
|
||||
{
|
||||
/* get a local copy of the battery data */
|
||||
struct vehicle_gps_position_s gps;
|
||||
struct sensor_gps_s gps;
|
||||
memset(&gps, 0, sizeof(gps));
|
||||
orb_copy(ORB_ID(vehicle_gps_position), _gps_sub, &gps);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user