Add download timeout with automatic retries and track-skip
zifi_input_fifo_check now tracks inactivity in frame-counted quanta (~5s @ 50Hz, so independent of CPU/turbo clock): after ~10s of total silence from the server on a request, it's retried automatically (up to 3 times, resending the already-built request). If retries are also exhausted: for a music download, skip to the next track in the list (capped at 8 consecutive dead tracks so an unreachable network doesn't spin through the whole playlist forever); for anything else, fall back to the existing manual-cancel path. Confirmed working on hardware.
This commit is contained in:
@@ -43,6 +43,8 @@ AT+CIPSNTPTIME? — получить текущее врем
|
||||
|
||||
**Поправил позицию нижней панели управления.** Она была смещена на пару пикселей вниз относительно верхней панели с самого начала (не моя регрессия) — поправил смещение `GYOFFSL` в `int_text_off`.
|
||||
|
||||
**Добавил таймаут загрузки с автоматическими повторами.** Раньше при зависшем/неотвечающем сайте клиент мог ждать данные бесконечно — выйти можно было только вручную нажав крестик отмены. Теперь если от сервера ~10 секунд вообще нет никаких данных (интервал считается по кадрам экрана, 50Гц, не зависит от частоты процессора/турборежима), запрос повторяется — до 3 раз. Если и это не помогло — для музыки клиент переходит к следующему треку в списке (со своим лимитом на подряд неудачные треки, чтобы не крутиться по всему плейлисту вечно, если сети вообще нет), для остального — обычная отмена, как раньше по крестику.
|
||||
|
||||
**Мелкие исправления:**
|
||||
- перевёл обращение к порту `#EFF7` (общий системный регистр — управляет не только доступом к часам, но и видеорежимом/turbo/кэшем) на read-modify-write вместо прямой перезаписи всего байта, чтобы не сбивать остальные настройки;
|
||||
- исправил баг в разборе двузначного GMT-смещения из `zifi.ini` (например `+10`) — были перепутаны местами разряды;
|
||||
|
||||
Reference in New Issue
Block a user