2026-08-04 09:15 remote-shack inclusive Spannungs-Modul

This commit is contained in:
Dieter Lang 2026-08-04 09:16:10 +02:00
parent 4ec2d7c9a9
commit cd84ea8439
3 changed files with 73 additions and 38 deletions

View file

@ -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.
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.
* 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.
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.
* 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/).
3. Danach: Weitermarsch zum SPID-Rotor-Connector (Protokoll-Klärung).
* 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:
-----------------
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).
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)
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)
==============================================================================

View file

@ -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

View file

@ -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