From 30a4166ed67117290f1c0ad4ca114cc94c4e18e4 Mon Sep 17 00:00:00 2001 From: Scobber Date: Thu, 11 Jul 2019 18:07:14 +1000 Subject: [PATCH] Commit try --- main/configuration.h | 1 + main/main.ino | 48 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/main/configuration.h b/main/configuration.h index 31a4f35..8dfec33 100644 --- a/main/configuration.h +++ b/main/configuration.h @@ -94,6 +94,7 @@ void ttn_register(void (*callback)(uint8_t message)); #define GPS_RX_PIN 12 #define GPS_TX_PIN 15 #define GPS_BAUDRATE 9600 +#define USE_GPS 1 // ----------------------------------------------------------------------------- // LoRa SPI diff --git a/main/main.ino b/main/main.ino index 60ba970..13d6581 100644 --- a/main/main.ino +++ b/main/main.ino @@ -25,9 +25,57 @@ along with this program. If not, see . #include #include "dataformats.h" + // Message counter, stored in RTC memory, survives deep sleep RTC_DATA_ATTR uint32_t count = 0; +// ----------------------------------------------------------------------------- +// Submodules +// ----------------------------------------------------------------------------- +#ifdef USE_GPS 1 +#include +uint32_t LatitudeBinary, LongitudeBinary; +uint16_t altitudeGps; +uint8_t hdopGps; +char t[32]; // used to sprintf for Serial output + +TinyGPSPlus _gps; +HardwareSerial _serial_gps(GPS_SERIAL_NUM); + +void gps_time(char * buffer, uint8_t size) { + snprintf(buffer, size, "%02d:%02d:%02d", _gps.time.hour(), _gps.time.minute(), _gps.time.second()); +} + +float gps_latitude() { + return _gps.location.lat(); +} + +float gps_longitude() { + return _gps.location.lng(); +} + +float gps_altitude() { + return _gps.altitude.meters(); +} + +float gps_hdop() { + return _gps.hdop.hdop(); +} + +uint8_t gps_sats() { + return _gps.satellites.value(); +} + +void gps_setup() { + _serial_gps.begin(GPS_BAUDRATE, SERIAL_8N1, GPS_RX_PIN, GPS_TX_PIN); +} + +static void gps_loop() { + while (_serial_gps.available()) { + _gps.encode(_serial_gps.read()); + } +} +#endif // ----------------------------------------------------------------------------- // Application // -----------------------------------------------------------------------------