📦 КОНТЕКСТ

Ты работаешь над распределённой системой на 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

так же ты можешь удалить не нуные папки которые только усложняют архитектуру