Release Notes — v1.5

Дата: 2026‑04‑13
Проект: dak-esp32s3-fw (ESP32‑S3, SATCO DAK)

Изменения относительно v1.4

База сравнения: тег v1.4 (коммит релиза v1.4) → v1.5. Ниже — пользовательские и технические отличия; поведение из v1.4 (Meas.modes, Wi‑Fi в settings.json, RefractCoeff, USB без VBUS, пинг, SetTimeWeb и т.д.) сохраняется, если не указано иное.

Имя прошивки и проект CMake

  • Проект ESP‑IDF переименован: dak3dak (CMakeLists.txt: project(dak)).
  • Версия сборки: PROJECT_VER = "v1.5".
  • Готовый образ приложения в релизе: dak_v1.5.bin и копия dak.bin (тот же образ для flasher_args.json).
  • OTA / копирование по USB: путь обновления /data/dak.bin (ранее /data/dak3.bin). Файл для обновления на накопителе должен называться dak.bin.

Wi‑Fi: точка доступа для настройки

  • Имя AP: SATCO-DAK-WIFI-SET (ранее DAK-WIFI-SET).
  • Пароль AP: satcodakconfig (ранее dak3config).
  • Сообщения в логах при ошибке подключения обновлены под новые имя/пароль.

Wi‑Fi: стабильность первого запуска

  • Если SSID пустой, прошивка не вызывает esp_wifi_init / disconnect с «сырой» инициализацией — это убирает сценарий с abort/перезагрузкой из‑за отмены незарегистрированных обработчиков.
  • В disconnect() добавлены проверки: корректная очистка sta_netif, если Wi‑Fi уже не инициализирован; избегание двойного destroy.

Сеть и код

  • Исправлена константа SYNC_TIME_TIMEOUT: теперь явно 6000 тиков (≈6 с), соответствующая прежнему замыслу 0.1 * 1000 * 60 в миллисекундах для таймаутов FreeRTOS.
  • Удалён мёртвый код rpc_request / emsys_connect (жёстко зашитые учётные данные не используются).

Меню и настройки (GUI)

  • Из пользовательского меню убран пункт Increment (автонумерация измерений); остальные пункты User / Service / Settings согласованы с документацией.
  • В Settings добавлены/выведены в меню (см. MENU_GUIDE.md):
    • Sync.time, TimeZone, DST Mode, SetTimeWeb, Upd.period — синхронизация и локальное время (NTP / ручной ввод, часовой пояс, летнее время EU, период автоизмерения на главном экране).
  • Meas.modes (вкл/выкл pH, EC, Conc) доступен только в сервисном режиме (ранее был и в обычных настройках в части сценариев v1.4 — уточнено в v1.5 для разделения пользовательского и сервисного доступа).

Время: модуль app_time

  • Вынесена логика UTC локальное время с учётом TimeZone и DST (правило EU).
  • Учёт источника времени: appTime_setTimeOriginNtp / appTime_isTimeFromNtp для корректного поведения GUI после NTP и ручного ввода.

Измерения (app_measure)

  • Доступ к структуре сенсоров: добавлен appMeasure_getSensorsSnapshot() и мьютекс — безопасное чтение при работе задач.
  • Данные фотолинейки копируются во встроенный массив phl_data (memcpy), указатель phl ведёт на локальную копию — нет гонок с временными буферами.
  • Если концентрация выключена в Meas.modes, при старте измерения не запускается цепочка фотолинейки — только опрос датчиков (температура / pH / EC по конфигурации).

USB / хранение

  • Существенный рефакторинг usb_storage.cpp / usb_storage.hpp (логика MSC, активности хоста, согласованность с настройками и ФС). Поведение без VBUS и таймаут активности хоста из v1.4 сохраняется в рамках новой структуры кода.

Документация и вспомогательные материалы

  • Руководства: docs/INSTRUCTION_MANUAL.md, docs/INSTRUCTION_MANUAL_de.md, HTML/Word варианты, скрипты сборки docx.
  • trainview/translations_ru_en_fr.csv и TRANSLATIONS_README.md — материалы для перевода строк.
  • Обновлены MENU_GUIDE.md, SETTINGS_JSON_DOCUMENTATION.md, flash/OTA/релизные инструкции под имена dak / v1.5.
  • Kconfig: меню SATCO DAK Configuration (вместо DAK3 Configuration).

Релиз и скрипты

  • Каталог release/v1.5/: dak_v1.5.bin, dak.bin, bootloader/, partition_table/, ota_data_initial.bin, flasher_args.json, FLASH_addresses.md (единый файл с командами esptool по образам).
  • Скрипты создания релиза GitLab / загрузки ассетов по умолчанию указывают на duklab.hopto.org и путь репозитория dak_v.4/dak4-esp32s3-fw.

Удалено из репозитория

  • Резервные копии usb_storage_v1.1.30.cpp, usb_storage_v1.1.31.cpp (устаревшие дубликаты).

Сборка

  • PROJECT_VER = "v1.5", целевой бинарник: build/dak.bin, копия с версией: build/dak_v1.5.bin.

Состав релиза (тег v1.5)

Файл Назначение
dak_v1.5.bin / dak.bin Приложение @ 0x10000
bootloader/bootloader.bin Загрузчик @ 0x0
partition_table/partition-table.bin Таблица разделов @ 0x8000
ota_data_initial.bin OTA data @ 0x610000
flasher_args.json Аргументы esptool
FLASH_addresses.md Пошаговые команды прошивки

Обновление с v1.4

  • Полная перепрошивка по FLASH_addresses.md или одной командой из flasher_args.json (рекомендуется из каталога release/v1.5).
  • OTA / файл на USB: кладите образ как dak.bin (не dak3.bin).
  • После обновления при первом входе в Wi‑Fi‑конфигурацию используйте AP SATCO-DAK-WIFI-SET / пароль satcodakconfig.