3#include <QtCore/QByteArray>
4#include <QtCore/QLoggingCategory>
5#include <QtCore/QMetaType>
6#include <QtCore/QObject>
7#include <QtCore/QString>
8#include <QtCore/QThread>
10#include <gps_helper.h>
20class GPSBaseStationSupport;
44 GPSProvider(
const QString &device,
GPSType type,
const rtk_data_s &rtkData,
const std::atomic_bool &requestStop, QObject *parent =
nullptr);
47 int callback(GPSCallbackType type,
void *data1,
int data2);
54 void surveyInStatus(
float duration,
float accuracyMM,
double latitude,
double longitude,
float altitude,
bool valid,
bool active);
59 bool _connectSerial();
60 GPSBaseStationSupport *_connectGPS();
61 void _publishSensorGPS();
62 void _publishSatelliteInfo();
63 void _publishSensorGNSSRelative();
65 void _gotRTCMData(const uint8_t *data,
size_t len);
68 static
int _callbackEntry(GPSCallbackType type,
void *data1,
int data2,
void *user);
72 const std::atomic_bool &_requestStop;
74 GPSHelper::GPSConfig _gpsConfig{};
87 static constexpr uint32_t kGPSReceiveTimeout = 1200;
88 static constexpr float kGPSHeadingOffset = 5.f;
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
void RTCMDataUpdate(const QByteArray &message)
void sensorGnssRelativeUpdate(const sensor_gnss_relative_s &message)
int callback(GPSCallbackType type, void *data1, int data2)
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)
Provides functions to access serial ports.
double fixedBaseLongitude
float fixedBaseAltitudeMeters
float fixedBaseAccuracyMeters
BaseModeDefinition::Mode useFixedBaseLocation