baldav/docs/session-logs
4aiman 9251c1dd90 ble: barometer on its own connection - simultaneous HR+baro, auto-connect, UI
Separate BleBaroService so the HR strap and the barometer each hold their own GATT link and
work at the same time (one adapter, several LE connections). Verified on device against a PC
BlueZ emulator of the sensor: BleHR and BleBaro deliver in parallel, no cross-talk.

- BleBaroService: dedicated baro connection (scan-before-connect + direct-connect fallback,
  ESS subscribe, writes ble_baro_data.json). MainActivity routes baro connects to it and
  auto-connects both HR (ble_device.json) and baro (baro_device.json) at start.
- Rust: ble_baro_disconnect, ble_save_baro_device.
- Settings: a 'Датчики (BLE)' section - heart-rate and barometer as separate rows with their
  own slots, bind/connect/unbind, and a live pressure/temperature/altitude readout.
- Tracking: altitude_baro_m stored per point, preferred in elevation stats (null without baro).
- Record screen: 'Высота' from the barometer (1 Hz, dot marker), temperature from the sensor.
- Fixes: direct-connect on scan timeout; Locale.US JSON (RU decimal comma broke the parse);
  parsing routed by characteristic (baro no longer written into the pulse); VR/HR stop returns
  to the tracks list instead of into details.
- tools/baro-sensor/emulate_baro.py: PC BlueZ peripheral that emulates the sensor for testing.

