QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
UBXPlan.h File Reference
#include <array>
#include <chrono>
#include <cstdint>
#include <string_view>
#include <type_traits>
#include <vector>
#include "GPSReceiverConfig.h"
#include "UBX/UBXConfigKeys.h"
#include "UBX/UBXFrame.h"
#include "UBX/UBXMessageSchema.h"
+ Include dependency graph for UBXPlan.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  UBX::ReceiverProfile
 
struct  UBX::Plan::ValsetItem
 
struct  UBX::Plan::ValsetBatch
 
struct  UBX::Plan::UnexpectedOutput
 Messages a protocol 27+ receiver can send unasked and their CFG-MSGOUT keys, which a message ID does not imply. More...
 
struct  UBX::Plan::MessageRate
 CFG-MSG output rate of one message, as a divisor of the measurement rate. More...
 
struct  UBX::Plan::RTCMOutput
 

Namespaces

namespace  UBX
 u-blox receivers over UBX: CFG-VALSET configuration from protocol 27, CFG-MSG and CFG-TMODE3 before it.
 
namespace  UBX::Plan
 

Enumerations

enum class  UBX::Board : uint8_t {
  UBX::unknown = 0 , UBX::u_blox5 = 5 , UBX::u_blox6 = 6 , UBX::u_blox7 = 7 ,
  UBX::u_blox8 = 8 , UBX::u_blox9 = 9 , UBX::u_blox9_F9P_L1L2 = 10 , UBX::u_blox10 = 11 ,
  UBX::u_blox9_F9P_L1L5 = 12 , UBX::u_blox10_L1L5 = 13 , UBX::u_blox_X20 = 14
}
 
enum class  UBX::Plan::NakPolicy : uint8_t { UBX::Plan::Fail , UBX::Plan::Tolerate , UBX::Plan::Warn , UBX::Plan::WriteOnly }
 What a batch that is rejected, unanswered or not written means for configuration. More...
 
enum class  UBX::Plan::RTCMContent : uint8_t { UBX::Plan::StationPosition , UBX::Plan::Observations , UBX::Plan::Optional }
 

Functions

constexpr ReceiverProfile UBX::receiverProfile (Board board)
 
constexpr Board UBX::boardFromHardwareVersion (std::string_view hardwareVersion)
 The generation whose MON-VER hwVersion is hardwareVersion; unknown when none matches.
 
ValsetBatch UBX::Plan::uart1Protocols ()
 Protocol 27+ port setup at the detected baud rate: UBX only on UART1, 8N1.
 
ValsetBatch UBX::Plan::uart1Baudrate (uint32_t baudrate)
 
std::vector< ValsetBatch > UBX::Plan::portsAndNavigation (const ReceiverProfile &profile)
 Protocol 27+ configuration before jamming detection: ports, navigation, odometer and RTK.
 
ValsetBatch UBX::Plan::jammingDetection ()
 Probes CFG-SEC-JAMDET, which F9 HPG 1.50+, F9 L1L5 and X20 have instead of CFG-ITFM.
 
ValsetBatch UBX::Plan::interferenceMonitor ()
 Enables the interference monitor of firmware without CFG-SEC-JAMDET.
 
std::vector< ValsetBatch > UBX::Plan::messageOutput (const ReceiverProfile &profile)
 Protocol 27+ configuration after jamming detection: message output and receiver-specific extras.
 
ValsetBatch UBX::Plan::disableRTCMOutput ()
 Stops RTCM output, including observations a previous session left in the other MSM format.
 
ValsetBatch UBX::Plan::disableTimeMode ()
 
ValsetBatch UBX::Plan::surveyIn (const GPSBaseStationConfig::SurveyIn &survey)
 
ValsetBatch UBX::Plan::fixedBase (const GPSBaseStationConfig::Fixed &fixed)
 
ValsetBatch UBX::Plan::rtcmOutput (bool compactObservations)
 Base output at 1 Hz: station position, observations in the selected MSM format and GLONASS biases.
 
ValsetBatch UBX::Plan::disableMessage (MsgOutKey key)
 Disables unexpected output; the reply is not awaited.
 
std::array< uint8_t, 2 *WIRE_SIZE< CfgPrt > > UBX::Plan::legacyPorts (uint32_t baudrate)
 
std::array< MessageRate, 5 > UBX::Plan::legacyMessageOutput ()
 NAV-PVT, status, satellite and MON-HW (antenna and jamming) rates during the survey.
 
