From a969e514be6da723c4021544c445c620d0dccd0c Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Mon, 23 Mar 2026 16:50:00 +0100 Subject: [PATCH] Disabled DEEP_DEBUG mode --- src/flags.h | 2 +- src/modules/gps/gps.h | 39 ++++++++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/flags.h b/src/flags.h index 4facbcf..e69a95f 100644 --- a/src/flags.h +++ b/src/flags.h @@ -2,4 +2,4 @@ #define WARN #define ERROR #define DEBUG -#define DEEP_DEBUG \ No newline at end of file +// #define DEEP_DEBUG \ No newline at end of file diff --git a/src/modules/gps/gps.h b/src/modules/gps/gps.h index b3b2e2d..5c22656 100644 --- a/src/modules/gps/gps.h +++ b/src/modules/gps/gps.h @@ -1,16 +1,16 @@ #pragma once -#define MOD "modules/gps/gps.h" +#include "custom_types.h" #include "TinyGPSPlus.h" #include "flags.h" #include "modules/logger/system_logger.h" +#define MOD "modules/gps/gps.h" + class gps { private: TinyGPSPlus *_gps; HardwareSerial *_data_stream; system_logger *_logger; - bool _lock_valid = false; - unsigned long _last_lock = 0; public: gps(HardwareSerial *data_stream); @@ -18,6 +18,8 @@ public: ~gps(); int parse_task(unsigned long timeout_ms = 500); int init(); + gps_data get_data(); + }; gps::gps(HardwareSerial *data_stream) @@ -55,10 +57,7 @@ int gps::parse_task(unsigned long timeout_ms) { } #endif while (_data_stream->available() > 0) { - if (_gps->encode(_data_stream->read())) { - _lock_valid = true; - _last_lock = millis(); - } + _gps->encode(_data_stream->read()); if (millis() > timeout) { #ifdef DEEP_DEBUG if (_logger != nullptr) { @@ -70,4 +69,30 @@ int gps::parse_task(unsigned long timeout_ms) { } return 0; } + +gps_data gps::get_data() { + gps_data output; + + output.altitude.age = _gps->altitude.age(); + output.altitude.valid = _gps->altitude.isValid(); + output.altitude.value = _gps->altitude.meters(); + + output.lat.age = _gps->location.age(); + output.lat.valid = _gps->location.isValid(); + output.lat.value = _gps->location.lat(); + + output.lng.age = _gps->location.age(); + output.lng.valid = _gps->location.isValid(); + output.lng.value = _gps->location.lng(); + + output.speed.age = _gps->speed.age(); + output.speed.valid = _gps->speed.isValid(); + output.speed.value = _gps->speed.kmph(); + + output.course.age = _gps->course.age(); + output.course.valid = _gps->course.isValid(); + output.course.value = _gps->course.deg(); + + return output; +} #undef MOD \ No newline at end of file