Emulator-verified only; real board still pending.
2026-10-30 22:46:26 +03:00
..
2026-09-07_brouter-findings.md Scrub location/identity: home city name and external mirror IP → placeholders 2026-09-10 00:55:45 +03:00
2026-09-07_gps-model-findings-impl.md Wind: "headwind in the face" label button on the recording screen 2026-09-07 17:10:16 +03:00
2026-09-07_manual-pauses-altitude-glitches.md GPS stats: exclude manual pauses; reject unrealistic altitude steps 2026-09-07 13:53:40 +03:00
2026-09-07_rec-statusbar-backdrop.md rec screen: status-bar backdrop so the system bar stays visible over the map 2026-09-07 17:15:19 +03:00
2026-09-10_brouter-ux-gapfill-planner.md gap-fill: reload detail via reopenDetail (in-place), not a stacked screen 2026-09-10 15:51:34 +03:00
2026-09-11_route-editor-gapfill-fixes.md routes: return a reliable id from addRoute (re-read, not lastInsertId) 2026-09-11 01:25:28 +03:00
2026-09-12_nogo-reroute.md Reroute: rejoin the active route past a blockage from the current position 2026-09-12 23:05:58 +03:00
2026-09-14_ridden-roads-walk.md Track detail: fold the segment list into an accordion so action buttons stay reachable 2026-09-14 13:27:29 +03:00
2026-09-14_share-image.md Share image Stage 2: native save/share + settings background picker 2026-09-14 10:38:29 +03:00
2026-09-17_repeat-intervals.md Repeat analysis: detect a segment ridden twice (minPasses 3 -> 2); count no longer blocks 2-rep sessions 2026-09-21 11:27:24 +03:00
2026-09-18_merge-rides.md Merge rides: long-press to multi-select tracks and combine them into one (reversible via orig_session_id) 2026-09-18 00:08:25 +03:00
2026-09-21_db-backup.md DB restore: restart via AlarmManager (startActivity+exit raced, app just closed) 2026-09-21 13:44:54 +03:00
2026-09-21_split-and-bike-guard.md Docs: current versions table in README; note router deploy of build 464 2026-09-21 12:43:49 +03:00
2026-09-21_ui-fixes.md Repeat analysis: sweep the hot-cell threshold and keep the most passes (out-and-back reps were lost when a twice-ridden approach inflated the reference) 2026-09-21 20:30:38 +03:00
2026-09-22_balance-selected-day-and-weight.md Balance/trend/charts follow the selected day; kcal weight is per-ride (stored) and settings weight auto-syncs to the latest weigh-in 2026-09-22 11:12:24 +03:00
2026-09-22_gapfill-order-fix.md Gap-fill: re-sequence the session by ts on save (filled points landed at the front on merged/split tracks with NULL seq) 2026-09-22 20:58:06 +03:00
2026-09-26_map-follow-toggle.md Build: auto-clean stale Android bundles per build + clean target 2026-09-27 00:04:52 +03:00
2026-09-29_progress-and-zoom.md Progress on recompute/refine/roads-rebuild + remember map zoom 2026-09-29 23:19:37 +03:00
2026-09-29_startup-slowness.md Track detail: await history.go popstates before re-render after gap-fill revert/save 2026-09-29 16:03:52 +03:00
2026-09-30_gapfill-ridden-router.md Gap-fill: bridge dropouts over your own ridden roads first, public BRouter only as fallback 2026-09-30 00:23:28 +03:00
2026-10-02_ble-manual-connect.md BLE HR: connect manually only, no auto-scan on every ride (battery) 2026-10-02 14:03:16 +03:00
2026-10-17_bt-gps-prompts.md Prompt to enable Bluetooth/location at recording start + two 'don't ask' settings 2026-10-17 02:07:44 +03:00
2026-10-17_hr-workout-mode.md HR: auto-connect at recording start if a strap is paired; HR on/off toggle replaces the wind button 2026-10-17 01:45:02 +03:00
2026-10-19_bt-off-crash-and-single-prompt.md HR connect: one BT-enable prompt per start, only on user action 2026-10-19 13:43:55 +03:00
2026-10-19_dark-roads-and-tile-diag.md Dark map: give the roads overlay the same invert/hue/brightness filter as tiles 2026-10-19 19:26:20 +03:00
2026-10-19_router-upload-all-os.md Session log and plan: builds for all OS uploaded to the router (build 506) 2026-10-19 23:16:33 +03:00
2026-10-19_tile-healer.md Tiles: heal blank tiles online (periodic OSM-reachability check + backfill) 2026-10-19 20:07:05 +03:00
2026-10-20_hr-reconnect.md BleHrService: auto-reconnect a dropped strap (bounded, never for an absent one) 2026-10-20 23:25:06 +03:00
2026-10-20_native-hr-log.md Workout HR: log samples natively so recording survives screen-off 2026-10-20 23:09:50 +03:00
2026-10-20_strap-uptime-and-unmerge.md Strap usage tracking: accrue real HR-delivering time + battery steps natively 2026-10-20 23:49:17 +03:00
2026-10-21_hr-base-and-calib.md Track detail: reference calibrated-HR kcal figure (Keytel x personal factor) 2026-10-21 11:22:46 +03:00
2026-10-22_tef-vr-roads-poi.md TEF in daily balance + separate HR-only "vr" (hands/VR) workout type 2026-10-22 00:51:31 +03:00
2026-10-23_roads-poi-viewport-culling.md Roads overlay: one polyline per segment + viewport culling (fix jank) 2026-10-23 01:11:15 +03:00
2026-10-24_hydration-reminder.md Hydration: water intake from the food log, drop the "+вода" button 2026-10-24 01:29:30 +03:00
2026-10-26_elevation-slope-brouter.md Docs: brouter Part B (show fords + adventure opt-in) done, verified on home portal 2026-10-26 21:48:36 +03:00
2026-10-26_hydration-fix-bank-hr-analysis.md Hydration on by default + diagnostics + reliable alarm; calorie bank; balance chart scale 2026-10-26 15:05:31 +03:00
2026-10-26_live-location-and-sms.md Session log: trackme rename, menu security, auth forms, logout fix, record buttons 2026-10-26 19:55:01 +03:00
2026-10-27_trackme-share-and-sms-fix.md Session log: trackme share (route/roads/track via RAM relay) + SMS permission fix 2026-10-27 00:55:45 +03:00
2026-10-30_barometer-ble-baldav.md ble: barometer on its own connection - simultaneous HR+baro, auto-connect, UI 2026-10-30 22:46:26 +03:00