|
| 1 | +#  turing-smart-screen-python — Форк с поддержкой HID |
| 2 | + |
| 3 | +> **Форк оригинала:** [mathoudebine/turing-smart-screen-python](https://github.com/mathoudebine/turing-smart-screen-python) |
| 4 | +> |
| 5 | +> **Этот форк добавляет поддержку HID-дисплеев SmartMonitor** (протокол USB HID / hidraw). |
| 6 | +
|
| 7 | +--- |
| 8 | + |
| 9 | +⚠️ **ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ** — Этот проект **не аффилирован, не связан, не авторизован и не поддерживается брендами Turing / XuanFang / Kipye**. Все названия продуктов являются зарегистрированными товарными знаками их владельцев. |
| 10 | + |
| 11 | +Это альтернативное ПО с открытым исходным кодом, НЕ оригинальное ПО для смарт-дисплеев. |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +   [](./LICENSE) |
| 16 | + |
| 17 | +Программа системного мониторинга на Python и библиотека абстракции для **малых IPS USB-C дисплеев**, с **дополнительной поддержкой HID (USB HID / hidraw) устройств SmartMonitor**. |
| 18 | + |
| 19 | +## Что нового в этом форке |
| 20 | + |
| 21 | +### Поддержка HID SmartMonitor |
| 22 | + |
| 23 | +Этот форк вводит **ревизию `A_HID`** — новый уровень коммуникации, работающий с дисплеями SmartMonitor через **USB HID (hidraw)** вместо традиционного UART/serial. |
| 24 | + |
| 25 | +| Возможность | Описание | |
| 26 | +|-------------|----------| |
| 27 | +| **HID транспорт** | Обмен данными через `/dev/hidraw*` на Linux с использованием HID-отчётов (64 байта) | |
| 28 | +| **Протокол YMODEM** | Загрузка тем через YMODEM поверх HID | |
| 29 | +| **Обновление тегов в реальном времени** | Передача данных датчиков через пакеты тег/значение без перерисовки фреймбуфера | |
| 30 | +| **Скомпилированные темы** | Используются файлы `.img.dat`, скомпилированные из UI-определений вендора | |
| 31 | +| **Автоопределение** | Автоматический поиск hidraw-устройств через sysfs uevent | |
| 32 | +| **Синхронизация времени** | Опциональная синхронизация RTC дисплея | |
| 33 | + |
| 34 | +### Конфигурация |
| 35 | + |
| 36 | +Добавьте в ваш `config.yaml`: |
| 37 | + |
| 38 | +```yaml |
| 39 | +display: |
| 40 | + REVISION: A_HID |
| 41 | + BRIGHTNESS: 20 |
| 42 | + SMARTMONITOR_HID_RUNTIME: true |
| 43 | + SMARTMONITOR_HID_THEME_FILE: /путь/к/ваша-тема-compiled.dat |
| 44 | + SMARTMONITOR_HID_UPLOAD_ON_START: false |
| 45 | + SMARTMONITOR_HID_SEND_TIME: false |
| 46 | + SMARTMONITOR_HID_CMD: 2 |
| 47 | + SMARTMONITOR_HID_UPDATE_INTERVAL: 2 |
| 48 | + SMARTMONITOR_HID_TIME_INTERVAL: 1 |
| 49 | + SMARTMONITOR_HID_TAGS: |
| 50 | + CPU_TEMP: 1 |
| 51 | + GPU_TEMP: 5 |
| 52 | + RAM_PERCENT: 12 |
| 53 | +``` |
| 54 | +
|
| 55 | +### Новые инструменты |
| 56 | +
|
| 57 | +| Инструмент | Назначение | |
| 58 | +|------------|------------| |
| 59 | +| `smartmonitor-compile-theme.py` | Компиляция UI XML тем вендора в `.img.dat` | |
| 60 | +| `smartmonitor-inspect-imgdat.py` | Инспекция скомпилированных файлов тем | |
| 61 | +| `smartmonitor-decode-ui.py` | Декодирование UI-определений вендора | |
| 62 | +| `smartmonitor-analyze-pcap.py` | Анализ PCAP-захватов USB-трафика | |
| 63 | +| `smartmonitor-probe-tags.py` | Обнаружение доступных ID тегов на дисплее | |
| 64 | +| `smartmonitor-send-runtime.py` | Ручная отправка обновлений тегов | |
| 65 | +| `smartmonitor-theme-editor.py` | GUI-редактор HID-тем | |
| 66 | + |
| 67 | +### Архитектура |
| 68 | + |
| 69 | +``` |
| 70 | +┌─────────────────────────────────────────────┐ |
| 71 | +│ Системный монитор (main.py) │ |
| 72 | +├─────────────────────────────────────────────┤ |
| 73 | +│ library/smartmonitor_runtime.py — runtime │ |
| 74 | +│ library/smartmonitor_compile.py — компилятор│ |
| 75 | +│ library/smartmonitor_render.py — рендерер │ |
| 76 | +│ library/smartmonitor_imgdat.py — img.dat │ |
| 77 | +│ library/smartmonitor_ui.py — UI энкодер │ |
| 78 | +├─────────────────────────────────────────────┤ |
| 79 | +│ library/lcd/lcd_comm_rev_a_hid.py — HID │ |
| 80 | +│ library/lcd/lcd_comm_rev_a.py — UART Rev A │ |
| 81 | +│ library/lcd/lcd_comm_rev_b.py — UART Rev B │ |
| 82 | +│ library/lcd/lcd_comm_rev_c.py — UART Rev C │ |
| 83 | +│ library/lcd/lcd_comm_rev_d.py — UART Rev D │ |
| 84 | +├─────────────────────────────────────────────┤ |
| 85 | +│ USB транспорт (HID / Serial) │ |
| 86 | +└─────────────────────────────────────────────┘ |
| 87 | +``` |
| 88 | +
|
| 89 | +## Оригинальные возможности (из оригинала) |
| 90 | +
|
| 91 | +### ✅ Поддерживаемые модели смарт-дисплеев: |
| 92 | +
|
| 93 | +| ✅ Turing Smart Screen 3.5" | ✅ XuanFang 3.5" | ✅ Turing Smart Screen 5" | |
| 94 | +|---|---|---| |
| 95 | +| ✅ Turing Smart Screen 2.1" / 2.8" | ✅ UsbPCMonitor 3.5" / 5" | ✅ Kipye Qiye Smart Display 3.5" | |
| 96 | +| ✅ WeAct Studio Display FS V1 0.96" | ✅ WeAct Studio Display FS V1 3.5" | ✅ **SmartMonitor HID (этот форк)** | |
| 97 | +
|
| 98 | +### Системный монитор |
| 99 | +
|
| 100 | +* Полностью функциональная мульти-ОС кодовая база (Windows, Linux, macOS). |
| 101 | +* Настройка дисплея через GUI-мастер или файл `config.yaml`. |
| 102 | +* Поддержка множества аппаратных датчиков (CPU/GPU, температуры, память, диски и т.д.). |
| 103 | +* Создание тем с файлами `theme.yaml` через редактор тем. |
| 104 | +* Автоопределение COM-порта / HID-устройства для выбранной модели. |
| 105 | +* Иконка в трее с возможностью выхода. |
| 106 | +
|
| 107 | +## Начало работы |
| 108 | +
|
| 109 | +### Зависимости |
| 110 | +
|
| 111 | +```bash |
| 112 | +pip install -r requirements.txt |
| 113 | +``` |
| 114 | + |
| 115 | +### Запуск системного монитора |
| 116 | + |
| 117 | +```bash |
| 118 | +python main.py |
| 119 | +``` |
| 120 | + |
| 121 | +### Запуск мастера конфигурации |
| 122 | + |
| 123 | +```bash |
| 124 | +python configure.py |
| 125 | +``` |
| 126 | + |
| 127 | +### Простой пример |
| 128 | + |
| 129 | +```bash |
| 130 | +python simple-program.py |
| 131 | +``` |
| 132 | + |
| 133 | +## Устранение неполадок |
| 134 | + |
| 135 | +### HID-устройство не найдено (Linux) |
| 136 | + |
| 137 | +1. Проверьте наличие hidraw-устройства: |
| 138 | + ```bash |
| 139 | + ls -la /dev/hidraw* |
| 140 | + ``` |
| 141 | + |
| 142 | +2. Проверьте uevent устройства: |
| 143 | + ```bash |
| 144 | + cat /sys/class/hidraw/hidraw*/device/uevent |
| 145 | + ``` |
| 146 | + |
| 147 | +3. Убедитесь в правильности прав (правило udev): |
| 148 | + ``` |
| 149 | + SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0483", MODE="0666" |
| 150 | + ``` |
| 151 | + |
| 152 | +### Общие неполадки |
| 153 | + |
| 154 | +Проверьте [открытые/закрытые issues](https://github.com/mathoudebine/turing-smart-screen-python/issues) и [страницу Troubleshooting](https://github.com/mathoudebine/turing-smart-screen-python/wiki/Troubleshooting) |
| 155 | + |
| 156 | +## ☕ Поддержать проект |
| 157 | + |
| 158 | +Если этот проект полезен для вас, вы можете поддержать его развитие. Донаты помогают покрывать расходы на тестирование HID-устройств, улучшать поддержку новых дисплеев и сохранять проект бесплатным и открытым. |
| 159 | + |
| 160 | +### 🌍 Донаты из любой страны |
| 161 | + |
| 162 | +Мы принимаем поддержку через сеть **TON** (Toncoin / USDT). |
| 163 | + |
| 164 | +| Сеть | Валюта | Адрес | |
| 165 | +|------|--------|-------| |
| 166 | +| 🔷 TON | Toncoin / USDT | `UQD-RzivaF2yxBF81Zzf44WE84Y3pS24QL751Z5nYC3PosRJ` | |
| 167 | + |
| 168 | +**Как поддержать:** |
| 169 | +1. Откройте ваш TON-кошелёк (Tonkeeper, Telegram Wallet и т.д.) |
| 170 | +2. Отправьте любое количество **Toncoin** или **USDT (сеть TON)** |
| 171 | +3. Внимательно проверьте адрес перед отправкой — транзакции необратимы |
| 172 | + |
| 173 | +💡 **Совет:** USDT в сети TON имеет минимальную комиссию (~$0.1). Убедитесь, что используете именно сеть **TON**, а не ERC20 или TRC20. |
| 174 | + |
| 175 | +> 📊 **Прозрачность:** Все поступившие средства направляются исключительно на поддержку проекта, покупку оборудования для тестов и разработку. |
| 176 | +
|
| 177 | +> 💡 **Проект всегда будет бесплатным и открытым.** Донаты не открывают дополнительных функций — они лишь помогают продолжать разработку. |
| 178 | +
|
| 179 | +## Лицензия |
| 180 | + |
| 181 | +Этот проект лицензирован по **GNU General Public License v3.0 или новее**. |
| 182 | + |
| 183 | +Оригинальная работа Copyright (C) 2021 Matthieu Houdebine (mathoudebine) |
| 184 | +Модификации и дополнения Copyright (C) 2024–2026 Agentry433 |
| 185 | + |
| 186 | +Подробности в файле [LICENSE](./LICENSE). |
| 187 | + |
| 188 | +## История звёзд |
| 189 | + |
| 190 | +[](https://star-history.com/#mathoudebine/turing-smart-screen-python&Date) |
0 commit comments