Commit Graph
403 Commits
Author SHA1 Message Date
ladyadaandLimor Fried a071fdac9b Validate command replies before accepting a matching prefix
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-16 13:04:08 -04:00
Limor "Ladyada" Fried 6a569968e1 Merge pull request #199 from ladyada-eagleclaw/gps-exact-received-position
Expose exact received positions through the GPS API
2026-09-16 12:55:12 -04:00
ladyadaandLimor Fried 0a7b9caef4 Expose exact received positions through the GPS API
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-16 12:45:09 -04:00
Limor "Ladyada" Fried 0c9b45f58b Merge pull request #198 from ladyada-eagleclaw/gps-gnss-receiver-base
Connect the GNSS receiver base to shared NMEA framing
2026-09-16 12:36:33 -04:00
ladyadaandLimor Fried 1f5936353d Connect the GNSS receiver base to shared NMEA framing
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-16 11:49:16 -04:00
Limor "Ladyada" Fried bf8d03e793 Merge pull request #197 from ladyada-eagleclaw/gps-shared-position-integration
Use shared GNSS position results in the GPS decoder
2026-09-16 11:40:30 -04:00
ladyadaandLimor Fried e11c729ae1 Use shared GNSS position results in the GPS decoder
Keep SD logger CI coverage on Uno and Mega.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-16 11:28:26 -04:00
Limor "Ladyada" Fried 7f6d841977 Merge pull request #196 from ladyada-eagleclaw/gps-shared-position-decoder
Decode exact GNSS positions into independent sentence results
2026-09-16 11:08:59 -04:00
ladyadaandLimor Fried 79e508fda5 Decode exact GNSS positions into independent sentence results
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-16 10:55:57 -04:00
Limor "Ladyada" Fried fe868faa69 Merge pull request #195 from ladyada-eagleclaw/gps-precise-coordinate-output
Preserve RTK precision when formatting GNSS coordinates
2026-09-16 10:41:49 -04:00
ladyadaandLimor Fried 46f0ff40a1 Preserve GNSS coordinate precision when formatting decimal degrees
Format retained coordinate components with integer long division so AVR logging can retain submillimeter detail without a floating-point type override. Add bounded-output and precision regressions.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-16 10:11:28 -04:00
Limor "Ladyada" Fried 6cbdadb512 Merge pull request #194 from ladyada-eagleclaw/gps-test-matrix-coverage
Run GPS regressions in all four build configurations
2026-09-16 10:00:34 -04:00
ladyadaandLimor Fried e1d068c899 Report fresh GNSS fixes independently of GGA quality
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 22:30:00 -04:00
ladyadaandLimor Fried 5da4759bd3 Run GPS regressions in all four build configurations
Cover basic and extended GPS builds with float and double, and include the previously tested Nano and HILBERT reception fixtures.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 22:17:44 -04:00
Limor "Ladyada" Fried 092b468d37 Merge pull request #193 from ladyada-eagleclaw/gps-navigation-validation
Validate navigation fields before updating GPS data
2026-09-15 22:10:59 -04:00
ladyadaandLimor Fried 910ded451a Keep validated navigation parsing within AVR logger flash limits
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 21:57:40 -04:00
ladyadaandLimor Fried 1eab555a50 Validate navigation fields before updating GPS data
Share bounded UTC time, date, and standard navigation validation in Adafruit_GNSS. Reject malformed populated GGA, RMC, GLL, and GSA fields before changing stored values or freshness timestamps, while preserving empty-field behavior and the high-precision coordinate path.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 20:58:12 -04:00
Limor "Ladyada" Fried 7ac4908c7a Merge pull request #192 from ladyada-eagleclaw/gps-rtk-precision-tests
Test submillimeter coordinates and both floating-point modes
2026-09-15 20:52:34 -04:00
ladyadaandLimor Fried 02fb9326be Test submillimeter coordinates and both floating-point modes
Run sketch regressions with consistent float and double definitions across library and test translation units. Verify that exact GNSS components and double GPS results retain position changes smaller than the legacy E7 resolution, and record the precision requirement for future receiver APIs and logging.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 20:40:52 -04:00
Limor "Ladyada" Fried c8f19c01c3 Merge pull request #191 from ladyada-eagleclaw/gps-coordinate-precision
Preserve coordinate precision with shared GNSS decoding
2026-09-15 20:38:03 -04:00
ladyadaandLimor Fried b916372940 Decode GNSS coordinates exactly before converting to floating point
Share bounded coordinate decoding between the GNSS core and GPS parser. Preserve exact signed E7 results, validate coordinate and hemisphere fields together, and retain the precision available in floating-point convenience fields.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 20:30:56 -04:00
Limor "Ladyada" Fried 515f3ee5b7 Merge pull request #190 from ladyada-eagleclaw/gps-review-01-validation
Reuse shared NMEA validation in GPS sentence checks
2026-09-15 20:29:32 -04:00
ladyadaandLimor Fried 8512459c27 Bring shared validation onto merged receive refactor
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 20:23:31 -04:00
Limor "Ladyada" Fried 990dd27ae3 Merge pull request #189 from ladyada-eagleclaw/gps-use-nmea-framer
Use the shared NMEA framer for GPS reception
2026-09-15 20:22:09 -04:00
ladyadaandLimor Fried e25192cf17 Reuse NMEA validation in GPS sentence checks
Use the shared validator before source and sentence recognition, reject NULL input safely, and require an exact sentence name instead of a recognized prefix. Cover recognition diagnostics, malformed payloads, checksum trailers, and zero-field messages.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 19:59:24 -04:00
ladyadaandLimor Fried 0d2f5b430e Fix receive member comment alignment
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 19:57:07 -04:00
ladyadaandLimor Fried e1996d8b49 Reset GPS receive state without changing buffer roles
Clear the embedded framer during common_init() and initialize lastline only once so repeated initialization preserves the actual completed buffer. Cover initial, odd, and even buffer swaps, discarded partial input, cleared timestamps, and resumed reception.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 19:00:09 -04:00
Limor "Ladyada" Fried b452647a5a Merge pull request #188 from ladyada-eagleclaw/nmea-byte-framing
Add bounded NMEA byte framing
2026-09-15 18:23:30 -04:00
ladyadaandLimor Fried ee7522e7b5 Use the shared NMEA framer for GPS reception
Preserve complete raw lines for the existing receive API, discard oversized input, and keep sentence timestamps independent per receiver. Add receive-path regressions for recovery, command replies, pause/resume, and two receivers.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 17:26:39 -04:00
ladyadaandLimor Fried f3d2b4f0b3 Keep Doxygen validation as a local pre-commit check
Remove the custom checker and extra CI step; keep the missing return documentation fix.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 17:20:47 -04:00
ladyadaandLimor Fried fd0fd87951 Check documentation with the CI Doxygen version
Document the deleted assignment return and add a local check using the
same Doxygen 1.8.13 binary, configuration, and warning policy as CI.
Run it before regression tests to expose documentation failures early.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 17:01:10 -04:00
ladyadaandLimor Fried 776f44942e Document deleted NMEA copy operations for CI
Name and document the disabled copy parameters so the CI Doxygen check can validate both declarations.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 16:37:14 -04:00
Limor "Ladyada" Fried dfeafd98ab Merge pull request #187 from ladyada-eagleclaw/run-all-regression-tests
Run all regression tests in CI
2026-09-15 15:53:11 -04:00
Limor "Ladyada" Fried faedf19cb8 Merge pull request #186 from ladyada-eagleclaw/main
Add exact decimals and NMEA command construction
2026-09-15 15:49:30 -04:00
ladyadaandLimor Fried 092677dfee Add bounded NMEA byte framing
Assemble lines in caller-owned buffers with overflow recovery, stable views of the last complete line, and independent per-receiver timestamps. Add an automatically discovered host regression for boundaries and interleaved receivers.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:49:13 -04:00
ladyadaandLimor Fried fdaa8279b8 Run every regression test in CI
Discover the C++ tests and Arduino regression sketches automatically. Run the sketches against the actual library with host serial output and timing, including marine extensions, and propagate failures and timeouts to CI.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:41:15 -04:00
ladyadaandLimor Fried 5ffa2dfd34 Run NMEA host regressions in CI
Add an independent Ubuntu job for all three hardware-independent NMEA tests, with fatal address and undefined-behavior sanitizer checks.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:34:09 -04:00
ladyadaandLimor Fried 90c20730f5 Add exact decimals and NMEA command construction
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:28:35 -04:00
Limor "Ladyada" Fried afabd2d182 Merge pull request #185 from ladyada-eagleclaw/main
Add bounded NMEA field iteration
2026-09-15 15:20:34 -04:00
ladyadaandLimor Fried f15627e39c Clarify how to mark a NMEA field cursor exhausted
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 15:10:40 -04:00
ladyadaandLimor Fried 01aa7a655d Add bounded NMEA field iteration
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 14:27:29 -04:00
Eagle Claw 74cf488d40 Merge pull request #184 from ladyada-eagleclaw/main
Add bounded NMEA sentence validation
2026-09-15 14:20:49 -04:00
ladyadaandLimor Fried 4ac934719e Add bounded NMEA sentence validation
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 14:10:17 -04:00
ladyadaandLimor Fried e2b86fdf73 Propose the reusable NMEA core API
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 14:01:30 -04:00
Eagle Claw de4ebc0814 Merge pull request #183 from ladyada-eagleclaw/main
Bump version to 1.8.0
1.8.0
2026-09-15 13:45:54 -04:00
ladyadaandLimor Fried a0921cadee Bump version to 1.8.0
Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 13:44:15 -04:00
Limor "Ladyada" Fried 91b1a31e3e Merge pull request #182 from ladyada-eagleclaw/fix-copy-warnings-144
Fix length-derived string-copy warnings and field termination
2026-09-15 13:34:04 -04:00
Limor "Ladyada" Fried 8db412939f Merge pull request #181 from ladyada-eagleclaw/fix-marine-sources-159
Accept additional marine NMEA source identifiers
2026-09-15 13:33:28 -04:00
Limor "Ladyada" Fried c413dd495e Merge pull request #180 from ladyada-eagleclaw/main
Use Adafruit SdFat for shield logging
2026-09-15 13:33:12 -04:00
ladyadaandLimor Fried 9ee8f63f26 Use explicit byte copies for NMEA string fields
Replace length-derived strncpy calls with memcpy and explicit termination. Ensure parseStr also terminates fields that end without a delimiter, and extend the bounds regression to cover truncation, empty fields, and one-byte destinations.

Co-authored-by: Limor Fried <ladyada@users.noreply.github.com>
2026-09-15 13:06:12 -04:00