baldav/frontend
4aiman f704498d11 Workout mode: HR-only recording (зарядка) without GPS
New 'Зарядка' activity type records a session with no GPS - no location
service, no watchPosition, no track points - just the heart-rate poll and a
timer, for indoor exercise. kcal comes from HR (Keytel gross minus BMR, net
like the rest of the app) and counts in the daily balance.

- gps.js: GPS.hrKcalNet; startRecording/stopRecording 'workout' branches;
  the HR poll appends [relSec,bpm] samples.
- db.js: gps_sessions.hr_samples column + setSessionHrSamples.
- main.js: 'Зарядка (пульс)' option; renderWorkoutInline (map-less live
  screen: big HR, timer, kcal, connect-sensor button); renderWorkoutDetail
  (HR chart by zones, load, avg/max).
- tools/hr_log.py: background HR logger (standard 0x180D, no pairing).

Sensor read from the desktop confirmed on a Coospo H808S (F7:72:74:A4:FB:07,
~1 Hz) without pairing.
2026-10-17 00:54:21 +03:00
..
css Workout mode: HR-only recording (зарядка) without GPS 2026-10-17 00:54:21 +03:00
data POI overlay on maps: circular contrasting icons + category filter (offline) 2026-09-09 16:51:58 +03:00
img Compass map rotation, landscape layout, GPS placeholder 2026-06-25 16:54:45 +03:00
js Workout mode: HR-only recording (зарядка) without GPS 2026-10-17 00:54:21 +03:00
lib ЧЗ scanner: switch decoder to zxing-wasm (ZXing-C++) for reliable DataMatrix 2026-08-27 09:42:05 +03:00
index.html POI overlay on maps: circular contrasting icons + category filter (offline) 2026-09-09 16:51:58 +03:00