15 qCDebug(GPSRtkLog) <<
this;
17 (void) qRegisterMetaType<satellite_info_s>(
"satellite_info_s");
18 (void) qRegisterMetaType<sensor_gnss_relative_s>(
"sensor_gnss_relative_s");
19 (void) qRegisterMetaType<sensor_gps_s>(
"sensor_gps_s");
26 qCDebug(GPSRtkLog) <<
this;
29void GPSRtk::_onGPSConnect()
31 _gpsRtkFactGroup->connected()->setRawValue(
true);
34void GPSRtk::_onGPSDisconnect()
36 _gpsRtkFactGroup->connected()->setRawValue(
false);
39void GPSRtk::_onGPSSurveyInStatus(
float duration,
float accuracyMM,
double latitude,
double longitude,
float altitude,
bool valid,
bool active)
41 _gpsRtkFactGroup->currentDuration()->setRawValue(duration);
42 _gpsRtkFactGroup->currentAccuracy()->setRawValue(
static_cast<double>(accuracyMM) / 1000.0);
43 _gpsRtkFactGroup->currentLatitude()->setRawValue(latitude);
44 _gpsRtkFactGroup->currentLongitude()->setRawValue(longitude);
45 _gpsRtkFactGroup->currentAltitude()->setRawValue(altitude);
46 _gpsRtkFactGroup->valid()->setRawValue(valid);
47 _gpsRtkFactGroup->active()->setRawValue(active);
53 RTKSettings* rtkSettings = SettingsManager::instance()->rtkSettings();
55 if (gps_type.contains(QStringLiteral(
"trimble"), Qt::CaseInsensitive)) {
58 qCDebug(GPSRtkLog) <<
"Connecting Trimble device";
60 }
else if (gps_type.contains(QStringLiteral(
"septentrio"), Qt::CaseInsensitive)) {
63 qCDebug(GPSRtkLog) <<
"Connecting Septentrio device";
65 }
else if (gps_type.contains(QStringLiteral(
"femtomes"), Qt::CaseInsensitive)) {
68 qCDebug(GPSRtkLog) <<
"Connecting Femtomes device";
70 }
else if(gps_type.contains(QStringLiteral(
"blox"), Qt::CaseInsensitive)) {
73 qCDebug(GPSRtkLog) <<
"Connecting U-blox device";
77 qCDebug(GPSRtkLog) <<
"Connecting device has U-blox by default";
82 _requestGpsStop =
false;
99 (void) QMetaObject::invokeMethod(_gpsProvider,
"start", Qt::AutoConnection);
107 (void) connect(_gpsProvider, &GPSProvider::finished,
this, &GPSRtk::_onGPSDisconnect);
109 (void) QMetaObject::invokeMethod(
this,
"_onGPSConnect", Qt::AutoConnection);
115 _requestGpsStop =
true;
116 if (!_gpsProvider->wait(kGPSThreadDisconnectTimeout)) {
117 qCWarning(GPSRtkLog) <<
"Failed to wait for GPS thread exit. Consider increasing the timeout";
120 _gpsProvider->deleteLater();
121 _gpsProvider =
nullptr;
125 _rtcmMavlink->deleteLater();
126 _rtcmMavlink =
nullptr;
132 return (_gpsProvider ? _gpsProvider->isRunning() :
false);
137 return _gpsRtkFactGroup;
142 qCDebug(GPSRtkLog) << Q_FUNC_INFO << QStringLiteral(
"%1 satellites").arg(msg.
count);
143 _gpsRtkFactGroup->numSatellites()->setRawValue(msg.
count);
148 qCDebug(GPSRtkLog) << Q_FUNC_INFO;
#define QGC_LOGGING_CATEGORY(name, categoryStr)
Used to group Facts together into an object hierarachy.
void RTCMDataUpdate(const QByteArray &message)
void sensorGpsUpdate(const sensor_gps_s &message)
void satelliteInfoUpdate(const satellite_info_s &message)
void surveyInStatus(float duration, float accuracyMM, double latitude, double longitude, float altitude, bool valid, bool active)
void connectGPS(const QString &device, QStringView gps_type)
FactGroup * gpsRtkFactGroup()
void RTCMDataUpdate(QByteArrayView data)
Fact *fixedBasePositionLongitude READ fixedBasePositionLongitude CONSTANT Fact * fixedBasePositionLongitude()
Fact *fixedBasePositionLatitude READ fixedBasePositionLatitude CONSTANT Fact * fixedBasePositionLatitude()
Fact *surveyInMinObservationDuration READ surveyInMinObservationDuration CONSTANT Fact * surveyInMinObservationDuration()
Fact *useFixedBasePosition READ useFixedBasePosition CONSTANT Fact * useFixedBasePosition()
Fact *baseReceiverManufacturers READ baseReceiverManufacturers CONSTANT Fact * baseReceiverManufacturers()
Fact *fixedBasePositionAltitude READ fixedBasePositionAltitude CONSTANT Fact * fixedBasePositionAltitude()
Fact *fixedBasePositionAccuracy READ fixedBasePositionAccuracy CONSTANT Fact * fixedBasePositionAccuracy()
Fact *surveyInAccuracyLimit READ surveyInAccuracyLimit CONSTANT Fact * surveyInAccuracyLimit()