combine sensor_gps + vehicle_gps_position msgs (keeping separate topics)

This commit is contained in:
Daniel Agar
2022-07-07 10:24:11 -04:00
parent 32ae00fd44
commit 15223009d2
29 changed files with 77 additions and 142 deletions
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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>
+2 -2
View File
@@ -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);
}
+2 -2
View File
@@ -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);