Hauptmenü
Erweiterung der Funktionalität eines existierenden Prograqmms am Beispiel von WSJT-
Auf dieser Seite zeige wie ich ich WSJT-
Diese Anforderungen sind:
Loggen in das eigene Log in einer SQLite-
Exportieren des QSO nach eQSL
Überprüfen auf QSO B4 mit dem eigenen Log
Ändern der Sendeleistung über CAT
Die Anpassung ist keine Änderung von WSJT-
Die Schnittstelle zwischen WSJT-
Die Daten für das Loggen liefert die Datei 'wsjtx_log.adi', die von WSJT-
Wenn die Datei 'wsjtx_log.adi' existiert, wird das QSO in die eigene Datenbank geschrieben und nach eQSL exportiert.
Wenn über CAT auf den Transceiver zugegriffen werden soll, besteht das Problem, dass die serielle Schnittstelle schon von WSJT-
Umgekehrt, wenn das Zusatzprogramm zuerst den CommPort öffnet, kommt WSJT-
Beim Programmstart wird vom Transceiver die Frequenz abgefragt und mittels einer Datenbanktabelle die für das jeweilige Band richtige JT65-
Wenn nach Doppelklick auf eine Zeile im Fenster 'Band Activity' festgestellt wird, dass auf diesem Band und in dieser Betriebsart mit der Station schon ein QSO im Log steht, wird durch einen simulierten Klick auf 'Halt TX' der Anruf verhindert.
Habe ich CQ gerufen, wird selbstverständlich jeder Anruf beantwortet.
Ursprünglich waren die Zusatzelemente auf dem WSJTX-
Das obere Feld zeigt den Namen des QSO-
Bei den drei unteren Elementen handelt es um die Anzeige der Sendeleistung sowie die Buttons zum Erhöhen bzw. Verringern der Leistung.
Bei Klick auf die Buttons wird die Leistung verdoppelt bzw. halbiert in einem Breich von 1W bis 64W.
Wer auf die Änderung der Sendeleistung per CAT verzichtet, braucht dann auch keinen virtuellen COM-
Und wer auch die Überprüfung auf QSO B4 nicht braucht, kann auf die verwendeten API-
Da ich den IC-
Das folgende Bild zeigt WSJT-
Der Button "KA" verhindert (bei roter Schrift) den Anruf von bereits gearbeiteten Stationen. Das macht nur Sinn, wenn diese Version ausnahmsweise mal zu Hause eingestzt wird.
Darunter wird die Zeit der letzten Synchronisation angezeigt. Und schließlich wird der aus der GPS-
Bild 1
Der
Quellcode des Zusatzprogramms
kann von der Downloadseite heruntergeladen werden.
Zeitsynchronisation
Die Zeitdifferenz zwischen beiden Stationen soll max. ±1 Sekunde betragen. An der Heimstation ist das Einhalten dieser Forderung kein Problem. Ein entsprechendes Programm (bei mir "Dimension 4") synchronisiert die PC-
Ich möchte die WSJTX-
Ein Nachteil sei nicht verschwiegen. Wer ein Tablet oder Notebook mit nur einem USB-
Es gibt zwei Gruppen von GPS-
Bild 2
Ich verwende den Datensatz, der mit "$GPGGA" beginnt. Nach dem Komma beginnt die Uhrzeit mit Stunde, Minute und Sekunde, jeweils zweistellig. Wie wir sehen, wird dieser Datensatz immer zur vollen Sekunde gesendet. Das nutze ich aus, um die Uhr des Tablets zu synchronisieren.
Mit dem Ergebnis bin ich sehr zufrieden.
Bei dem Tablet handelt es sich um das Modell CHUWI HiBook Pro mit 10" Display. Ich hatte anfänglich die Befürchtung, dass die Taktfrequenz von 1,44 GHz nicht ausreichen würde, dem ist aber nicht so.
Das Tablet verfügt über zwei USB-
muss bei beiden ein Adapter zwischengeschaltet werden.
Die Verbindung zwischen GPS und Tablet ist nun keinesfalls eine Einbahnstraße. Es können auch Nachrichten in Richtung GPS geschickt werden, die dessen Verhalten beeinflussen. So habe ich z.B. die Übertragungsrate auf 9600 Bd geändert.
Der GPS kann im NMEA-
Während im NMEA-
Ein kleines PureBasic-
Für die Synchronisation habe ich zwei mögliche Lösungsansätze gefunden:
1. Der GPS-
Programm sucht den Anfang des nächsten Datensatzes, gekennzeichnet durch das "$"-
die Zeit enthalten. Diese Werte werden in die PC-
zwischen 0 Sek und 1 Sek und hängt vom Zeitpunkt des Programmstarts ab. Die Abweichung von GPS-
und durch Vorstellen der Uhr kmpensiert werden. Damit läuft die PC-
Leider habe ich festgestellt, dass das Warten auf den nächsten Datensatz sporadisch mit WSJT-
"Rig Control Error" ausgibt.
Bild 3
2. Der GPS-
Dieser wird ausgewrtet und die PC-
liegen, abhängig vom Anforderungszeitpunkt. Hier ist also die Übereinstimmung zwischen GPS-
immer innerhalb der Grenwerte. Es gibt auch keine Wartezeit, und WSJT-
Wenn die PC-
wird sie deutlich besser sein. Wegen der Probleme bei Version 1 bevorzuge ich diese Version.
In Bild 1 kann man sehen, dass die DT-
Der GPS muss vor dem Start von WSJT-
Weil der Befehl zum Zurücksetzen in den NMEA-
auf Anforderung ein Datensatz ausgegeben werden.
Das Hin-
Procedure GetGPSTime()
PurgeComm_(hCOM_GPS, #PURGE_RXCLEAR)
PurgeComm_(hCOM_GPS, #PURGE_TXCLEAR)
SP$ = "$PSRF103,00,01,00,01*25" + #CR$ + #LF$
WriteSerialPortString(#COM_GPS, SP$, #PB_Ascii)
ReadSerialPortData(#COM_GPS, *CommBuf, 13)
SP$ = PeekS(*CommBuf, 13, #PB_Ascii)
GetSystemTime_(yST)
yST\wHour = Val(Mid(SP$, 8, 2))
yST\wMinute = Val(Mid(SP$, 10, 2))
yST\wSecond = Val(Right(SP$, 2))
yST\wMilliseconds = 500
SetSystemTime_(yST)
EndProcedure
Die Prozedur GetGPSTime() wird einmalig beim Start von WSJT-
Zuerst werden Empfangs-
Anschließend werden die ersten 13 Bytes dieses Datensatzes gelesen und in die Elemente der Strukturvariablen
Zum Schluss wird die PC-
Beim Kaltstart sollte man schon etwas Geduld aufbringen, denn es dauert einige Minuten, bis der GPS Tritt gefasst hat.