Erweiterung der Funktionalität eines existierenden Prograqmms am Beispiel von WSJT-X
Auf dieser Seite zeige wie ich ich WSJT-X an meine eigenen Anforderungen angepasst habe.
Diese Anforderungen sind:
Loggen in das eigene Log in einer SQLite-Datenbank
Ändern der Sendeleistung über CAT
Die Anpassung ist keine Änderung von WSJT-X, sondern ein autarkes Zusatzprogramm, das die gewünschte Funktionalität bereitstellt.
Die Daten für das Loggen liefert die Datei 'wsjtx_log.adi', die von WSJT-X bei Klick auf den Log-Button im Log-Fenster entweder erstellt wird oder um die QSO-Daten erweitert wird.
Da das Zusatzprogramm aber nach dem Loggen diese Datei löscht, kommt eigentlich nur der erste Fall in Frage.
Wenn die Datei 'wsjtx_log.adi' existiert, wird das QSO in die eigene SQLite-Datenbank geschrieben.
Wenn über CAT auf den Transceiver zugegriffen werden soll, besteht das Problem, dass die serielle Schnittstelle schon von WSJT-X in Anspruch genommen ist und für eine andere Anwendung nicht zur Verfügung steht.
Umgekehrt, wenn das Zusatzprogramm zuerst den CommPort öffnet, kommt WSJT-X nicht zum Zuge und gibt eine Fehlermeldung aus.
Abhilfe schafft hier ein virtueller COM-Port. Näheres dazu steht auf der Seite 'RS232'.
Ursprünglich waren die Zusatzelemente auf dem WSJTX-Fenster angeordnet. Da aber in der Version 1.8.0 der zur Verügung stehende Platz kleiner wurde, befinden sie sich jetzt in einem gesonderten Fenster, das rechts neben dem WSJTX-Fenster angeordnet ist.
Bild 1

Das obere Anzeigeelement zeigt die Sendeleistung an. Diese wird mit Hilfe des Mausrads verändert, je nach Drehrichtung verringert oder vergrößert. Die vorgegebenen Werte sind in einer Datenbanktabelle gespeichert. Bei Nutzung dieser Funktion muss sich der
Cursor auf dem Zusatzfenster befinden.
Wer auf die Änderung der Sendeleistung per CAT verzichtet, braucht dann auch keinen virtuellen COM-Port und kann WSJT-X den realen COM-Port zum Transceiver überlassen.
Das Loggen der QSO-Daten wird mit einem Linksklick auf den roten Log-Button ausgelöst. Dabei wird ein Linksklick auf den WSJT-X-Button "Log QSO" simuliert. Als Reaktion auf diesen Klick öffnet WSJT-X das Logfenster, und nach einer kleinen Verzögerung wird ein Linksklick auf den Button "Log" auf diesem Fenster simuliert. Anschließend werden die QSO-Daten aus der Datei 'wsjtx_log.adi' übernommen und in die eiegene SQLite-Datenbank geschrieben. 'wsjtx_log.adi' wird dann gelöscht.
Für die Simulation der Klicks müssen die Screenkoordinaten eines Punktes auf den jeweiligen Buttons bekannt sein. Falls das WSJT-X-Fenster verschoben wird, ändern sich auch die Koordinaten und müüssen neu ermittelt werden.
Auf dem Zusatzfenster gibt es auch eine Anzeige der aktuellen QSO-Nr. Diese ist als Hilfe gedacht z. B. für POTA, um leichter festzustellen, wann die für eine Aktivierung erforderliche QSO-Anzahl erreicht ist.
Al letztes gibt es in der Menüzeile unterhalb der Titelleiste den Menüpunkt "Log", der die letzten 100 QSOs aus dem Log anzeigt.
Quellcode des Zusatzprogramms
kann von der Downloadseite heruntergeladen werden.
Zeitsynchronisation
Die Zeitdifferenz zwischen beiden Stationen soll max. ±1 Sekunde betragen. Um diese Anforderung zu erfüllen, bediene ich mich sowohl im heimischen Shack als auch bei Outdooraktivitäten eines GPS-Empfängers in Verbindung mit dem Programm BktTimeSync von IZ8BKT.
Ich habe den GPS-RX mit der Bezeichnung VK 162 erworben, der im Internet zu Preisen um die 15 € erhältlich ist. Das Anschlusskabel ist bei mir knapp 2m lang und hat einen USB-A-Stecker. Nach Anschluss an den (Windows-) PC erscheint im Geräte-Manager unter Anschlüsse ein zusätzlicher serieller Port mit der Bezeichnung "Serielles USB-Gerät (COMX)", wobei X für eine beliebige Zahl steht. Bei mir ist es 6.
Dann braucht man noch die Software, mit der nicht nur die Zeitsychronisation mit GPS-RX möglich ist, sondern auch via Internet-Zeitserver.
Bei einer geplanten Outdooraktivität ist es ratsam, den GPS-RX vorher schon mal laufen zu lassen, damit die Zeit bis zur Synchronisierung nicht zu lange dauert.