// SPDX-License-Identifier: Apache-2.0 // Copyright (c) 2012-2024 Scott Penrose and WII5 Buoy contributors // // This file is part of WII5 Buoy firmware. // See LICENSE for full terms. /** * @file wii5_gps.ino * @brief Test sketch: GPS NMEA passthrough. */ #include #include #include #define SerialGPS Serial1 void setup() { // Serial Serial.begin(57600); console.begin(); console.add(&Serial); console.printf(F("WII5: Test GPS")); // GPS wii5Gps.begin(); // wii5Gps.begin(&SerialGPS); // wii5Gps.setMode(WII5GPS_PASSTHROUGH); wii5Gps.start(); // wii5Gps.setMode(WII5GPS_PASSTHROUGH); } void loop() { if (SerialGPS.available()) { char c = SerialGPS.read(); Serial.write(c); } return; console.loop(); wii5Gps.loop(); if (console.available()) { console.printf(F("CONSOLE: Got command %c=%d \r\n"), console.getCommand(), console.getVal() ); switch(console.getCommand()) { case '0': console.printf(F("setMode WII5GPS_OFF\n")); wii5Gps.setMode(WII5GPS_OFF); break; case '1': console.printf(F("setMode WII5GPS_QUIET\n")); wii5Gps.setMode(WII5GPS_QUIET); break; case '2': console.printf(F("setMode WII5GPS_PASSTHROUGH\n")); wii5Gps.setMode(WII5GPS_PASSTHROUGH); break; case '3': console.printf(F("setMode WII5GPS_TIMEONCE\n")); wii5Gps.setMode(WII5GPS_TIMEONCE); break; case '4': console.printf(F("setMode WII5GPS_POSONCE\n")); wii5Gps.setMode(WII5GPS_POSONCE); break; case '5': console.printf(F("setMode WII5GPS_POSACCURATE\n")); wii5Gps.setMode(WII5GPS_POSACCURATE); break; case '6': console.printf(F("setMode WII5GPS_POSREPEAT\n")); wii5Gps.setMode(WII5GPS_POSREPEAT); break; case 'D': // TODO dump; wii5Gps.dump(); break; case 'S': // Status // - Number of bytes received // - Lock status etc break; default: console.printf(F("GPS Help:\r\n")); console.printf(F(" 0 - mode off\r\n")); console.printf(F(" 1 - mode Quiet\r\n")); console.printf(F(" 2 - mode Passthrough\r\n")); console.printf(F(" 3 - mode Time Once\r\n")); console.printf(F(" 4 - mode Position Once\r\n")); console.printf(F(" 5 - mode Position Accurate\r\n")); console.printf(F(" 6 - mode Position Repeat\r\n")); console.printf(F(" D - Dump all data\r\n")); console.printf(F(" S - Show status\r\n")); }; } }