Files
mayhem-firmware/firmware/application
Mo a88ba6d9a8 GeoPos: pan continuously across 0° lat/lon (#3317) (#3323)
* GeoPos: pan continuously across 0 deg lat/lon (#3317)

The DMS coordinate fields store an unsigned magnitude with the sign in a
separate hemisphere field (#3283). That made (-1, 0) representable but
left interactive panning unable to cross 0: at magnitude zero the minute/
degree carry clamps instead of flipping the hemisphere, so a 1-degree band
along the equator and the Greenwich meridian is skipped by the wheel.

Route each DMS field's encoder through a signed arcsecond model: a turn
moves the coordinate along the number line, and the hemisphere flip plus
magnitude reflection fall out of one set of fields being rewritten. E.g.
0 deg 0' 42" E minus one minute now gives 0 deg 0' 18" W as expected.

The old per-field on_wrap carry handlers are removed; the fields no longer
apply the turn locally.

* Correct latitude adjustment reporting logic

Fix adjustment logic to only report position if latitude changes.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* GeoPos: apply the clamp-report guard to longitude too

The latitude fix (Copilot review) left adjust_lon() reporting a pan even
when set_lon_arcseconds() clamped at +-180 deg and changed nothing. Guard
it the same way: report only when the signed arcseconds actually changed.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-09-19 18:00:47 +02:00
..
2026-01-08 10:34:05 +01:00
2026-08-21 19:56:54 +02:00
2026-08-08 21:47:54 +02:00
2026-07-10 21:37:41 +02:00
2026-06-19 07:48:55 +02:00
2025-12-14 11:26:21 +01:00
2026-06-15 19:28:47 +02:00
2026-06-15 19:28:47 +02:00
2026-02-24 11:23:41 +01:00
2026-05-09 12:23:43 +02:00
2025-12-14 11:26:21 +01:00
2024-11-22 09:54:34 +01:00
2026-05-10 00:08:05 +02:00
2025-04-11 10:46:04 +00:00
2026-06-12 22:15:44 +02:00
2024-11-08 11:46:27 +01:00
2024-11-08 11:46:27 +01:00
2026-02-24 11:23:41 +01:00
2026-01-30 17:18:13 +01:00
2026-02-12 12:41:12 +01:00
2026-01-16 09:57:45 +01:00
2026-01-16 09:57:45 +01:00
2026-06-19 07:48:55 +02:00
2024-11-19 17:16:37 +01:00
2024-11-19 17:16:37 +01:00
2026-07-10 21:37:41 +02:00
2026-02-24 11:23:41 +01:00
2026-07-02 10:05:34 +02:00
2025-11-26 19:13:21 +01:00
2026-04-30 15:00:19 +02:00
2026-02-24 11:23:41 +01:00
2025-09-01 11:50:46 +02:00
2026-02-24 11:23:41 +01:00
2024-11-22 09:54:34 +01:00
2024-11-22 09:54:34 +01:00
2026-06-19 07:48:55 +02:00
2026-08-21 19:56:54 +02:00
2026-04-30 15:00:19 +02:00
2026-04-30 15:00:19 +02:00
2026-04-30 15:00:19 +02:00
2026-02-24 11:23:41 +01:00
2026-08-21 19:56:54 +02:00
2024-11-08 11:46:27 +01:00
2026-05-30 01:49:49 +02:00
2026-05-30 01:49:49 +02:00
2026-05-30 01:49:49 +02:00