remote-shack/cmd/test_rig/main.go

74 lines
2 KiB
Go

package main
import (
"log"
"time"
"remote-shack/internal/driver"
)
func main() {
log.Println("=== Starte direkten Hardware-Test: Yaesu FT-897 ===")
// 1. Treiber-Instanz erstellen
rig := driver.NewFT897Driver()
// 2. Verbindung mit den neuen 38400 Baud aufbauen
port := "/dev/ttyUSB0"
baud := 38400
log.Printf("Öffne Schnittstelle %s mit %d Baud...", port, baud)
if err := rig.Connect(port, baud); err != nil {
log.Fatalf("VERBINDUNGSFEHLER: %v", err)
}
defer func() {
_ = rig.Disconnect()
log.Println("Schnittstelle sauber geschlossen.")
}()
// 3. Aktuelle Frequenz und Mode auslesen (Ist-Zustand abfragen)
log.Println("Frage aktuellen Transceiver-Status ab...")
time.Sleep(200 * time.Millisecond) // Dem Controller kurz Zeit geben
startFreq, err := rig.GetFrequency()
if err != nil {
log.Printf("Warnung: Konnte Frequenz nicht lesen: %v", err)
} else {
log.Printf("-> Aktuelle Frequenz am Gerät: %d Hz", startFreq)
}
startMode, err := rig.GetMode()
if err != nil {
log.Printf("Warnung: Konnte Modus nicht lesen: %v", err)
} else {
log.Printf("-> Aktueller Modus am Gerät: %s", startMode)
}
// 4. Test-Kommando: Frequenz auf das 20m-Band setzen (14.074.000 Hz)
targetFreq := int64(14074000)
log.Printf("Setze Test-Frequenz auf FT8-Frequenz: %d Hz...", targetFreq)
if err := rig.SetFrequency(targetFreq); err != nil {
log.Fatalf("Fehler beim Setzen der Frequenz: %v", err)
}
// 5. Test-Kommando: Mode auf USB setzen
targetMode := "USB"
log.Printf("Schalte Betriebsart auf: %s...", targetMode)
if err := rig.SetMode(targetMode); err != nil {
log.Printf("Fehler beim Setzen des Modus: %v", err)
}
// 6. S-Meter Live-Test (3 Sekunden lang abfragen)
log.Println("Starte 3-sekündige S-Meter Überwachung...")
for i := 0; i < 6; i++ {
smeter, err := rig.GetSMeter()
if err != nil {
log.Printf("S-Meter Fehler: %v", err)
} else {
log.Printf("[Live Status] S-Meter Wert: S%d", smeter)
}
time.Sleep(500 * time.Millisecond)
}
log.Println("=== Test erfolgreich abgeschlossen! ===")
}