std::array< MessageRate, 10 > UBX::Plan::legacyDisableRTCMOutput ()
 Written without waiting for acknowledgements.
 
std::array< MessageRate, 2 > UBX::Plan::legacyBaseStatus ()
 Survey status and satellite rates for the 1 Hz base; rejections are ignored.
 
std::array< RTCMOutput, 6 > UBX::Plan::legacyRTCMOutput (bool compactObservations)
 
CfgTmode3 UBX::Plan::legacySurveyIn (const GPSBaseStationConfig::SurveyIn &survey)
 
CfgTmode3 UBX::Plan::legacyFixedBase (const GPSBaseStationConfig::Fixed &fixed)
 

Variables

constexpr std::array UBX::RECEIVER_PROFILES
 
constexpr std::chrono::milliseconds UBX::Plan::CONFIG_TIMEOUT {250}
 Acknowledgement timeout of one configuration command.
 
constexpr std::chrono::milliseconds UBX::Plan::LEGACY_REPLY_TIMEOUT {1000}
 The u-blox 8 protocol has CFG commands acknowledged within one second.
 
constexpr std::chrono::milliseconds UBX::Plan::IDENTITY_TIMEOUT {2000}
 Slow factory NMEA output can delay a MON-VER response by over a second.
 
constexpr std::chrono::milliseconds UBX::Plan::PORT_TIMEOUT {2000}
 
constexpr std::chrono::milliseconds UBX::Plan::BAUD_PROBE_DRAIN {20}
 Traffic the baud probe drains before polling MON-VER.
 
constexpr std::chrono::milliseconds UBX::Plan::SURVEY_STOP_TIMEOUT {3000}
 
constexpr std::chrono::milliseconds UBX::Plan::SURVEY_STOP_POLL {100}
 
constexpr std::chrono::microseconds UBX::Plan::DISABLE_MESSAGE_INTERVAL = std::chrono::seconds(1)
 An unwanted message is disabled at most this often; some cannot be disabled.
 
constexpr std::array UBX::Plan::BAUD_RATES {38400u, 57600u, 9600u, 115200u, 230400u, 460800u, 921600u}
 Probing order of the automatic baud detection.
 
constexpr unsigned UBX::Plan::BASE_BAUD = 115200
 The link rate a base is moved to when no rate is selected.
 
constexpr size_t UBX::Plan::VALSET_CAPACITY = 256
 Bounds a CFG-VALSET independently of received message sizes.
 
constexpr uint8_t UBX::Plan::NO_OUTPUT = 0
 
constexpr uint8_t UBX::Plan::STATIONARY_DYNAMIC_MODEL = 2
 Base stations always use the stationary navigation model.
 
constexpr uint8_t UBX::Plan::SURVEY_SATELLITE_RATE = 10
 NAV-SAT every tenth survey epoch.
 
constexpr uint8_t UBX::Plan::BASE_SATELLITE_INFO_RATE = 2
 
constexpr uint8_t UBX::Plan::SURVEY_STATUS_RATE = 5
 
constexpr uint16_t UBX::Plan::BASE_MEASUREMENT_PERIOD_MS = 1000
 RTCM output only needs 1 Hz; the survey keeps the faster navigation rate because it converges faster.
 
constexpr std::array< UnexpectedOutput, 3 > UBX::Plan::UNEXPECTED_OUTPUT
 
constexpr uint16_t UBX::Plan::LEGACY_PORT_UART1 = 1
 
constexpr uint16_t UBX::Plan::LEGACY_PORT_USB = 3
 
constexpr CfgRate UBX::Plan::LEGACY_SURVEY_RATE {.measRate = 200, .navRate = 1, .timeRef = 0}
 5 Hz, UTC-aligned.
 
constexpr CfgRate UBX::Plan::LEGACY_BASE_RATE {.measRate = BASE_MEASUREMENT_PERIOD_MS, .navRate = 1, .timeRef = 0}
 
constexpr CfgNav5 UBX::Plan::LEGACY_NAVIGATION {.mask = 0x0005, .dynModel = STATIONARY_DYNAMIC_MODEL, .fixMode = 2}
 Updates only the dynamic model and the fix mode (3D only).
 
constexpr MessageRate UBX::Plan::LEGACY_SURVEY_STATUS {Msg::NAV_SVIN, SURVEY_STATUS_RATE}