Update docs: compass rotation, landscape mode, sync, dead reckoning, placeholder

This commit is contained in:
4aiman 2026-06-25 21:02:37 +03:00
commit 4d9c0f8de2
2 changed files with 18 additions and 14 deletions

View file

@ -21,16 +21,18 @@
| Файл | Строк | Назначение |
|------|-------|------------|
| `js/main.js` | ~5000 | Экраны, навигация (winStack), модалки, графики, нутриенты, HR UI |
| `js/db.js` | ~1400 | SQLite через Tauri IPC. Миграции, CRUD, 41 поле добавок, water_pct, reserves |
| `js/gps.js` | ~1100 | GPS запись, физика ккал (power model), altitude filter, BLE HR polling |
| `js/main.js` | ~5500 | Экраны, навигация, модалки, графики, нутриенты, HR UI, компас, ландшафт |
| `js/db.js` | ~1500 | SQLite через Tauri IPC. Миграции, CRUD, 41 поле добавок, water_pct, reserves, sync |
| `js/gps.js` | ~1200 | GPS запись, физика ккал (power model), altitude filter, BLE HR polling, dead reckoning |
| `js/sync.js` | ~300 | Синхронизация между устройствами (LAN, PHP сервер на роутере) |
| `js/tilecache.js` | 178 | Оффлайн кэш тайлов карты (IndexedDB) |
| `js/bmr.js` | ~70 | BMR (Mifflin-St Jeor), РСП из БД (33 нутриента), полураспад |
| `css/styles.css` | ~2000 | Темная тема, мобильный дизайн, HR зоны |
| `index.html` | 26 | Точка входа, порядок загрузки скриптов |
| `css/styles.css` | ~2100 | Темная тема, мобильный дизайн, HR зоны, ландшафтный режим |
| `index.html` | 28 | Точка входа, порядок загрузки скриптов |
| `img/gps-placeholder.png` | 63KB | Пиксельарт заглушка при поиске GPS |
| `data/products_seed.db` | 8.2MB | 13481 продукт (magnit 8627, 5ka 3103, ION 1078, kdv 672, manual 1) |
**Библиотеки** (`lib/`): leaflet.js, chart.min.js, chartjs-plugin-zoom.min.js, hammer.min.js, jszip.min.js
**Библиотеки** (`lib/`): leaflet.js (1.9.4), leaflet-rotate.js (компас), chart.min.js, chartjs-plugin-zoom.min.js, hammer.min.js, jszip.min.js
### Бэкенд Rust (`src-tauri/`)
@ -47,7 +49,7 @@
| Файл | Строк | Назначение |
|------|-------|------------|
| `MainActivity.kt` | ~300 | FileObserver IPC, seed DB, safe insets, SAF, BLE commands, OTA check |
| `GpsRecorderService.kt` | 205 | Foreground service GPS, WakeLock, JSONL батчевая запись |
| `GpsRecorderService.kt` | ~500 | Foreground service GPS, WakeLock, JSONL, 50Hz акселерометр/гироскоп, dead reckoning, raw sensor files |
| `BleHrService.kt` | ~340 | Foreground service BLE HR, FitPro protocol, GATT queue, scan/connect |
| `generated/*.kt` | ~1100 | Tauri-сгенерированные: WebView, IPC, permissions |
@ -123,7 +125,7 @@
### Экраны
- **Сегодня** — баланс ккал, еда (продукты + блюда), GPS тренировки, активность, вес, сон, добавки, прогресс-бар жидкости, нутриенты (приход + запасы)
- **Продукты** — подтабы [Продукты | Рецепты], поиск, карточки с КБЖУ, добавление в дневник
- **Трек** — GPS тренировки (запись с HR), карта, графики скорости/высоты/ЧСС, импорт GPX/FTB
- **Трек** — GPS тренировки (запись с HR), карта с компасом (leaflet-rotate), ландшафтный режим (CSS rotation), графики скорости/высоты/ЧСС, импорт GPX/FTB, dead reckoning, placeholder до GPS
- **Добавки** — 41 нутриент (витамины, минералы, жирные кислоты, женьшень, ресвератрол, CoQ10)
- **Настройки** — профиль, образ жизни, нормы ЧСС/давления, BLE пульсометр, велосипеды, GPS конфиг, OTA обновления

View file

@ -5,7 +5,7 @@
## Возможности
- **Дневник питания** — 13480 продуктов из магазинов (Магнит, 5ка, KDV) + база ИОН с микронутриентами. Рецепты с учётом термообработки (потери витаминов при варке/жарке). Единицы измерения (штуки, ложки, стаканы). Ввод количества формулами (4*30, 300+50).
- **GPS трекинг** — запись маршрутов на велосипеде/пешком в фоне. Оффлайн карты (Leaflet + IndexedDB кэш). Импорт GPX/FTB (FitoTrack). Экспорт GPX. Фильтр altitude outlier'ов и GPS-залипаний.
- **GPS трекинг** — запись маршрутов на велосипеде/пешком в фоне. Оффлайн карты (Leaflet + IndexedDB кэш). Импорт GPX/FTB (FitoTrack). Экспорт GPX. Фильтр altitude outlier'ов и GPS-залипаний. Вращение карты по компасу (leaflet-rotate). Ландшафтный режим (CSS rotation + панель справа). Dead reckoning при потере GPS (гироскоп + акселерометр). Placeholder до GPS (пиксельарт).
- **BLE пульсометр** — подключение к FitPro браслетам и стандартным HR датчикам (0x180D). ЧСС, SpO2, давление в реальном времени при записи трека.
- **Расчёт ккал** — физическая модель для велосипеда (мощность из gradient + Crr + CdA). MET-таблица для ходьбы/бега. Профили велосипедов. BMR по Mifflin-St Jeor с коэффициентом активности.
- **Нутриенты** — 37 микронутриентов (витамины, минералы, жирные кислоты, женьшень, ресвератрол, CoQ10). Нормы РСП/АУП (РФ/ЕС/США). Фармакокинетика — запасы в организме по полураспаду.
@ -21,7 +21,7 @@
- **Frontend**: чистый JavaScript, HTML, CSS. Без React/Vue/bundler.
- **Backend**: Rust (Tauri 2) — SQLite, IPC, seed import, BLE (btleplug на десктопе).
- **Android**: Kotlin — foreground GPS service, BLE HR service, WakeLock, SAF.
- **Библиотеки**: Leaflet (карты), Chart.js (графики), Hammer.js (жесты), JSZip.
- **Библиотеки**: Leaflet 1.9.4 (карты), leaflet-rotate (компас), Chart.js (графики), Hammer.js (жесты), JSZip.
## Сборка
@ -40,12 +40,14 @@
```
frontend/
js/main.js — UI, навигация, модалки (~5000 строк)
js/db.js — БД, миграции, CRUD (~1400)
js/gps.js — GPS, физика ккал, BLE HR polling (~1100)
js/main.js — UI, навигация, модалки, компас, ландшафт (~5500 строк)
js/db.js — БД, миграции, CRUD (~1500)
js/gps.js — GPS, физика ккал, BLE HR polling (~1200)
js/bmr.js — BMR формула, РСП, полураспад нутриентов
js/sync.js — синхронизация между устройствами (LAN)
js/tilecache.js — оффлайн тайлы (IndexedDB)
css/styles.css — стили, тёмная тема
css/styles.css — стили, тёмная тема, ландшафтный режим
img/gps-placeholder.png — пиксельарт заглушка до GPS
data/products_seed.db — 13480 продуктов
src-tauri/
src/lib.rs — Rust бэкенд, seed import