From 328c900d72e6a1a1b232577c7ac7c6eb43d95e32 Mon Sep 17 00:00:00 2001 From: csrutil Date: Sun, 5 Oct 2025 13:00:05 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20satellite=20count=20t?= =?UTF-8?q?racking=20to=20GPS=20sensor=20manager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/helpers/SensorManager.h | 3 ++- src/helpers/sensors/EnvironmentSensorManager.cpp | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/helpers/SensorManager.h b/src/helpers/SensorManager.h index 1ace62202..ce63e9616 100644 --- a/src/helpers/SensorManager.h +++ b/src/helpers/SensorManager.h @@ -13,8 +13,9 @@ class SensorManager { public: double node_lat, node_lon; // modify these, if you want to affect Advert location double node_altitude; // altitude in meters + long satellites_count; // number of satellites - SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0; } + SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0; satellites_count = 0; } virtual bool begin() { return false; } virtual bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { return false; } virtual void loop() { } diff --git a/src/helpers/sensors/EnvironmentSensorManager.cpp b/src/helpers/sensors/EnvironmentSensorManager.cpp index 99605ff3a..22734ff01 100644 --- a/src/helpers/sensors/EnvironmentSensorManager.cpp +++ b/src/helpers/sensors/EnvironmentSensorManager.cpp @@ -581,6 +581,7 @@ void EnvironmentSensorManager::loop() { node_lon = ((double)ublox_GNSS.getLongitude())/10000000.; MESH_DEBUG_PRINTLN("lat %f lon %f", node_lat, node_lon); node_altitude = ((double)ublox_GNSS.getAltitude()) / 1000.0; + satellites_count = ublox_GNSS.getSIV(); MESH_DEBUG_PRINTLN("lat %f lon %f alt %f", node_lat, node_lon, node_altitude); } else if (serialGPSFlag && _location->isValid()) { @@ -588,6 +589,7 @@ void EnvironmentSensorManager::loop() { node_lon = ((double)_location->getLongitude())/1000000.; MESH_DEBUG_PRINTLN("lat %f lon %f", node_lat, node_lon); node_altitude = ((double)_location->getAltitude()) / 1000.0; + satellites_count = _location->satellitesCount(); MESH_DEBUG_PRINTLN("lat %f lon %f alt %f", node_lat, node_lon, node_altitude); } #else @@ -596,6 +598,7 @@ void EnvironmentSensorManager::loop() { node_lon = ((double)_location->getLongitude())/1000000.; MESH_DEBUG_PRINTLN("lat %f lon %f", node_lat, node_lon); node_altitude = ((double)_location->getAltitude()) / 1000.0; + satellites_count = _location->satellitesCount(); MESH_DEBUG_PRINTLN("lat %f lon %f alt %f", node_lat, node_lon, node_altitude); } #endif