|
|
|
@ -127,6 +127,7 @@ private:
@@ -127,6 +127,7 @@ private:
|
|
|
|
|
orb_advert_t _report_gps_pos_pub; ///< uORB pub for gps position
|
|
|
|
|
int _gps_orb_instance; ///< uORB multi-topic instance
|
|
|
|
|
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
|
|
|
|
|
float _rate; ///< position update rate
|
|
|
|
|
float _rate_rtcm_injection; ///< RTCM message injection rate
|
|
|
|
@ -168,6 +169,11 @@ private:
@@ -168,6 +169,11 @@ private:
|
|
|
|
|
*/ |
|
|
|
|
void publish(); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Publish the satellite info |
|
|
|
|
*/ |
|
|
|
|
void publishSatelliteInfo(); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This is an abstraction for the poll on serial used. |
|
|
|
|
* |
|
|
|
@ -652,7 +658,7 @@ GPS::task_main()
@@ -652,7 +658,7 @@ GPS::task_main()
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (_p_report_sat_info && (helper_ret & 2)) { |
|
|
|
|
publish(); |
|
|
|
|
publishSatelliteInfo(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* measure update rate every 5 seconds */ |
|
|
|
@ -819,6 +825,18 @@ GPS::publish()
@@ -819,6 +825,18 @@ GPS::publish()
|
|
|
|
|
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
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|