diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 1f875da..5747241 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -8,11 +8,13 @@ "intelliSenseMode": "windows-msvc-x64", "includePath": [ "${workspaceFolder}/**", + "${workspaceFolder}/Griduino/**" "C:/Users/barry/Documents/Arduino/libraries/Adafruit_GFX_library", "C:/Users/barry/Documents/Arduino/libraries/Adafruit_GPS_library/**", "C:/Users/barry/Documents/Arduino/libraries/Adafruit_ILI9341", "C:/Users/barry/Documents/Arduino/libraries/Adafruit_NeoPixel", "C:/Users/barry/Documents/Arduino/libraries/DS1804/src", + "C:/Users/barry/Documents/Arduino/libraries/elapsedMillis", "C:/Users/barry/Documents/Arduino/libraries/Time" ], "forcedInclude": [], @@ -49,14 +51,17 @@ "C:\\Users\\barry\\AppData\\Local\\Arduino15\\packages\\adafruit\\tools\\CMSIS-Atmel\\1.2.2\\CMSIS\\Device\\ATMEL\\", "C:\\Users\\barry\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.10\\cores\\arduino", "C:\\Users\\barry\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.10\\variants\\feather_m4", - "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_ILI9341", - "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library", - "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_BusIO", "C:\\Users\\barry\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.10\\libraries\\Wire", "C:\\Users\\barry\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.10\\libraries\\SPI", "C:\\Users\\barry\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\samd\\1.7.10\\libraries\\Adafruit_ZeroDMA", - "C:\\Users\\barry\\Documents\\Arduino\\libraries\\elapsedMillis", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_BusIO", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_ILI9341", "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Adafruit_MCP4725", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\Audio_QSPI", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\DS1804", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\elapsedMillis", + "C:\\Users\\barry\\Documents\\Arduino\\libraries\\SdFat_-_Adafruit_Fork", "c:\\users\\barry\\appdata\\local\\arduino15\\packages\\adafruit\\tools\\arm-none-eabi-gcc\\9-2019q4\\arm-none-eabi\\include\\c++\\9.2.1", "c:\\users\\barry\\appdata\\local\\arduino15\\packages\\adafruit\\tools\\arm-none-eabi-gcc\\9-2019q4\\arm-none-eabi\\include\\c++\\9.2.1\\arm-none-eabi", "c:\\users\\barry\\appdata\\local\\arduino15\\packages\\adafruit\\tools\\arm-none-eabi-gcc\\9-2019q4\\arm-none-eabi\\include\\c++\\9.2.1\\backward", @@ -72,7 +77,7 @@ "defines": [ "__SKETCH_NAME__=\"\"\"DAC_rp2040_sine_wave_with_TPL0401_volume_control.ino\"\"\"", "F_CPU=120000000L", - "ARDUINO=10819", + "ARDUINO=10607", "ARDUINO_FEATHER_M4", "ARDUINO_ARCH_SAMD", "ARDUINO_SAMD_ADAFRUIT", diff --git a/.vscode/settings.json b/.vscode/settings.json index f92bf89..2405a7b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,14 @@ "cSpell.words": [ "quectel" ], - "cmake.configureOnOpen": true + "cmake.configureOnOpen": true, + "files.associations": { + "initializer_list": "cpp", + "list": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "xhash": "cpp", + "xstring": "cpp", + "xutility": "cpp" + } } \ No newline at end of file diff --git a/Griduino.ino b/Griduino.ino index 40dc6bf..f23143d 100644 --- a/Griduino.ino +++ b/Griduino.ino @@ -773,13 +773,11 @@ void setup() { pinMode(RED_LED, OUTPUT); // diagnostics RED LED // ----- restore GPS driving track breadcrumb trail - logger.fencepost("Griduino.ino restore",__LINE__); // debug trail.restoreGPSBreadcrumbTrail(); // this takes noticeable time (~0.2 sec) model->restore(); // model->gHaveGPSfix = false; // assume no satellite signal yet model->gSatellites = 0; trail.rememberPUP(); // log a "power up" event - logger.fencepost("Griduino.ino save after restore",__LINE__); // debug trail.saveGPSBreadcrumbTrail(); // ensure its saved for posterity // ----- restore barometric pressure history @@ -968,6 +966,8 @@ void loop() { logger.fencepost("Griduino.ino new grid4",__LINE__); // debug trail.saveGPSBreadcrumbTrail(); + model->save(); // tell the model to save itself + } else if (model->enteredNewGrid6()) { if (!model->compare4digits) { announceGrid(newGrid6, 6); // announce with Morse code or speech, according to user's config @@ -978,6 +978,9 @@ void loop() { logger.fencepost("Griduino.ino new grid6",__LINE__); // debug trail.saveGPSBreadcrumbTrail(); // because one user's home was barely in the next grid6 // and we want to show his grid6 at next power up + // ALSO when entering a 6-digit grid: tell the model to save itself! + // It's the _model_ that puts up the starting location at next power-up + model->save(); } // if we drove far enough, add this to the breadcrumb trail diff --git a/downloads/TouchScopeAdafruit.uf2 b/downloads/TouchScopeAdafruit.uf2 new file mode 100644 index 0000000..4f11ff6 Binary files /dev/null and b/downloads/TouchScopeAdafruit.uf2 differ diff --git a/downloads/TouchScopeBarry.uf2 b/downloads/TouchScopeBarry.uf2 new file mode 100644 index 0000000..98a053c Binary files /dev/null and b/downloads/TouchScopeBarry.uf2 differ diff --git a/examples/AutoGridCL/AutoGridCL.py b/examples/AutoGridCL/AutoGridCL.py index 505a30d..3574467 100644 --- a/examples/AutoGridCL/AutoGridCL.py +++ b/examples/AutoGridCL/AutoGridCL.py @@ -6,7 +6,7 @@ # ---------- Start: manual edit --------------------------------------- # Windows communications port for Griduino or GPS hardware -GPS_PORT = "COM53" +GPS_PORT = "COM8" GPS_RATE = 115200 # WSJT-X UDP multicast settings @@ -150,7 +150,7 @@ def GPGGA_to_grid(cls, GPGGAText): # --------------------------------------------------------------------- import struct -import datetime +from datetime import datetime, timedelta class PacketUtil: @classmethod @@ -379,7 +379,7 @@ def __init__(self, addr_port, magic, schema, pkt_type, id, pkt): self.wsjtx_id = ps.QString() self.new_decode = ps.QInt8() self.millis_since_midnight = ps.QInt32() - self.time = PacketUtil.midnight_utc() + datetime.timedelta(milliseconds=self.millis_since_midnight) + self.time = PacketUtil.midnight_utc() + timedelta(milliseconds=self.millis_since_midnight) self.snr = ps.QInt32() self.delta_t = ps.QFloat() self.delta_f = ps.QInt32() diff --git a/makeScopeUF2.bat b/makeScopeUF2.bat new file mode 100644 index 0000000..711fc6d --- /dev/null +++ b/makeScopeUF2.bat @@ -0,0 +1,11 @@ +%echo off +echo Batch job to prepare TFT_Touch_Scope pre-compiled binary UF2 file +echo Usage: makeUF2 release +echo Example: makeUF2 Barry +echo . + +cd %USERPROFILE% +cd Documents\Arduino\Griduino +py uf2conv.py -c -b 0x4000 -o downloads/Scope%1.uf2 build/adafruit.samd.adafruit_feather_m4/Scope.ino.bin + +echo Done. \ No newline at end of file