Introduces watch/, a real Pebble watchapp (built via pebble build) that
build / build (push) Successful in 30s

shows the daily tarot/astrology reading on-device: persistence, reading
computation, and UI screens, driven by the existing engine/interpreter
code linked in unchanged where possible.

Required engine-side changes to make that linking work:
- A compact low-precision ephemeris (lowprec_ephemeris.c) replacing the
  vendored ~127KB Astronomy Engine, which doesn't fit the watch's ~64KB
  app budget.
- Hand-rolled sqrt/atan2/sin/cos replacements for that ephemeris and
  astro.c's Ascendant calculation - Pebble's statically-linked libm
  hard-faults on real hardware under this app's -fPIE link for all four.
- narrative.c/guidance.c refactored from FILE*/fprintf onto snprintf-
  based buffers, since Pebble's SDK blocks fprintf at compile time.
This commit is contained in:
ml
2026-07-14 17:10:22 +02:00
parent d9b6e2889b
commit 1a654da3e9
44 changed files with 1920 additions and 182 deletions
+6
View File
@@ -22,6 +22,12 @@ ui.transiting=Transit
ui.natal=natal
ui.orb=Orbis
# --- Nur die Watch-App (watch/src/c/main.c) - wird vor der ersten
# Einrichtung ueber die Konfigurationsseite gezeigt, wenn noch keine
# Geburtsdaten fuer eine Deutung vorliegen ---
ui.setup_required_title=Einrichtung erforderlich
ui.setup_required_body=Öffne die Einstellungen dieser App in der Pebble-App, um deine Geburtsdaten einzugeben, und starte Deck in a Dash danach erneut.
# --- Planeten (astro.c) ---
body.sun=Sonne
body.moon=Mond
+6
View File
@@ -29,6 +29,12 @@ ui.transiting=Transiting
ui.natal=natal
ui.orb=orb
# --- Watch app only (watch/src/c/main.c) - shown before the first
# config-page submission, when there's no birth data yet to compute a
# reading from ---
ui.setup_required_title=Setup Required
ui.setup_required_body=Open this app's settings from the Pebble mobile app to add your birth details, then reopen Deck in a Dash.
# --- Planets/luminaries (astro.c) ---
body.sun=Sun
body.moon=Moon