Browse Source

AP_ADSB: fix getting a copy rather than a reference

These have been caught by making constructors private and enforcing
calling a create() method to create objects are supposed to be
statically allocated only.

The Vector3f reference was just nearby and was a change copied from
similar PR from Peter Barker (#6873).
master
Lucas De Marchi 8 years ago committed by Tom Pittenger
parent
commit
cb9c626577
  1. 8
      libraries/AP_ADSB/AP_ADSB.cpp

8
libraries/AP_ADSB/AP_ADSB.cpp

@ -462,8 +462,8 @@ void AP_ADSB::send_adsb_vehicle(const mavlink_channel_t chan) @@ -462,8 +462,8 @@ void AP_ADSB::send_adsb_vehicle(const mavlink_channel_t chan)
void AP_ADSB::send_dynamic_out(const mavlink_channel_t chan)
{
AP_GPS gps = _ahrs.get_gps();
Vector3f gps_velocity = gps.velocity();
const AP_GPS &gps = _ahrs.get_gps();
const Vector3f &gps_velocity = gps.velocity();
int32_t latitude = _my_loc.lat;
int32_t longitude = _my_loc.lng;
@ -506,7 +506,7 @@ void AP_ADSB::send_dynamic_out(const mavlink_channel_t chan) @@ -506,7 +506,7 @@ void AP_ADSB::send_dynamic_out(const mavlink_channel_t chan)
const uint64_t gps_time = gps.time_epoch_usec();
const uint32_t utcTime = gps_time / 1000000ULL;
AP_Baro baro = _ahrs.get_baro();
const AP_Baro &baro = _ahrs.get_baro();
int32_t altPres = INT_MAX;
if (baro.healthy()) {
// Altitude difference between 101325 (Pascals) and current pressure. Result in millimeters
@ -578,7 +578,7 @@ uint32_t AP_ADSB::genICAO(const Location_Class &loc) @@ -578,7 +578,7 @@ uint32_t AP_ADSB::genICAO(const Location_Class &loc)
{
// gps_time is not seconds since UTC midnight, but it is an equivalent random number
// TODO: use UTC time instead of GPS time
AP_GPS gps = _ahrs.get_gps();
const AP_GPS &gps = _ahrs.get_gps();
const uint64_t gps_time = gps.time_epoch_usec();
uint32_t timeSum = 0;

Loading…
Cancel
Save