2026-08-04 09:15 remote-shack inclusive Spannungs-Modul
This commit is contained in:
parent
4ec2d7c9a9
commit
cd84ea8439
3 changed files with 73 additions and 38 deletions
70
Notizen.txt
70
Notizen.txt
|
|
@ -82,45 +82,41 @@ go mod tidy
|
||||||
|
|
||||||
weitermachen:
|
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:
|
NÄCHSTE SCHRITTE FÜR MORGEN:
|
||||||
-----------------
|
----------------------------
|
||||||
* SDR-Rig-Client: Vollständig auf ein modernes SDR-Design umgestellt.
|
1. Erweiterung der Client-GUI (SDR-Erscheinungsbild maximieren):
|
||||||
Die Frequenzanzeige ist massiv vergrößert (canvas.Text, Größe 36, Monospace)
|
- Einbau von farbigen Aktivitäts-Indikatoren für die Betriebsarten-Buttons
|
||||||
und durch unverschiebbare Tausender-Punkte (014.250.000) in MHz-, kHz-
|
(z. B. der gerade aktive Modus leuchtet in sattem Grün oder Blau,
|
||||||
und Hz-Blöcke strukturiert. Die Bandtasten werden dynamisch geladen.
|
während die inaktiven Buttons im Standard-Design verbleiben).
|
||||||
|
- Integration einer visuellen S-Meter-Balkenanzeige (Fortschrittsbalken/
|
||||||
* Sat-Rotor-Client: Geometrisch entkoppelt im 300x300-Format. Elevation
|
ProgressBar), um die vom Server gelieferten Werte (S0-S9) grafisch
|
||||||
wurde für Erdverbindungen/Troposcatter auf -20° bis 90° erweitert. Der
|
darzustellen, anstatt nur als Text.
|
||||||
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:
|
2. Integration neuer CAT-Komfortfunktionen im Treiber & GUI:
|
||||||
-----------------
|
- VFO A/B Umschaltung (Opcode 0x85) & Split-Betrieb (Opcode 0x02/0x82).
|
||||||
1. Implementierung des konkreten ProSistel-Seriell-Protokolls im neuen
|
- Repeater-Shift (Ablagerichtung Minus/Plus/Simplex für Relais via Opcode 0x09).
|
||||||
Connector unter internal/driver/.
|
- CTCSS/DCS Subaudioton-Steuerung für den VHF/UHF-Relaisfunk.
|
||||||
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:
|
3. Danach: Weitermarsch zum SPID-Rotor-Connector (Protokoll-Klärung).
|
||||||
----------------------------------------
|
|
||||||
Bitte lade zu Beginn des neuen Chats diese Dateien hoch, um die Code-Basis
|
BEREITZUSTELLENDE DATEIEN FÜR DEN START MORGEN:
|
||||||
direkt abzugleichen:
|
----------------------------------------------
|
||||||
1. internal/driver/interfaces.go (Das aktuelle Interface-Gerüst)
|
* internal/driver/yaesu_ft897.go (Der aktuell perfekt flushende Treiber)
|
||||||
2. server-config.toml & client-config.toml (Für die neuen Hardware-Felder)
|
* server/main.go & client-rig/main.go (Für die UI- und gRPC-Erweiterungen)
|
||||||
3. Technische Infos zum ProSistel-Protokoll (Befehlssatz für Az/El über Seriell)
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
|
|
|
||||||
39
build.sh
39
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 {} +
|
find ./app -type f -exec chmod +x {} +
|
||||||
|
|
||||||
echo "✅ Alle Binaries erfolgreich in ./app/ erstellt."
|
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
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ ssh -t "$PI_USER@$PI_HOST" "
|
||||||
REAL_PATH=\$(pwd)
|
REAL_PATH=\$(pwd)
|
||||||
|
|
||||||
# Pfade in Service-Files fixen
|
# 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 cp ./*.service /etc/systemd/system/
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue