GPS implementation (#216)

Implemented basic GPS support:
- GPS HAL
- GPS Service
- GPS Settings app
This commit is contained in:
Ken Van Hoeylandt
2025-02-11 23:46:52 +01:00
committed by GitHub
parent 2345ba6d13
commit 14e459e50f
36 changed files with 2596 additions and 30 deletions
@@ -0,0 +1,22 @@
#pragma once
#include "Tactility/hal/gps/GpsDevice.h"
namespace tt::service::gps {
/** Register a hardware device to the GPS service. */
void addGpsDevice(const std::shared_ptr<hal::gps::GpsDevice>& device);
/** Deregister a hardware device to the GPS service. */
void removeGpsDevice(const std::shared_ptr<hal::gps::GpsDevice>& device);
/** @return true when GPS is set to receive updates from at least 1 device */
bool startReceiving();
/** Turn GPS receiving off */
void stopReceiving();
/** @return true when GPS receiver is on and 1 or more devices are active */
bool isReceiving();
}
@@ -0,0 +1,10 @@
#pragma once
#include <minmea.h>
namespace tt::hal::gps {
/** @return true when the input float is valid (contains non-zero values) */
inline bool isValid(const minmea_float& inFloat) { return inFloat.value != 0 && inFloat.scale != 0; }
}