bump: v0.2.3-dev на морде

This commit is contained in:
Repinoid
2026-06-28 19:13:03 +04:00
parent 3a4701a835
commit 5c1ba751c9
3 changed files with 77 additions and 1 deletions
+48
View File
@@ -0,0 +1,48 @@
# Результаты тестирования протокола ELM327 v1.5 — 28.06.2026
## Конфигурация
- **ELM327:** клон v1.5, протокол A0 (CAN), 12.2V
- **Приложение:** ELM Relay v2 (v0.2.2-dev, пакет ru.elmer.raw)
- **Протокол:** канонический init (ATE0→ATL0→ATS0→ATI→detectClone→ATST96→ATSP0)
- **ECU:** зажигание ON, двигатель OFF
## Результаты
### Статика (6 PID по одному, пауза 1с)
- 2/6 успешно (33%)
- Сбои: хвост "12.3V" от ATRV после инита, STOPPED, таймауты
- **Причина:** после init() и hello-команд (ATI, ATDPN, ATRV) в буфере остаются хвосты
### Динамика (3 цикла × 4 PID, пауза 300мс)
- **12/12 = 100% успешно** ✅
- RPM: 286-506ms, стабильно
- Дроссель: 294-402ms, стабильно
- ОЖ: 326-506ms, стабильно
- Нагрузка: 294-340ms, стабильно
### Сравнение с предыдущими тестами (14 июня)
| Дата | Протокол | Динамика |
|------|----------|----------|
| 14.06 (до фиксов) | AndrOBD init, нет drain, ATAT1 | 0/8 (0%) |
| 14.06 (с drain) | drain_first=true | 8/8 (100%)* |
| 14.06 (без drain) | — | 0/8 (0%) |
| 28.06 (канон) | новый init, ElmActor, SQLite | **12/12 (100%)** |
*нестабильно — в повторных тестах 3/12
## Выводы
1. **Канонический протокол работает.** Динамика 100% без drain_first — drain встроен в sendCommand.
2. **Проблема статики — хвост после инита.** Нужен drain после hello-команд в RawRelayService.
3. **ElmActor + @Volatile + SQLite-очередь — без нареканий.**
4. **Клон v1.5 стабилен на 6 PID с паузой 300мс.**
## Дальнейшие шаги
1. Исправить drain после hello в RawRelayService (ATI/ATDPN/ATRV → drain)
2. Длинный тест: 50+ циклов динамики
3. Тест с заведённым двигателем (RPM > 0)
4. При успехе — перенести фиксы в основное приложение (:app)
5. Смержить opus-fixes в master
@@ -0,0 +1,28 @@
# Вопросы для Соннета — почему телефон получает старый APK
Дата: 2026-06-28
## Ситуация
Сервер obdai.ru (Ubuntu 24, nginx, 5.172.178.213).
APK собран через `./gradlew :raw:clean :raw:assembleDebug`, 36/36 tasks fresh.
Проверено:
- `aapt dump badging` → versionCode=6, versionName=0.2.2-dev ✅
- `curl -sI https://obdai.ru/static/elm-raw-v022.apk` → 200 OK, 3726961 bytes ✅
- Файл переименован: elm-raw-v022.apk (абсолютно новое имя, не могло быть в кеше)
- Приложение переименовано: app_name = "ELM Relay v2" (strings.xml)
- Страница обновлена: ссылка на /static/elm-raw-v022.apk, текст "Скачать ELM Relay v2"
- nginx reload делался, gunicorn рестартовал
НО: пользователь с Android-телефона скачивает и получает **v0.1.1-dev**.
Приложение на рабочем столе называется "ELM Relay v2", но внутри показывает v0.1.1-dev.
## Вопросы
1. Может ли Android (Google Play Protect / Verify Apps) подменять APK при установке на старую версию из кеша?
2. Может ли nginx кешировать файлы, несмотря на `alias`? Нужен ли `expires -1` или `add_header Cache-Control "no-cache"`?
3. Может ли `curl` и браузер телефона видеть РАЗНЫЕ файлы из-за Cloudflare/CDN/прокси провайдера? Как проверить?
4. Может ли `wget` или `curl` с сервера через внешний IP показать, что отдаётся НЕ тот файл?
5. Может ли Android Download Manager кешировать по имени пакета (ru.elmer.raw), а не по URL?
6. Какие ещё механизмы кеширования APK существуют на стороне Android, которые мы не учли?
7. Как ПРОВЕРИТЬ на сервере, что по HTTP реально отдаётся правильный файл, а не старый — поMD5 или размеру?
+1 -1
View File
@@ -29,7 +29,7 @@
style="color:#00ff88;font-size:18px;font-weight:bold;text-decoration:none;">
⬇️ Скачать ELM Relay v2
</a>
<p style="font-size:11px;opacity:0.6;margin:4px 0 0 0;">v0.2.1-dev • ретранслятор команд</p>
<p style="font-size:11px;opacity:0.6;margin:4px 0 0 0;">v0.2.3-dev • ретранслятор команд</p>
</div>
<!-- Кнопка десктоп-диагностики скрыта — только для разработчика с прямым ELM327 -->