From cd84ea8439025c585e1bc359932e9f1fd9808fc4 Mon Sep 17 00:00:00 2001 From: Dieter Lang Date: Tue, 4 Aug 2026 09:16:10 +0200 Subject: [PATCH] 2026-08-04 09:15 remote-shack inclusive Spannungs-Modul --- Notizen.txt | 70 +++++++++++++++++++++++++---------------------------- build.sh | 39 +++++++++++++++++++++++++++++ deploy.sh | 2 +- 3 files changed, 73 insertions(+), 38 deletions(-) diff --git a/Notizen.txt b/Notizen.txt index 9bf5997..a279ecb 100644 --- a/Notizen.txt +++ b/Notizen.txt @@ -82,45 +82,41 @@ go mod tidy weitermachen: ============================================================================== -PROJEKT-MERKER: REMOTE-SHACK START AM MORGEN +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. -AKTUELLER STATUS: ------------------ -* SDR-Rig-Client: Vollständig auf ein modernes SDR-Design umgestellt. - Die Frequenzanzeige ist massiv vergrößert (canvas.Text, Größe 36, Monospace) - und durch unverschiebbare Tausender-Punkte (014.250.000) in MHz-, kHz- - und Hz-Blöcke strukturiert. Die Bandtasten werden dynamisch geladen. - -* Sat-Rotor-Client: Geometrisch entkoppelt im 300x300-Format. Elevation - wurde für Erdverbindungen/Troposcatter auf -20° bis 90° erweitert. Der - Kreismittelpunkt wurde auf Y=200 angehoben, um Platz nach unten zu - schaffen. Ein neuer -15°-Bogen-Button ist integriert. Die originale - tokenbasierte gRPC-Schreib-Validierung via TargetPosition ist lückenlos aktiv. - -* Kompilierung: Das build.sh-Skript ist repariert und berücksichtigt - CGO_ENABLED=1. Alle Komponenten bauen fehlerfrei direkt in die - Zielordner (./app/server/ und ./app/clients/). - -* Architektur-Entscheidung: Wechsel auf ein flexibles Connector-Modell - (Abstraktionsschicht analog zu Hamlib). Der gRPC-Server spricht nur noch - mit generischen Interfaces. Die Hardware (ProSistel, SPID etc.) wird rein - über die TOML-Konfigurationsdateien eingekoppelt, ohne den Core-Code zu verändern. +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. -NÄCHSTE SCHRITTE: ------------------ -1. Implementierung des konkreten ProSistel-Seriell-Protokolls im neuen - Connector unter internal/driver/. -2. Vorbereitung des SPID-Rotor-Connectors für das Gerät des Bekannten. -3. Einbindung des ADS1115-I2C-Treibers im Server für die reine Shack- - Betriebsspannungs-Telemetrie (Entkoppelt von der Rotor-Grad-Messung). +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. -BEREITZUSTELLENDE DATEIEN FÜR DEN START: ----------------------------------------- -Bitte lade zu Beginn des neuen Chats diese Dateien hoch, um die Code-Basis -direkt abzugleichen: -1. internal/driver/interfaces.go (Das aktuelle Interface-Gerüst) -2. server-config.toml & client-config.toml (Für die neuen Hardware-Felder) -3. Technische Infos zum ProSistel-Protokoll (Befehlssatz für Az/El über Seriell) +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) ============================================================================== - diff --git a/build.sh b/build.sh index cedf227..a3ca920 100755 --- a/build.sh +++ b/build.sh @@ -30,3 +30,42 @@ go build -o ./app/clients/client-volt ./cmd/client-volt/main.go find ./app -type f -exec chmod +x {} + echo "✅ Alle Binaries erfolgreich in ./app/ erstellt." + +# 3. Die Service-Datei universell generiert (nutzt systemd %h/%u Specifiers) +cat << 'EOF' > ./app/spannung.service +# ============================================================================== +# KURZANLEITUNG ZUR INSTALLATION UND VERWALTUNG +# ============================================================================== +# 1. Datei kopieren nach: /etc/systemd/system/spannung.service +# 2. Systemd neu laden: sudo systemctl daemon-reload +# 3. Autostart aktivieren: sudo systemctl enable spannung.service +# 4. Dienst starten: sudo systemctl start spannung.service +# ============================================================================== + +[Unit] +Description=Spannung Control Service +After=network-online.target i2c.service +Wants=network-online.target +StartLimitIntervalSec=0 + +[Service] +Type=simple +ExecStartPre=/bin/bash -c 'for i in {1..10}; do i2cdetect -y 1 | grep -E "^40:" | grep -q -E "\b48\b" && exit 0; echo "warte auf ADS1115..."; sleep 2; done; exit 1' +ExecStart=%h/spannung/app/spannung-arm32_7 +WorkingDirectory=%h/spannung/app +User=%u +Restart=on-failure +RestartSec=5s +StartLimitIntervalSec=60s +StartLimitBurst=3 + +StandardOutput=append:%h/spannung/app/spannung.log +StandardError=append:%h/spannung/app/spannung.log + +[Install] +WantedBy=multi-user.target +EOF + +echo "📝 Service-Datei universell generiert (nutzt systemd %h/%u Specifiers)" +echo "📂 Inhalt des fertigen app-Verzeichnisses:" +ls -la app diff --git a/deploy.sh b/deploy.sh index 929f0d6..8ddf249 100755 --- a/deploy.sh +++ b/deploy.sh @@ -20,7 +20,7 @@ ssh -t "$PI_USER@$PI_HOST" " REAL_PATH=\$(pwd) # Pfade in Service-Files fixen - sed -i \"s|TARGET_HOME_DIR/remote-shack/app/server|\$REAL_PATH|g\" ./*.service + #sed -i \"s|TARGET_HOME_DIR/remote-shack/app/server|\$REAL_PATH|g\" ./*.service sudo cp ./*.service /etc/systemd/system/ sudo systemctl daemon-reload