74 lines
2 KiB
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! ===")
|
|
}
|