Прошивка для Xteink X4 и X3 на базе CrossPoint Reader 1.6.0 beta RC03. Версии BookPoint идут следом за CrossPoint: v1.6.0, v1.6.1 и далее. Добавляет статистику чтения, сноски внизу страницы и ряд изменений для экономии батареи. Все остальные возможности CrossPoint работают как раньше.
Время считается по страницам, с отсечкой простоя больше 5 минут. Считается общее время, сессии, перевернутые страницы, темп (секунд на страницу) и примерное время до конца книги.
Экран статистики открывается из меню книги и из настроек. Три страницы: данные по текущей книге, общие по устройству, и активность: график за 14 дней по реальным секундам, распределение по дням недели и по времени суток, серия дней подряд.
Где лежат данные и почему не теряются:
/crosspoint/stats/на SD-карте, вне кэша книг. Обновление прошивки, смена шрифта и очистка кэша статистику не трогают.- Запись атомарная, перед перезаписью старый файл уезжает в .bak.
- После каждой сессии перезаписывается
reading_stats.csv, так что данные всегда можно прочитать с компьютера, даже если прошивка слетела. - Если раньше стоял inkMOD, его статистика подхватывается автоматически при первом запуске.
По умолчанию включен режим «Внизу страницы»: там, где в тексте есть ссылка на сноску, внизу страницы печатается ее текст мелким шрифтом, как в бумажной книге. Работает и когда примечания вынесены в отдельный файл в конце EPUB. Пагинация от этого не скачет: место под полосу выделено заранее.
Второй режим, «Переход с возвратом», работает как в обычном CrossPoint: короткий Back или Power возвращает на страницу, где вы читали.
Извлечение текста универсальное: понимается разметка с номером внутри спана (royallib), примечания в отдельном файле, div-блоки с обратными ссылками. Служебные слова вроде «Вернуться» из текста сноски убираются. На страницах без примечаний полоса не остается висеть: она очищается при каждом обновлении экрана.
Пока вы читаете саму сноску, закладка прогресса остается на исходной странице. Сон, сбой или синхронизация KOReader не перенесут вас в конец книги и не запишут на сервер позицию внутри примечаний.
В «Настройке строки состояния» добавлены два пункта:
- «Положение строки»: Низ или Верх. Строка рисуется у выбранного края, текст занимает остальное место.
- «Скрыть строку состояния»: полностью убирает ее и отдает место тексту.
Пункт «Строка состояния XTC» по-прежнему относится только к XTC-файлам.
«Настройки, Система, Словари (скачать)»: русско-английский и англо-русский словари WikDict скачиваются по Wi-Fi и распаковываются в /dictionaries/ на SD-карту. После этого они появляются в Настройки, Чтение, Словарь. Свои словари StarDict по-прежнему можно класть в /dictionaries/ вручную.
У Noto Sans доступен размер 8 (этот шрифт уже зашит в прошивку как мелкий шрифт интерфейса), у Noto Serif размеры 12-18. Размеры 10-24 и любые другие дают свои шрифты: конвертируйте TTF/OTF в браузере (вкладка Шрифты), укажите нужные размеры, и они появятся в списке.
Wi-Fi самый прожорливый потребитель, поэтому сетевые экраны (передача файлов, OPDS) сами выключают радио после 3 минут бездействия. Настраивается в Системе, 0 отключает.
Часы работают на обоих устройствах: на X3 через аппаратный RTC, на X4 время берется из системных часов ESP32, которые синхронизируются по NTP при подключении Wi-Fi и восстанавливаются после сна. На расход батареи это не влияет.
Часы включаются в «Настройке строки состояния»: Слева, Справа или По центру. До первой синхронизации времени часы пустые. Там же в Системе: формат часов (24/12), смещение UTC и синхронизация даты и времени.
Для поиска причин ночного расхода есть «Лог батареи» в Системе. Пишет в
/.crosspoint/battery_log.csv строку при загрузке и перед сном с
процентами. Выключен по умолчанию.
OPDS-каталоги Flibusta (основной и зеркало) и Project Gutenberg добавляются при запуске, если их еще нет в списке. Свои серверы это не трогает.
Прошивается как обычный CrossPoint: через web-флешер по USB (https://crosspointreader.com/#flash-tools) или с SD-карты. Настройки, книги, прогресс и статистика совместимы с CrossPoint 1.6.0.
Не обновляйтесь через встроенный пункт «Проверить обновления»: он поставит оригинальный CrossPoint без этих функций.
Нужен PlatformIO и Python. Путь к проекту без пробелов, ESP-IDF этого требует.
git clone --recurse-submodules https://github.com/klanva/BookPoint.git
cd BookPoint
build.bat # Windows, собирает env default (X4 + X3)
Результат в .pio/build/default/firmware.bin.
MIT, как и исходный CrossPoint. Спасибо авторам CrossPoint, FreeInk SDK и сообществу 4pda за идеи и тестирование.