Files
spectr/promt.md
T
2026-08-27 19:41:00 +03:00

107 lines
4.2 KiB
Markdown

📦 КОНТЕКСТ
Ты работаешь над распределённой системой на Go.
Система состоит из двух частей:
1. ДЕМОН (Orange Pi / Ubuntu Linux)
Работает на Linux (ARM или x86)
Подключён к видеоприёмнику через UART3 (/dev/ttyS3 или аналог)
Общение с устройством идёт через ASCII-команды
UART протокол устройства:
av → ответ: HW=1.0 SW=1.005
af0188800 → установка частоты (пример: 1880 MHz)
позже добавятся другие команды
Демон является мостом:
gRPC → UART → устройство
2. КЛИЕНТ (CLI / позже GUI)
Запускается на компьютере в той же сети
Подключается к демону по gRPC
Использует один bidirectional streaming канал
Отправляет команды и получает ответы
📡 КЛЮЧЕВАЯ АРХИТЕКТУРА
Используется только один gRPC stream
Никаких отдельных RPC методов
Всё общение через stream сообщений
🔎 DISCOVERY (поиск демона в сети)
Клиент должен автоматически находить демон в локальной сети.
Можно использовать простой механизм:
UDP broadcast (предпочтительно)
или multicast
или простой локальный discovery сервис
НЕ использовать сложные системы (service mesh, etcd и т.д.)
🎮 КОМАНДЫ СИСТЕМЫ
Поддерживаются 3 команды:
1. av
проверка связи с устройством
демон отправляет UART команду av
получает HW=... SW=...
2. af
установка частоты
вход: число (например 1880 MHz)
UART команда: af0188800
3. get
получить текущую частоту
⚙️ РОЛЬ ДЕМОНА
Демон должен:
открывать UART3
отправлять ASCII команды устройству
читать ответы
парсить ответы
возвращать результат через gRPC stream
🧠 ВАЖНЫЕ ОГРАНИЧЕНИЯ
НЕ усложнять архитектуру
НЕ использовать микросервисы
НЕ добавлять Kafka, Redis, REST и т.д.
НЕ строить enterprise архитектуру
Только простой рабочий прототип.
🔮 БУДУЩЕЕ РАЗВИТИЕ
Позже демон может быть заменён STM32 прошивкой
Поэтому UART слой должен быть отделён от логики
Протокол должен остаться одинаковым
🖥 GUI
Сейчас только CLI
Позже будет GUI на Wails
Протокол менять нельзя
🎯 ЦЕЛЬ
Сделать рабочий прототип:
CLI автоматически находит демон
CLI отправляет команды: av / af / get
Демон переводит их в UART команды
Устройство отвечает
Ответ возвращается обратно клиенту
📌 ЧТО НУЖНО СГЕНЕРИРОВАТЬ
Go демон (gRPC server + UART bridge)
Go CLI клиент
protobuf контракт
простой discovery механизм
⚠️ ПРАВИЛА РЕАЛИЗАЦИИ
Go только
код простой и читаемый
можно один файл на компонент на старте
главное — работоспособность, не идеальная архитектура
💬 если коротко
Этот промт заставляет Copilot:
👉 не строить “enterprise систему”
👉 а сделать рабочий прототип мост UART ↔ gRPC
так же ты можешь удалить не нуные папки которые только усложняют архитектуру