📦 КОНТЕКСТ Ты работаешь над распределённой системой на 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 так же ты можешь удалить не нуные папки которые только усложняют архитектуру