Funktionsprinzip: [ RASPBERRY PI (Server) ] [ CLIENTS (Fyne.io via Tailscale) ] +-------------------+ +-----------------------+ +---------------------------------+ | Yaesu, Icom, etc. | <---> | rig-service (Go) | <========> | [ Client 1: Rig-Control Window ] | SPID, Yaesu Rotor | <---> | rotor-service (Go) | gRPC / | (Operator: Full control + TX) | | Relais-Boards | <---> | gpio-service (Go) | Protobuf +---------------------------------+ +-------------------+ +-----------------------+ +---------------------------------+ | Soundkarte / TRX | <---> | audio-service (Opus) | <========> | [ Client 2: Rotor Window ] | +-------------------+ +-----------------------+ | (Listener: View only + RX) | +---------------------------------+ mkdir -p remote-shack/{api,cmd/{server,client-rig,client-rotor,client-relais,test-rig},internal/{config,driver,audio}} remote-shack/ ├── api/ # Protobuf-Definitionen für gRPC (.proto) ├── cmd/ │ ├── server/ # Das Hauptprogramm für den Raspberry Pi │ └── client-rig/ # Fyne-Fenster für Funkgerät │ └── client-rotor/ # Fyne-Fenster für Rotor │ └── client-relais/ # Fyne-Fenster für Relais ├── internal/ │ ├── config/ # Konfigurations-Parser (TOML/YAML) │ ├── driver/ # Native Go-Treiber (CI-V, Kenwood, SPID) │ └── audio/ # Opus/UDP Audio-Streaming-Logik └── go.mod # Zum Zeichnen der GUI wird fyne verwendet go get fyne.io/fyne/v2 go mod tidy # Für Cross-Compiling den Grafiktreiber für Windows installieren sudo apt-get install mingw-w64 # Pakete für Kompilieren der Linux-GUI sudo apt-get update && sudo apt-get install -y \ libx11-dev \ libxrandr-dev \ libxinerama-dev \ libxcursor-dev \ libxi-dev \ libgl1-mesa-dev # Header für Alsa sudo apt-get update && sudo apt-get install -y libasound2-dev # Alle Bibliotheken automatisch installieren: sudo apt-get update && sudo apt-get install -y libasound2-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev pkg-config sudo apt-get update && sudo apt-get install -y libxxf86vm-dev "github.com/ebitengine/oto/v3" "github.com/BurntSushi/toml" # Neues Projekt: go mod init remote-shack #gRPC-Tool installieren sudo apt install protobuf-compiler go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest #Go-Bin-Verzeichnis muss im PATH liegen export PATH=$PATH:$(go env GOPATH)/bin #Go-Code aus der Proto-Datei erzeugen #protoc --go_out=. --go_opt=Mapi/shack.proto=remote-shack/api --go-grpc_out=. --go-grpc_opt=Mapi/shack.proto=remote-shack/api api/shack.proto protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative api/shack.proto # 1. Pfad zur Systemkonfiguration hinzufügen echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc # 2. Konfiguration im aktuellen Terminal sofort aktivieren source ~/.bashrc # Zum Zeichnen der GUI wird fyne verwendet go get fyne.io/fyne/v2 go mod tidy weitermachen: ============================================================================== PROJEKT-MERKER: REMOTE-SHACK START AM MORGEN - NEXT LEVEL RIG-CONTROL ============================================================================== AKTUELLER STATUS (HEUTE ERREICHT): ---------------------------------- * Yaesu FT-897 Treiber: Vollständig fehlerfrei implementiert. Die 9-stellige BCD-Arithmetik läuft in beide Richtungen bitgenau synchron (inkl. Breitband wie 90,700 MHz). * Audio-Klicken eliminiert: Durch die Entlastung des gRPC-Monitor-Tickers (Frequenz alle 500ms, S-Meter alle 1000ms) ist das NF-Knacken im Lautsprecher des Transceivers vollständig verschwunden. * Puffer-Sicherheit: Die neue Methode 'clearSerialBuffer()' flusht das Linux-TTY vor jeder Interaktion und verhindert asynchrone Bit-Verschiebungen. * Dynamische Bänder: Die Amateurfunkbänder wurden komplett aus dem Go-Code in die 'client-config.toml' ausgelagert. Die 'internal/config/config.go' liest diese inklusive automatischem Werkseinstellungs-Fallback fehlerfrei ein. NÄCHSTE SCHRITTE FÜR MORGEN: ---------------------------- 1. Erweiterung der Client-GUI (SDR-Erscheinungsbild maximieren): - Einbau von farbigen Aktivitäts-Indikatoren für die Betriebsarten-Buttons (z. B. der gerade aktive Modus leuchtet in sattem Grün oder Blau, während die inaktiven Buttons im Standard-Design verbleiben). - Integration einer visuellen S-Meter-Balkenanzeige (Fortschrittsbalken/ ProgressBar), um die vom Server gelieferten Werte (S0-S9) grafisch darzustellen, anstatt nur als Text. 2. Integration neuer CAT-Komfortfunktionen im Treiber & GUI: - VFO A/B Umschaltung (Opcode 0x85) & Split-Betrieb (Opcode 0x02/0x82). - Repeater-Shift (Ablagerichtung Minus/Plus/Simplex für Relais via Opcode 0x09). - CTCSS/DCS Subaudioton-Steuerung für den VHF/UHF-Relaisfunk. 3. Danach: Weitermarsch zum SPID-Rotor-Connector (Protokoll-Klärung). BEREITZUSTELLENDE DATEIEN FÜR DEN START MORGEN: ---------------------------------------------- * internal/driver/yaesu_ft897.go (Der aktuell perfekt flushende Treiber) * server/main.go & client-rig/main.go (Für die UI- und gRPC-Erweiterungen) ==============================================================================