Browse Source

fix gps regression: publish satellite info

sbg
Beat Küng 9 years ago committed by Lorenz Meier
parent
commit
f600b7fb37
  1. 20
      src/drivers/gps/gps.cpp

20
src/drivers/gps/gps.cpp

@ -127,6 +127,7 @@ private:
orb_advert_t _report_gps_pos_pub; ///< uORB pub for gps position orb_advert_t _report_gps_pos_pub; ///< uORB pub for gps position
int _gps_orb_instance; ///< uORB multi-topic instance int _gps_orb_instance; ///< uORB multi-topic instance
struct satellite_info_s *_p_report_sat_info; ///< pointer to uORB topic for satellite info struct satellite_info_s *_p_report_sat_info; ///< pointer to uORB topic for satellite info
int _gps_sat_orb_instance; ///< uORB multi-topic instance for satellite info
orb_advert_t _report_sat_info_pub; ///< uORB pub for satellite info orb_advert_t _report_sat_info_pub; ///< uORB pub for satellite info
float _rate; ///< position update rate float _rate; ///< position update rate
float _rate_rtcm_injection; ///< RTCM message injection rate float _rate_rtcm_injection; ///< RTCM message injection rate
@ -168,6 +169,11 @@ private:
*/ */
void publish(); void publish();
/**
* Publish the satellite info
*/
void publishSatelliteInfo();
/** /**
* This is an abstraction for the poll on serial used. * This is an abstraction for the poll on serial used.
* *
@ -652,7 +658,7 @@ GPS::task_main()
} }
if (_p_report_sat_info && (helper_ret & 2)) { if (_p_report_sat_info && (helper_ret & 2)) {
publish(); publishSatelliteInfo();
} }
/* measure update rate every 5 seconds */ /* measure update rate every 5 seconds */
@ -819,6 +825,18 @@ GPS::publish()
ORB_PRIO_DEFAULT); ORB_PRIO_DEFAULT);
} }
}
void
GPS::publishSatelliteInfo()
{
if (_gps_num == 1) {
orb_publish_auto(ORB_ID(satellite_info), &_report_sat_info_pub, _p_report_sat_info, &_gps_sat_orb_instance,
ORB_PRIO_DEFAULT);
} else {
//we don't publish satellite info for the secondary gps
}
} }
/** /**

Loading…
Cancel
Save