|
| QByteArray | writeBase (const GPSBaseStationConfig::Mode &mode, const GPSProtocolMath::Ecef &position, bool distanceField) |
| |
| GPSCommandSequence::Command | command (QByteArrayView body, GPSTextMatcher reply, std::chrono::milliseconds timeout=COMMAND_TIMEOUT) |
| | body labelled by its text, framed as a sentence, and completed by reply within timeout.
|
| |
| GPSTextMatcher | acknowledgement (QByteArrayView body) |
| | Completes the setting body with its "<name>,OK" acknowledgement.
|
| |
| GPSCommandSequence | messageRates (std::span< const MessageRate > rates) |
| | PQTMCFGMSGRATE,W for each of rates, each followed by its PQTMCFGMSGRATE,R readback.
|
| |
|
| constexpr std::chrono::milliseconds | COMMAND_TIMEOUT {1000} |
| | Per attempt, unless a command gives its own.
|
| |
| constexpr std::chrono::milliseconds | CONFIGURATION_TIMEOUT {45000} |
| | For the whole configuration after validation.
|
| |
| constexpr std::array | BAUD_RATES {460800u, 115200u, 230400u, 921600u, 57600u, 9600u} |
| | Rates the identity query probes, in order.
|
| |
| constexpr std::string_view | IDENTIFY = "PQTMVERNO" |
| |
| constexpr std::string_view | QUALIFIED_FIRMWARE = "LG290P03" |
| |
| constexpr std::string_view | READ_ROLE = "PQTMCFGRCVRMODE,R" |
| | Receiver role: "PQTMCFGRCVRMODE,OK,<role>", where 2 is the base station.
|
| |
| constexpr unsigned | BASE_ROLE = 2 |
| |
| constexpr std::string_view | WRITE_BASE_ROLE = "PQTMCFGRCVRMODE,W,2" |
| |
| constexpr std::string_view | READ_FIX_RATE = "PQTMCFGFIXRATE,R" |
| | Base positioning runs at 1 Hz: "PQTMCFGFIXRATE,OK,1000".
|
| |
| constexpr unsigned | FIX_INTERVAL_MS = 1000 |
| |
| constexpr std::string_view | READ_BASE = "PQTMCFGSVIN,R" |
| |
| constexpr std::chrono::hours | MAXIMUM_SURVEY_DURATION {24} |
| |
| constexpr double | MAXIMUM_SURVEY_ACCURACY_METERS = 1000 |
| |
| constexpr std::string_view | RESTART_SURVEY = "PQTMCFGSVIN,W" |
| | Re-runs a survey with exactly the fields READ_BASE reported.
|
| |
| constexpr std::string_view | FIXED_BASE_LABEL = "PQTMCFGSVIN,W (fixed position)" |
| | Labels for the base writes whose bodies carry ECEF coordinates.
|
| |
| constexpr std::string_view | RESTART_SURVEY_LABEL = "PQTMCFGSVIN,W (survey restart)" |
| |
| constexpr std::string_view | SAVE = "PQTMSAVEPAR" |
| | Saves the current settings to flash.
|
| |
| constexpr std::chrono::milliseconds | SAVE_TIMEOUT {5000} |
| |
| constexpr std::string_view | RESTART = "PQTMSRR" |
| |
| constexpr std::chrono::milliseconds | RESTART_TIMEOUT {8000} |
| |
| constexpr std::chrono::milliseconds | RESTART_POLL {200} |
| |
| constexpr std::chrono::milliseconds | RESTART_IDENTIFY_TIMEOUT {700} |
| |
| constexpr std::array | BASE_OUTPUT |
| | Base output: survey-in status, RTCM3 station coordinates and MSM observations.
|
| |
| constexpr std::array | NMEA_OUTPUT |
| | NMEA output: position, position accuracy, satellites used and satellites in view, every second.
|
| |
LG290P(03) base-station configuration, from Quectel's LG290P(03)&LGx80P(03) GNSS Protocol Specification V1.1 (§§2.3.9, 2.3.15, 2.3.22–25, 2.3.28) and Base Station Mode Application Note V1.1 §3.2. Commands are PQTM sentence bodies, sent as "$<body>*hh\r\n"; the receiver answers "<name>,OK[,<values>]" or "<name>,ERROR,<code>".
Role and base settings take effect only once saved with SAVE and restarted with RESTART, so configuration reads them back after a restart before trusting them. It changes and saves them only with consent to persistent changes; with consent it first restarts, so it works from the saved settings rather than another client's unsaved ones. The note permits re-running an unchanged survey (RESTART_SURVEY) and restarting without saving.
| constexpr std::string_view Quectel::Plan::READ_BASE = "PQTMCFGSVIN,R" |
|
inlineconstexpr |
Base mode: "PQTMCFGSVIN,OK,<mode>,<observations>,<accuracy>,<x>,<y>,<z>[,<distance>]", with mode 1 survey-in and 2 fixed ECEF coordinates. Survey-in counts accepted 1 Hz fixes; its accuracy threshold filters each 3D fix.
Definition at line 48 of file QuectelPlan.h.
| constexpr std::string_view Quectel::Plan::RESTART = "PQTMSRR" |
|
inlineconstexpr |
Restarts without an acknowledgement. The identity is queried every RESTART_POLL, for up to RESTART_IDENTIFY_TIMEOUT, until it answers after the boot banner "PQTMVER,1,MODULE,<firmware>,...". Then the role is read back. All of it within RESTART_TIMEOUT.
Definition at line 64 of file QuectelPlan.h.