UBX-RXM-PMREQ soft-off implemented

This commit is contained in:
code8buster
2023-09-05 00:26:42 -04:00
parent fb23e479ac
commit 134fc75b67
3 changed files with 52 additions and 2 deletions

View File

@@ -62,6 +62,8 @@ class GPS : private concurrency::OSThread
/** If !NULL we will use this serial port to construct our GPS */
static HardwareSerial *_serial_gps;
static const uint8_t _message_PMREQ[8];
meshtastic_Position p = meshtastic_Position_init_default;
GPS() : concurrency::OSThread("GPS") {}
@@ -101,6 +103,9 @@ class GPS : private concurrency::OSThread
// Empty the input buffer as quickly as possible
void clearBuffer();
// Create a ublox packet for editing in memory
uint8_t makeUBXPacket(uint8_t class_id, uint8_t msg_id, uint8_t payload_size, const uint8_t *msg);
protected:
/// Do gps chipset specific init, return true for success
virtual bool setupGPS();
@@ -141,6 +146,9 @@ class GPS : private concurrency::OSThread
void setNumSatellites(uint8_t n);
// scratch space for creating ublox packets
uint8_t UBXscratch[250];
private:
/// Prepare the GPS for the cpu entering deep or light sleep, expect to be gone for at least 100s of msecs
/// always returns 0 to indicate okay to sleep
@@ -151,7 +159,7 @@ class GPS : private concurrency::OSThread
int prepareDeepSleep(void *unused);
// Calculate checksum
void UBXChecksum(byte *message, size_t length);
void UBXChecksum(uint8_t *message, size_t length);
/**
* Switch the GPS into a mode where we are actively looking for a lock, or alternatively switch GPS into a low power mode