mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-08-23 18:47:34 +02:00
added favicon and finished the audit of the manual
This commit is contained in:
@@ -6,6 +6,7 @@ on:
|
||||
- main
|
||||
paths:
|
||||
- "src/**"
|
||||
- "packaging/icons/**"
|
||||
- "pom.xml"
|
||||
- "mvnw"
|
||||
- "mvnw.cmd"
|
||||
@@ -62,7 +63,16 @@ jobs:
|
||||
shell: pwsh
|
||||
run: |
|
||||
New-Item -ItemType Directory -Force -Path dist | Out-Null
|
||||
jpackage --type app-image --name praktiKST --input target/dist-libs --main-jar app.jar --main-class kst4contest.view.Kst4ContestApplication --module-path target/dist-libs --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec --dest dist
|
||||
jpackage `
|
||||
--type app-image `
|
||||
--name praktiKST `
|
||||
--icon packaging/icons/kst4contest.ico `
|
||||
--input target/dist-libs `
|
||||
--main-jar app.jar `
|
||||
--main-class kst4contest.view.Kst4ContestApplication `
|
||||
--module-path target/dist-libs `
|
||||
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec `
|
||||
--dest dist
|
||||
|
||||
- name: Create Windows ZIP
|
||||
shell: pwsh
|
||||
@@ -113,6 +123,7 @@ jobs:
|
||||
jpackage \
|
||||
--type app-image \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -198,6 +209,7 @@ jobs:
|
||||
jpackage \
|
||||
--type deb \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -257,6 +269,7 @@ jobs:
|
||||
jpackage \
|
||||
--type rpm \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -318,6 +331,7 @@ jobs:
|
||||
jpackage \
|
||||
--type app-image \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -436,6 +450,7 @@ jobs:
|
||||
jpackage \
|
||||
--type app-image \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -623,6 +638,7 @@ jobs:
|
||||
jpackage \
|
||||
--type dmg \
|
||||
--name KST4Contest \
|
||||
--icon packaging/icons/kst4contest.icns \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -646,4 +662,4 @@ jobs:
|
||||
with:
|
||||
name: macos-dmg-${{ matrix.os }}
|
||||
path: dist/KST4Contest-*-macos-*.dmg
|
||||
retention-days: 14
|
||||
retention-days: 14
|
||||
@@ -46,7 +46,16 @@ jobs:
|
||||
shell: pwsh
|
||||
run: |
|
||||
New-Item -ItemType Directory -Force -Path dist | Out-Null
|
||||
jpackage --type app-image --name praktiKST --input target/dist-libs --main-jar app.jar --main-class kst4contest.view.Kst4ContestApplication --module-path target/dist-libs --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec --dest dist
|
||||
jpackage `
|
||||
--type app-image `
|
||||
--name praktiKST `
|
||||
--icon packaging/icons/kst4contest.ico `
|
||||
--input target/dist-libs `
|
||||
--main-jar app.jar `
|
||||
--main-class kst4contest.view.Kst4ContestApplication `
|
||||
--module-path target/dist-libs `
|
||||
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec `
|
||||
--dest dist
|
||||
|
||||
- name: Create Windows ZIP
|
||||
shell: pwsh
|
||||
@@ -90,6 +99,7 @@ jobs:
|
||||
jpackage \
|
||||
--type app-image \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -168,6 +178,7 @@ jobs:
|
||||
jpackage \
|
||||
--type deb \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -220,6 +231,7 @@ jobs:
|
||||
jpackage \
|
||||
--type rpm \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -272,6 +284,7 @@ jobs:
|
||||
jpackage \
|
||||
--type app-image \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -381,6 +394,7 @@ jobs:
|
||||
jpackage \
|
||||
--type app-image \
|
||||
--name KST4Contest \
|
||||
--icon src/main/resources/icons/kst4contest.png \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -510,6 +524,7 @@ jobs:
|
||||
jpackage \
|
||||
--type dmg \
|
||||
--name KST4Contest \
|
||||
--icon packaging/icons/kst4contest.icns \
|
||||
--input target/dist-libs \
|
||||
--main-jar app.jar \
|
||||
--main-class kst4contest.view.Kst4ContestApplication \
|
||||
@@ -752,4 +767,4 @@ jobs:
|
||||
release-assets/flatpakref/*.flatpakref,
|
||||
release-assets/macos/KST4Contest-${{ github.ref_name }}-macos-*.dmg,
|
||||
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-en.pdf,
|
||||
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-de.pdf
|
||||
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-de.pdf
|
||||
@@ -1,42 +1,98 @@
|
||||
# KST4Contest
|
||||
|
||||
KST4Contest (also known as pratiKST) is a Java-based chat client for [ON4KST](http://www.on4kst.com/chat), focused on VHF/UHF/SHF contest operation.
|
||||
KST4Contest is a Java-based client for the [ON4KST chat](https://www.on4kst.org/chat/login.php), developed for coordinated VHF, UHF and microwave contest operation.
|
||||
|
||||
## Website
|
||||
The application is developed by Marc Fröhlich (DO5AMF) and since 2026 Philipp Wagner (DN9APW).
|
||||
|
||||
The offical Website of KST4Contest is now instead of [do5amf.funkerportal.de](https://do5amf.funkerportal.de) the new website [here](https://kst4contest.hamradioonline.de) [https://kst4contest.hamradioonline.de](https://kst4contest.hamradioonline.de)
|
||||
## Start here
|
||||
|
||||
- [Project website](https://kst4contest.hamradioonline.de/)
|
||||
- [Download Stable, Beta and Nightly builds](https://kst4contest.hamradioonline.de/download/)
|
||||
- [Online manual](https://kst4contest.hamradioonline.de/manual/)
|
||||
- [GitHub wiki](https://github.com/praktimarc/kst4contest/wiki)
|
||||
- [Issues and bug reports](https://github.com/praktimarc/kst4contest/issues)
|
||||
- [Development roadmap](https://kst4contest.hamradioonline.de/roadmap/)
|
||||
|
||||
## What KST4Contest does
|
||||
|
||||
KST4Contest combines the ON4KST chat with information that is useful when coordinating contacts during a contest.
|
||||
|
||||
Among other things, it can:
|
||||
|
||||
- display and filter stations from the supported ON4KST chat categories;
|
||||
- derive band and frequency information from chat messages and station names;
|
||||
- maintain Worked and NOT QRV information for the available bands;
|
||||
- calculate station priorities from distance, activity and other available information;
|
||||
- manage internal skeds and received Win-Test skeds;
|
||||
- use AirScout information when evaluating possible aircraft-scatter contacts;
|
||||
- display stations, paths and additional propagation information on maps;
|
||||
- exchange information with supported logging programs, Win-Test, PSTRotator and a local DX Cluster interface;
|
||||
- provide configurable automatic replies for recurring chat requests.
|
||||
|
||||
Calculated scores, aircraft-scatter information and path assessments are operating aids. They depend on the available data and should not be treated as guarantees that a contact is possible.
|
||||
|
||||
## Installation
|
||||
|
||||
Ready-to-use packages are available for Windows, Linux and macOS. These packages include the required Java runtime, so a separate Java installation is normally not necessary.
|
||||
|
||||
Use the central download page to select the appropriate build:
|
||||
|
||||
- **Stable** is intended for normal contest operation.
|
||||
- **Beta** contains changes that are being prepared for a stable release.
|
||||
- **Nightly** contains the latest automated development build and is mainly intended for testing.
|
||||
|
||||
[Open the download page](https://kst4contest.hamradioonline.de/download/)
|
||||
|
||||
## Documentation
|
||||
|
||||
The full user documentation is maintained in the project wiki:
|
||||
The documentation is available in German and English:
|
||||
|
||||
- https://github.com/praktimarc/kst4contest/wiki
|
||||
- [German manual](https://github.com/praktimarc/kst4contest/wiki/de-Home)
|
||||
- [English manual](https://github.com/praktimarc/kst4contest/wiki/en-Home)
|
||||
- [Online manual](https://kst4contest.hamradioonline.de/manual/)
|
||||
|
||||
Direct entry points:
|
||||
The Markdown sources used for the wiki and the generated PDF manuals are stored in [`github_docs`](github_docs/).
|
||||
|
||||
- German start page: https://github.com/praktimarc/kst4contest/wiki/de-Home
|
||||
- English start page: https://github.com/praktimarc/kst4contest/wiki/en-Home
|
||||
Changes to operating behaviour should be documented together with their purpose and limitations. This is especially important for functions whose result depends on external data, heuristics or information derived from chat messages.
|
||||
|
||||
## Build
|
||||
## Building from source
|
||||
|
||||
Compile locally with Maven Wrapper:
|
||||
Building KST4Contest requires JDK 21. The Maven Wrapper included in the repository should be used, so a separate Maven installation is not required.
|
||||
|
||||
Linux and macOS:
|
||||
|
||||
```bash
|
||||
./mvnw clean test
|
||||
./mvnw -B -DskipTests compile
|
||||
```
|
||||
|
||||
## Notes
|
||||
Windows:
|
||||
|
||||
- Source code is under `src/`.
|
||||
- Documentation markdown pages for wiki/PDF are under `github_docs/`.
|
||||
```powershell
|
||||
mvnw.cmd clean test
|
||||
mvnw.cmd -B -DskipTests compile
|
||||
```
|
||||
|
||||
## Status of the latest CI:
|
||||
Wiki Publishing:
|
||||
## Repository structure
|
||||
|
||||
- `src/main/java/` – application source code
|
||||
- `src/test/` – automated tests
|
||||
- `github_docs/` – German and English manual sources
|
||||
- `website/` – project website sources
|
||||
- `packaging/` – platform-specific packaging files
|
||||
|
||||
## CI status
|
||||
|
||||
### Documentation
|
||||
|
||||
[](https://github.com/praktimarc/kst4contest/actions/workflows/github-wiki.yml)
|
||||
|
||||
[](https://github.com/praktimarc/kst4contest/actions/workflows/docs-pdf.yml)
|
||||
|
||||
Builds:
|
||||
### Builds
|
||||
|
||||
[](https://github.com/praktimarc/kst4contest/actions/workflows/nightly-artifacts.yml)
|
||||
|
||||
## License
|
||||
|
||||
KST4Contest is distributed under the [GNU General Public License v3.0](LICENSE).
|
||||
+26
-6
@@ -1,10 +1,13 @@
|
||||
# KST4Contest
|
||||
# KST4Contest Manual / Handbuch
|
||||
|
||||
KST4Contest is a desktop client for the [ON4KST Chat](https://www.on4kst.org/chat/login.php), developed for VHF, UHF and SHF contest operation. It combines chat, candidate selection, sked planning, aircraft scatter information and connections to logging and station software.
|
||||
KST4Contest is a desktop client for the [ON4KST Chat](https://www.on4kst.org/chat/login.php), developed for VHF, UHF and SHF contest operation. It combines chat, candidate selection, sked planning, aircraft-scatter information, station mapping and connections to logging and station software.
|
||||
|
||||
KST4Contest ist ein Desktop-Client für den [ON4KST-Chat](https://www.on4kst.org/chat/login.php), der für den Contest-Betrieb auf den VHF-, UHF- und SHF-Bändern entwickelt wurde. Er verbindet Chat, Stationsauswahl, Sked-Planung, Aircraft-Scatter-Daten sowie die Anbindung an Log- und Stationssoftware.
|
||||
KST4Contest ist ein Desktop-Client für den [ON4KST-Chat](https://www.on4kst.org/chat/login.php), der für den Contest-Betrieb auf den VHF-, UHF- und SHF-Bändern entwickelt wurde. Er verbindet Chat, Stationsauswahl, Sked-Planung, Aircraft-Scatter-Daten, Stationskarte sowie die Anbindung an Log- und Stationssoftware.
|
||||
|
||||
Developed by / Entwickelt von **DO5AMF (Marc Fröhlich)**, operator at / Operator bei DM5M.
|
||||
Developed by / Entwickelt von:
|
||||
|
||||
- **DO5AMF (Marc Fröhlich)**, operator at / Operator bei **DM5M**
|
||||
- **DN9APW (Philipp Wagner)**, developer since / Entwickler seit Mai 2025
|
||||
|
||||
---
|
||||
|
||||
@@ -14,12 +17,29 @@ Developed by / Entwickelt von **DO5AMF (Marc Fröhlich)**, operator at / Operato
|
||||
|---|---|
|
||||
| [Deutsches Handbuch](de-Home) | [English manual](en-Home) |
|
||||
|
||||
Both versions follow the same structure and describe the same application state.
|
||||
Beide Sprachfassungen verwenden dieselbe Struktur und beschreiben denselben Programmstand.
|
||||
|
||||
---
|
||||
|
||||
## Start here / Hier beginnen
|
||||
|
||||
- [Download Stable, Beta or Nightly / Stable, Beta oder Nightly herunterladen](https://kst4contest.hamradioonline.de/download/)
|
||||
- [Online manual / Online-Handbuch](https://kst4contest.hamradioonline.de/manual/)
|
||||
- [Installation](de-Installation) / [Installation](en-Installation)
|
||||
- [Configuration](en-Configuration) / [Konfiguration](de-Konfiguration)
|
||||
|
||||
The Stable version is the normal choice for contest operation. Beta and Nightly builds are intended for testing particular changes and may contain functions which have not yet been released as Stable.
|
||||
|
||||
Für den normalen Contestbetrieb ist die Stable-Version vorgesehen. Beta- und Nightly-Builds dienen dem gezielten Test neuer Änderungen und können Funktionen enthalten, die noch nicht als Stable veröffentlicht wurden.
|
||||
|
||||
---
|
||||
|
||||
## Project links / Projektlinks
|
||||
|
||||
- [Project website / Projektwebseite](https://kst4contest.hamradioonline.de/)
|
||||
- [Download the current stable release / Aktuelle stabile Version herunterladen](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||
- [Downloads](https://kst4contest.hamradioonline.de/download/)
|
||||
- [Source code / Quellcode](https://github.com/praktimarc/kst4contest)
|
||||
- [GitHub Releases](https://github.com/praktimarc/kst4contest/releases)
|
||||
- [Bug reports and feature requests / Fehler und Funktionswünsche](https://github.com/praktimarc/kst4contest/issues)
|
||||
- [Online manual / Online-Handbuch](https://kst4contest.hamradioonline.de/manual/)
|
||||
- [Development roadmap / Entwicklungsstand](https://kst4contest.hamradioonline.de/roadmap/)
|
||||
+156
-13
@@ -4,25 +4,168 @@
|
||||
|
||||
Versionsverlauf von KST4Contest / PraktiKST.
|
||||
|
||||
Die veröffentlichten Stable-Versionen und ihre Programmpakete stehen unter [GitHub Releases](https://github.com/praktimarc/kst4contest/releases). Zusätzlich enthält diese Seite die Änderungen des aktuellen Entwicklungsstands, soweit sie bereits implementiert und geprüft wurden.
|
||||
|
||||
---
|
||||
|
||||
letzter Changelog bitte aus GitHub entnehmen. Der bisherige Changelog
|
||||
## v1.42 – Nightly / in Entwicklung
|
||||
|
||||
## v1.42 (2026-08)
|
||||
- **QRG-Erkennung präzisiert**: Vollständige und relative Frequenzangaben werden weiterhin erkannt. Nackte dreistellige Zahlen werden nur noch mit erkennbarem Frequenzkontext ausgewertet, damit Signalrapporte, Bandangaben und andere Zahlen keine falsche QRG erzeugen.
|
||||
- **Stationsbezogener Bandkontext**: Bei relativen Frequenzen verwendet KST4Contest zuerst einen höchstens 30 Minuten alten Bandkontext desselben Absenders. Erst danach greift das globale Fallback-Band.
|
||||
- **Fallback-Band als Dropdown**: Das globale Fallback kann nur noch aus den tatsächlich unterstützten Bändern ausgewählt werden und gilt für die gesamte QRG-Erkennung, nicht nur für DX-Cluster-Spots.
|
||||
- **QRG-Anzeige vereinheitlicht**: Frequenzen werden in der Benutzerliste und den Nachrichtentabellen mit mindestens drei Nachkommastellen dargestellt.
|
||||
> Stand dieses Abschnitts: 10. August 2026.
|
||||
> v1.42 ist noch kein veröffentlichtes Stable-Release. Bis zur Freigabe können weitere Änderungen hinzukommen.
|
||||
|
||||
## v1.41
|
||||
**Stationskarte, Performance, Reaktionsfähiges UI**
|
||||
v1.42 führt mehrere bisher getrennte Auswertungen zusammen. Bandinformationen, Worked-Status, NOT-QRV-Markierungen, Rufzeichensuffixe und Frequenzen werden dadurch konsistenter in der Benutzerliste, der Stationskarte, der Prioritätsberechnung und den externen Schnittstellen verwendet.
|
||||
|
||||
**Neu:**
|
||||
- **Stationskarte**: Interaktive OpenStreetMap-Karte zeigt die geografische Position aller aktiven Chatmember. Enthält Stationsmarker, Antennen-Kegel, Verbindungslinie zur ausgewählten Station, Maidenhead-Raster-Overlay und ein Wegprofil-Diagramm mit Geländehöhen-Analyse (Fresnel-Zonen, Horizonterkennung). Geländedaten aus Copernicus GLO-30, Open-Meteo API oder Offline-DEM-Import. Aircraft-Scatter-Weganalyse integriert. Funktioniert in AppImage und Flatpak ohne externe CDN-Verbindung (lokaler Tile-Proxy, eingebettetes Leaflet.js).
|
||||
### Neu
|
||||
|
||||
**Geändert:**
|
||||
- **Nachrichten-Tabellen-Limit auf 30.000 erhöht**: Chat- und Nachrichtentabellen sind auf 30.000 Einträge begrenzt. Ältere Nachrichten werden automatisch verworfen, was die Performance bei mehrtägigem Contest-Betrieb stabil hält.
|
||||
- **Bildschirmgerechte Fenstergröße**: Beim Start wird das Hauptfenster auf den aktuellen Bildschirm angepasst. Wenn KST4Contest zuletzt auf einem größeren Monitor betrieben wurde, wird das Fenster automatisch verkleinert. Das UI-Layout ist kompakter und reaktionsfähiger auf kleineren Bildschirmen.
|
||||
- **Gemeinsame Herleitung verfügbarer Bänder:** Ein zentraler `BandOpportunityResolver` wertet aktuelle QRGs, Bandangaben im Namensfeld, aktive Rufzeichenvarianten, Worked-Informationen und NOT-QRV-Markierungen gemeinsam aus. Benutzerliste, **New bands**, Band-Upgrade-Hinweis, Priority Score, Stationskarte und automatische Bandauswahl verwenden damit dieselbe Grundlage.
|
||||
|
||||
- **Erweiterte Bandanzeige:** Die Bandspalten unterscheiden jetzt:
|
||||
- `X` für auf diesem Band gearbeitet,
|
||||
- `a` für ein angebotenes, noch nicht gearbeitetes Band einer insgesamt neuen Station,
|
||||
- `B+` für ein angebotenes, noch nicht gearbeitetes Band einer bereits auf einem anderen Band gearbeiteten Station und
|
||||
- `o` für ein auf diesem Band bereits gearbeitetes Locator-Großfeld.
|
||||
|
||||
Die Anzeigen können kombiniert werden, beispielsweise als `ao` oder `B+o`. Die zusätzlichen Kennzeichnungen `a` und `o` lassen sich in den GUI-Einstellungen separat ausblenden.
|
||||
|
||||
- **Unterstützung für 50 und 70 MHz:** Beide Bänder stehen in der Stationskonfiguration, den Worked- und NOT-QRV-Funktionen, der Benutzerliste, den Filtern, der internen Datenbank, der UCXLog-Auswertung und dem Win-Test-Listener zur Verfügung. Bereits gespeicherte Datenbanken werden um die benötigten Spalten ergänzt.
|
||||
|
||||
- **Globale Nachrichtentabs:** Öffentliche Nachrichten, ON4KST-DX-Cluster-Meldungen und gerichtete Nachrichten zwischen anderen Stationen können direkt im Hauptfenster angezeigt werden. Das bisherige separate Monitorfenster bleibt zusätzlich verfügbar und verwendet dieselben Nachrichtenspeicher.
|
||||
|
||||
- **Manuelle QTF-Eingabe:** Die aktuelle Antennenrichtung kann auch ohne PSTRotator direkt in KST4Contest geändert werden.
|
||||
|
||||
- **Filter zurücksetzen:** Ein eigener Reset-Button entfernt die aktiven Filterprädikate der Benutzerliste zuverlässig.
|
||||
|
||||
- **Kartencluster:** Räumlich dicht beieinanderliegende Stationen werden bei niedrigen Zoomstufen zusammengefasst. Die ausgewählte Station und relevante Richtungsgelegenheiten bleiben einzeln sichtbar.
|
||||
|
||||
- **Ausblendbare Streckenanalyse:** Geländeprofil und Analysebereich der Stationskarte können vollständig ausgeblendet werden. Die Auswahl wird gespeichert und beim nächsten Programmstart wiederhergestellt.
|
||||
|
||||
### Geändert
|
||||
|
||||
- **QRG-Erkennung präzisiert:** Vollständige und relative Frequenzangaben werden weiterhin erkannt. Nackte dreistellige Zahlen gelten nur noch bei erkennbarem Frequenzkontext als QRG. Signalrapporte, Bandangaben und andere Zahlen erzeugen dadurch seltener falsche Frequenzen.
|
||||
|
||||
- **Stationsbezogener Frequenzkontext:** Bei relativen QRGs verwendet KST4Contest zuerst einen höchstens 30 Minuten alten Bandkontext derselben Station. Erst wenn dieser fehlt, wird das global konfigurierte Fallback-Band verwendet.
|
||||
|
||||
- **Fallback-Band als Dropdown:** Das globale Fallback kann nur noch aus unterstützten Bandwerten ausgewählt werden. Es betrifft die gesamte QRG-Erkennung und nicht nur DX-Cluster-Spots.
|
||||
|
||||
- **Einheitliche QRG-Darstellung:** Frequenzen werden in Benutzer- und Nachrichtentabellen mit mindestens drei Nachkommastellen dargestellt.
|
||||
|
||||
- **Bandabhängige AirScout- und Streckenberechnung:** KST4Contest leitet für jede Station eine möglichst realistische Frequenz aus der aktuellen QRG und den bekannten Bandinformationen ab. AirScout erhält kanonische Bandwerte. Die frühere Zwischenlösung mit 430 MHz wurde durch 432 MHz ersetzt.
|
||||
|
||||
- **Gemeinsame Frequenzherleitung:** AirScout, **Calc selected** und die Pfadanalyse der Stationskarte verwenden denselben `PropagationFrequencyResolver`. Ein im Reachability-Dropdown ausdrücklich gewähltes Band wird bei manuellen Berechnungen berücksichtigt.
|
||||
|
||||
- **Rufzeichenvarianten getrennt verarbeitet:** Aktive Chatmember werden durch das vollständige Rufzeichen einschließlich Suffix und die Chat-Kategorie unterschieden. `DN9APW`, `DN9APW-2` oder vergleichbare Logins bleiben dadurch getrennte Nachrichtenziele.
|
||||
|
||||
- **Gemeinsame Basisinformationen:** Worked-Flags, NOT-QRV-Informationen und der Priority Score werden weiterhin für Varianten desselben Basisrufzeichens gemeinsam ausgewertet. Getrennte Nachrichtenziele führen damit nicht zu widersprüchlichen Worked-Daten.
|
||||
|
||||
- **Priority Score korrigiert:** Stationen ohne gemeinsames verfügbares Band oder mit übersteuernder NOT-QRV-Markierung werden nicht mehr als Prioritätskandidaten angeboten. Bandgelegenheiten bereits gearbeiteter Stationen können einen eigenen Priority Boost erhalten.
|
||||
|
||||
- **Sked-Erstellung erweitert:** Das Band wird aus den lokal aktivierten Bändern gewählt. Für die Win-Test-Übergabe wird `SSB` oder `CW` ausdrücklich ausgewählt, statt den Mode unzuverlässig aus dem Band abzuleiten.
|
||||
|
||||
- **Win-Test-Sked-Übergabe präzisiert:** Die QRG muss zum gewählten Band passen. Sichtbare KST-Suffixe werden für das Logziel entfernt, portable Bestandteile bleiben erhalten und die Zeitangaben der `ADDSKED`-Pakete werden korrekt erzeugt. Ein Fehler bei der Übergabe entfernt den internen KST4Contest-Sked nicht.
|
||||
|
||||
- **Exakte Sked-Ziele:** Timeline und automatische Erinnerungen verwenden das vollständige sichtbare KST-Rufzeichen. Ein Sked für `DN9APW-2` wird nicht versehentlich an eine andere Variante desselben Basisrufzeichens gesendet.
|
||||
|
||||
- **Beacon und Autoantwort überarbeitet:** Beide Chat-Kategorien verwenden einen gemeinsamen Timer, behalten aber getrennte Aktivierungsschalter und Texte. Das zulässige Mindestintervall beträgt zwei Minuten; Nachrichtentexte sind auf 120 Zeichen begrenzt. Die gespeicherte Beacon-Aktivierung wird beim Start aus der Konfiguration übernommen.
|
||||
|
||||
- **Variablen zentral aufgelöst:** Nachrichtenvariablen für Beacons, Shortcuts, Snippets und andere automatisch erzeugte Texte werden über einen gemeinsamen Resolver verarbeitet.
|
||||
|
||||
- **Nachrichtentabellen verbessert:** Abgeschnittene Nachrichtentexte erhalten einen Tooltip mit dem vollständigen Inhalt. Erkannte Webadressen können im Systembrowser geöffnet werden.
|
||||
|
||||
- **Kompaktere Filterleiste:** Die Filter bleiben bei normaler Breite in einer kompakten Anordnung und werden erst dann umgebrochen, wenn der tatsächlich verfügbare Platz nicht mehr ausreicht. Der mittlere Divider kann dadurch weiter verschoben werden.
|
||||
|
||||
- **DXLog-Gesamtlog übernommen:** Der UCXLog-kompatible UDP-Listener verarbeitet neben `contactinfo` auch `contactreplace`. Dadurch kann ein von DXLog.net als vollständiges Log ausgesendeter Datenbestand eingelesen werden.
|
||||
|
||||
- **Versionserkennung verbessert:** Versionsnummern werden semantisch verglichen, damit beispielsweise Patch-Versionen und Nightly-Stände nicht mehr durch eine einfache Fließkommazahl falsch eingeordnet werden.
|
||||
|
||||
### Behoben
|
||||
|
||||
- **Langzeitfehler der Stationsauswahl:** Die vom Message-Thread verwalteten Chatmember wurden von der JavaFX-Ansicht entkoppelt. Gleichzeitige Änderungen der Daten und Tabellenansicht führen dadurch nicht mehr nach längerer Laufzeit zu fehlerhaften Auswahlmodellen oder Concurrent-Modification-Problemen.
|
||||
|
||||
- **Keine Phantom-Chatmember durch UM3:** Historische oder zusätzliche Servermeldungen erzeugen keine Benutzerlisteneinträge für Stationen, die nicht tatsächlich im Chat angemeldet sind.
|
||||
|
||||
- **Nachrichten an Rufzeichen mit Suffix:** Mehrere gleichzeitig angemeldete Varianten desselben Basisrufzeichens überschreiben sich nicht mehr gegenseitig. Damit wurde [Issue #73](https://github.com/praktimarc/kst4contest/issues/73) behoben.
|
||||
|
||||
- **DX-Cluster-Locatoren:** Sender und gemeldete Station erhalten nicht mehr versehentlich denselben Locator. Damit wurde [Issue #48](https://github.com/praktimarc/kst4contest/issues/48) behoben.
|
||||
|
||||
- **Worked-Anzeige in „QSO of the other“:** Die Worked-Spalten verwenden wieder die jeweils richtige sendende beziehungsweise empfangende Station.
|
||||
|
||||
- **Fehlende SECONDAP-Daten:** Eine nicht vorhandene zweite Aircraft-Scatter-Gelegenheit führt beim Bearbeiten der Anzeige nicht mehr zu einer ungültigen Textauswahl und JavaFX-Exception.
|
||||
|
||||
- **Historische Rufzeichen:** Das Hervorheben oder Anklicken eines Rufzeichens, das nicht mehr in der aktuellen Benutzerliste vorhanden ist, läuft nicht mehr in eine Exception.
|
||||
|
||||
- **Win-Test-Sked-Zeit und Rufzeichen:** Zeitstempel, Band-QRG-Zuordnung sowie die Behandlung von KST-Suffixen und portablen Rufzeichen wurden korrigiert.
|
||||
|
||||
- **Filter-Reset:** Alle Filterprädikate werden tatsächlich entfernt; der sichtbare Zustand des Buttons entspricht wieder dem wirksamen Filterzustand.
|
||||
|
||||
### Dokumentation und Auslieferung
|
||||
|
||||
- Das deutsche und englische Handbuch wurde systematisch mit dem Quellcode abgeglichen, erweitert und mit aktuellen Screenshots versehen. Die Dokumentation erklärt nicht nur die Bedienelemente, sondern auch Herleitung, Datenquellen und Grenzen der Funktionen.
|
||||
|
||||
- Für Arch Linux stehen `kst4contest-bin`, `kst4contest` und `kst4contest-git` im AUR zur Verfügung.
|
||||
|
||||
- Die Downloadseite unterscheidet Stable, Beta und Nightly und bietet die jeweils tatsächlich vorhandenen Pakete für Windows, Linux und macOS an.
|
||||
|
||||
- Nightly-Pakete werden automatisiert aus dem aktuellen `main`-Branch gebaut. Stable- und Beta-Releases verwenden reproduzierbare Paketnamen für die unterstützten Plattformen.
|
||||
|
||||
### Bekannte Grenzen
|
||||
|
||||
- Die aktive Geländedatenquelle verwendet Open-Meteo mit Copernicus-GLO-90-Daten und höchstens 100 Höhenpunkten pro Strecke.
|
||||
|
||||
- Der atmosphärische K-Faktor ist derzeit fest auf `4/3` eingestellt.
|
||||
|
||||
- Für die Gegenstation wird eine Antennenhöhe von 10 Metern über Grund angenommen.
|
||||
|
||||
- Aircraft-Scatter-Daten aus AirScout und die Geländeanalyse der Stationskarte sind weiterhin getrennte Bewertungen.
|
||||
|
||||
- Eine genauere Konfiguration von Stationshöhe, Frequenz und K-Faktor wird in [Issue #74](https://github.com/praktimarc/kst4contest/issues/74) weiterverfolgt.
|
||||
|
||||
---
|
||||
|
||||
## v1.41.1 (2026-07-08)
|
||||
|
||||
**Hotfix für Texteingabe und Fokusverhalten**
|
||||
|
||||
### Behoben
|
||||
|
||||
- Das Nachrichteneingabefeld wurde nach einiger Zeit beziehungsweise bei bestimmten UI-Aktualisierungen unerwartet geleert.
|
||||
- Beim Filtern oder Auswählen einer Station wurde der Eingabefokus unbeabsichtigt wieder in das Sendefeld verschoben.
|
||||
|
||||
Die korrigierte Version ist als [Release v1.41.1](https://github.com/praktimarc/kst4contest/releases/tag/v1.41.1) verfügbar.
|
||||
|
||||
---
|
||||
|
||||
|
||||
## v1.41.0 (2026-07-01)
|
||||
|
||||
**Stationskarte, begrenzte Nachrichtenspeicher und bildschirmgerechtes Hauptfenster**
|
||||
|
||||
### Neu
|
||||
|
||||
- **Stationskarte:** Eine interaktive OpenStreetMap-Karte stellt aktive Chatmember mit brauchbarem Locator geografisch dar.
|
||||
|
||||
- **Antennensektor und Verbindungslinie:** Die Karte zeigt den aktuellen eigenen QTF, den konfigurierten Antennen-Öffnungswinkel, das maximale QRB und die Verbindung zur ausgewählten Station.
|
||||
|
||||
- **Maidenhead-Raster:** Ein an die Zoomstufe angepasstes Locator-Raster erleichtert die geografische Einordnung.
|
||||
|
||||
- **Geländeprofil:** Für ausgewählte Stationen kann ein Höhenprofil über die Open-Meteo Elevation API berechnet werden. Die aktive Datenquelle verwendet Copernicus GLO-90 und höchstens 100 gleichmäßig verteilte Abfragepunkte.
|
||||
|
||||
- **Geometrische Streckenanalyse:** Die Auswertung berücksichtigt Sichtlinie, Erdkrümmung mit `k = 4/3`, Radio- und Geländehorizont, erste Fresnel-Zone und eine grobe Hindernisabschätzung.
|
||||
|
||||
- **Lokaler Karten-Proxy:** Leaflet wird mit der Anwendung ausgeliefert. Kartenkacheln werden über einen lokalen Proxy geladen, damit keine externe JavaScript-Bibliothek zur Laufzeit nachgeladen werden muss. Für die OpenStreetMap-Kacheln und die Online-Höhendaten ist weiterhin eine Internetverbindung erforderlich.
|
||||
|
||||
### Geändert
|
||||
|
||||
- **Begrenzte Nachrichtenspeicher:** Die globale Chatnachrichtenliste wird oberhalb von 30.000 Einträgen auf 25.000 verkleinert. Der getrennte DX-Cluster-Speicher wird oberhalb von 10.000 Einträgen auf 8.000 verkleinert.
|
||||
|
||||
- **Bildschirmgerechte Startgröße:** Das Hauptfenster wird beim Start gegen den sichtbaren Bereich des primären Bildschirms geprüft und bei Bedarf verkleinert oder verschoben.
|
||||
|
||||
- **Kompaktere Benutzeroberfläche:** Mehrere Bereiche wurden für kleinere Bildschirme und verstellbare Divider angepasst.
|
||||
|
||||
### Einordnung der Kartenfunktion
|
||||
|
||||
Die Stationskarte und AirScout können dieselbe Gegenstation betreffen, führen aber getrennte Berechnungen durch. Aircraft-Scatter-Flugzeuge werden nicht in das Geländeprofil eingerechnet.
|
||||
|
||||
Im Quellcode vorhandene Klassen für Copernicus GLO-30, Offline-DEM-Import und weitere Terrain-Provider waren in v1.41 nicht Bestandteil der aktiv verwendeten Berechnungskette. Die tatsächlich verwendete Online-Höhenquelle ist Open-Meteo auf Basis von Copernicus GLO-90.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+20
-9
@@ -50,15 +50,15 @@ Download, unterstützte Betriebssysteme und Installationswege sind im Kapitel [I
|
||||
|
||||
## Versionsstand dieses Handbuchs
|
||||
|
||||
Dieses Handbuch beschreibt die stabile Version **v1.41.1**.
|
||||
Dieses Handbuch unterscheidet zwischen der veröffentlichten Stable-Version und dem aktuellen Entwicklungsstand.
|
||||
|
||||
Funktionen oder Änderungen, die nur im aktuellen Entwicklungsstand enthalten sind, werden ausdrücklich als **Nightly / v1.42** gekennzeichnet. Fehlt eine solche Kennzeichnung, bezieht sich die Beschreibung auf die stabile Version.
|
||||
Die derzeit veröffentlichte Stable-Version ist **v1.41.1**. Funktionen oder Änderungen, die erst im Entwicklungsstand für v1.42 enthalten sind, werden ausdrücklich als **Nightly / v1.42** gekennzeichnet. Fehlt eine solche Kennzeichnung, bezieht sich die Beschreibung auf die Stable-Version.
|
||||
|
||||
- [Aktuelle stabile Version herunterladen](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||
- [Nightly-Builds und automatisierte Builds](https://github.com/praktimarc/kst4contest/actions)
|
||||
- [Versionsgeschichte](de-Changelog)
|
||||
- [Stable, Beta und Nightly herunterladen](https://kst4contest.hamradioonline.de/download/)
|
||||
- [Veröffentlichte GitHub Releases](https://github.com/praktimarc/kst4contest/releases)
|
||||
- [Versionsgeschichte und aktueller Nightly-Stand](de-Changelog)
|
||||
|
||||
Für einen Contest ist grundsätzlich die stabile Version zu empfehlen. Nightly-Builds enthalten neuere Korrekturen und Funktionen, können sich aber zwischen zwei Builds verändern. Sie sind sinnvoll, wenn eine bestimmte Änderung getestet werden soll – weniger sinnvoll ist der erste Versuch zehn Minuten vor Contestbeginn.
|
||||
Für einen Contest ist grundsätzlich die Stable-Version zu empfehlen. Nightly-Builds enthalten neuere Korrekturen und Funktionen, können sich aber zwischen zwei Builds verändern. Sie sind sinnvoll, wenn eine konkrete Änderung getestet werden soll. Der erste Versuch zehn Minuten vor Contestbeginn ist dagegen meistens eine recht effiziente Methode, gleichzeitig Software und Operator zu testen.
|
||||
|
||||
---
|
||||
|
||||
@@ -80,7 +80,7 @@ Für einen Contest ist grundsätzlich die stabile Version zu empfehlen. Nightly-
|
||||
|
||||
## Kontakt und Support
|
||||
|
||||
- **Download:** [Aktuelle stabile Version](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||
- **Download:** [Stable, Beta und Nightly](https://kst4contest.hamradioonline.de/download/)
|
||||
- **Quellcode:** [praktimarc/kst4contest](https://github.com/praktimarc/kst4contest)
|
||||
- **Fehler und Funktionswünsche:** [GitHub Issues](https://github.com/praktimarc/kst4contest/issues)
|
||||
- **E-Mail:** praktimarc+kst4contest@gmail.com
|
||||
@@ -112,6 +112,17 @@ In Datei- und Verzeichnisnamen wird teilweise noch der technische Name `praktiKS
|
||||
|
||||
## Danksagungen
|
||||
|
||||
KST4Contest wurde durch Rückmeldungen aus dem praktischen Contest-Betrieb wesentlich verbessert.
|
||||
KST4Contest wurde durch Rückmeldungen aus dem praktischen Contest-Betrieb wesentlich verbessert. Viele Funktionen entstanden nicht aus einer theoretischen Anforderungsliste, sondern aus Situationen, in denen während eines Contests eine Information fehlte, zu spät sichtbar wurde oder schlicht an der falschen Stelle stand.
|
||||
|
||||
Besonderer Dank gilt Gianluca Costantino (IU3OAR), Alessandro Murador (IZ3VTH), Reczetár István (HA1FV), Viliam Petrik (OM0AAO, Idee zum DX-Cluster), Konrad Neitzel (DC9DJ, Projektstruktur), Andreas (DO5ALF, Webmaster von funkerportal.de), Franz van Velzen (PE0WGA, Tester), DN9APW als neuem Entwickler im Team und Master über die CI/CD pipelines sowie allen weiteren Testern und Ideengebern.
|
||||
Besonderer Dank gilt:
|
||||
|
||||
- Gianluca Costantino (IU3OAR),
|
||||
- Alessandro Murador (IZ3VTH),
|
||||
- Reczetár István (HA1FV),
|
||||
- Viliam Petrik (OM0AAO) für die Idee zum integrierten DX-Cluster,
|
||||
- Konrad Neitzel (DC9DJ) für Unterstützung bei der Projektstruktur,
|
||||
- Andreas (DO5ALF), Webmaster von funkerportal.de,
|
||||
- Franz van Velzen (PE0WGA) für Tests sowie
|
||||
- DN9APW (Philipp Wagner), der seit Mai 2025 an der Entwicklung und den CI/CD-Pipelines mitarbeitet.
|
||||
|
||||
Ebenso wichtig sind die Fehlermeldungen, Tests und konkreten Betriebserfahrungen aller weiteren Nutzer. Eine genaue Beschreibung eines reproduzierbaren Problems hilft dem Projekt meistens mehr als ein allgemeines „läuft gut“ – auch wenn Letzteres natürlich angenehmer zu lesen ist.
|
||||
|
||||
+161
-13
@@ -4,22 +4,170 @@
|
||||
|
||||
Version history of KST4Contest / PraktiKST.
|
||||
|
||||
---
|
||||
|
||||
For the latest changelog, please refer to GitHub. The previous changelog is below.
|
||||
|
||||
## v1.41
|
||||
**Station Map, Performance, Responsive UI**
|
||||
|
||||
**New:**
|
||||
- **Station Map**: Interactive OpenStreetMap-based map showing the geographic position of all active chat members. Includes station markers, antenna beam cone, connection line to the selected station, Maidenhead grid overlay, and a path profile chart with terrain elevation analysis (Fresnel zones, horizon detection). Terrain data from Copernicus GLO-30, Open-Meteo API, or offline DEM import. Aircraft scatter path analysis integrated. Works in AppImage and Flatpak without external CDN access (local tile proxy, bundled Leaflet.js).
|
||||
|
||||
**Changed:**
|
||||
- **Message table limit raised to 30,000**: Chat and message tables are capped at 30,000 entries. Older messages are automatically discarded, keeping performance stable during multi-day contest operations.
|
||||
- **Screen-aware window sizing**: On startup, the main window is sized to fit the current screen. If KST4Contest was last used on a larger monitor, the window is automatically scaled down. The UI layout is more compact and responsive on smaller screens.
|
||||
Published Stable versions and their application packages are available under [GitHub Releases](https://github.com/praktimarc/kst4contest/releases). This page also lists changes from the current development version where they have already been implemented and tested.
|
||||
|
||||
---
|
||||
|
||||
## v1.42 – Nightly / in development
|
||||
|
||||
> Status of this section: 10 August 2026.
|
||||
> v1.42 is not a published Stable release yet. Further changes may be added before release.
|
||||
|
||||
v1.42 brings several previously separate calculations together. Band information, Worked status, NOT-QRV marks, callsign suffixes and frequencies are now used more consistently by the user list, station map, priority calculation and external interfaces.
|
||||
|
||||
### Added
|
||||
|
||||
- **Shared band-opportunity calculation:** A central `BandOpportunityResolver` evaluates recent QRGs, band designators in station names, active callsign variants, Worked information and NOT-QRV marks. The user list, **New bands**, band-upgrade hint, Priority Score, station map and automatic band selection now use the same basis.
|
||||
|
||||
- **Extended band status display:** The band columns now distinguish:
|
||||
- `X` for worked on this band,
|
||||
- `a` for an offered and unworked band of a completely new callsign,
|
||||
- `B+` for an offered and unworked band of a callsign already worked elsewhere, and
|
||||
- `o` for a locator square already worked on this band.
|
||||
|
||||
The codes can be combined, for example as `ao` or `B+o`. The additional `a` and `o` indicators can be hidden separately in the GUI settings.
|
||||
|
||||
- **50 and 70 MHz support:** Both bands are available in station settings, Worked and NOT-QRV handling, the user list, filters, the internal database, UCXLog processing and the Win-Test listener. Existing databases are extended with the required columns.
|
||||
|
||||
- **Global message tabs:** Public messages, ON4KST DX cluster messages and directed messages between other stations can be displayed directly in the main window. The existing separate monitor window remains available and uses the same underlying message stores.
|
||||
|
||||
- **Manual QTF input:** The current antenna direction can be changed directly in KST4Contest when PSTRotator is not being used.
|
||||
|
||||
- **Filter reset:** A dedicated reset button reliably removes the active user-list filter predicates.
|
||||
|
||||
- **Map clustering:** Stations close to each other are grouped at lower zoom levels. The selected station and relevant direction opportunities remain individually visible.
|
||||
|
||||
- **Hideable path analysis:** The terrain profile and analysis section of the station map can be hidden completely. The selected state is stored and restored at the next application start.
|
||||
|
||||
### Changed
|
||||
|
||||
- **More precise QRG recognition:** Complete and relative frequency references continue to be recognised. Bare three-digit numbers are treated as QRGs only when a frequency context is available. Signal reports, band designators and unrelated numbers therefore produce fewer false frequencies.
|
||||
|
||||
- **Station-specific frequency context:** For relative QRGs, KST4Contest first uses a band context for the same station which is no more than 30 minutes old. The globally configured fallback band is used only when this context is unavailable.
|
||||
|
||||
- **Fallback band dropdown:** The global fallback can only be selected from supported band values. It applies to the complete QRG parser, not merely to DX cluster spots.
|
||||
|
||||
- **Consistent QRG formatting:** Frequencies are displayed with at least three decimal places in the user list and message tables.
|
||||
|
||||
- **Band-aware AirScout and path calculations:** KST4Contest derives a realistic frequency for each station from its current QRG and known band information. AirScout receives canonical band values. The temporary 430 MHz fallback has been replaced with 432 MHz.
|
||||
|
||||
- **Shared propagation-frequency selection:** AirScout, **Calc selected** and the station-map path analysis use the same `PropagationFrequencyResolver`. A band selected explicitly in the Reachability dropdown is respected for manual calculations.
|
||||
|
||||
- **Separate callsign variants:** Active chat members are distinguished by their complete callsign, including suffix, and by chat category. `DN9APW`, `DN9APW-2` and similar logins therefore remain separate message targets.
|
||||
|
||||
- **Shared base-callsign information:** Worked flags, NOT-QRV information and Priority Scores continue to be evaluated across variants of the same base callsign. Separate message targets no longer result in contradictory Worked information.
|
||||
|
||||
- **Corrected Priority Score eligibility:** Stations without a common available band, or with an overriding NOT-QRV mark, are no longer offered as priority candidates. An open band at a station already worked elsewhere can receive a separate Priority Boost.
|
||||
|
||||
- **Extended sked creation:** The band is selected from those enabled locally. `SSB` or `CW` is selected explicitly for the Win-Test handover instead of attempting to infer the mode unreliably from the band.
|
||||
|
||||
- **More precise Win-Test sked handover:** The QRG must belong to the selected band. Visible KST suffixes are removed for the logging target while portable callsign components are preserved. `ADDSKED` timestamps are generated correctly. A failed handover does not remove the internal KST4Contest sked.
|
||||
|
||||
- **Exact sked targets:** The timeline and automatic reminders use the complete visible KST callsign. A sked for `DN9APW-2` is not accidentally sent to another variant of the same base callsign.
|
||||
|
||||
- **Reworked beacon and automatic replies:** Both chat categories use one shared timer while retaining separate enable switches and message texts. The minimum permitted interval is two minutes and message texts are limited to 120 characters. The stored beacon state is restored from the configuration at startup.
|
||||
|
||||
- **Central variable resolution:** Message variables used by beacons, shortcuts, snippets and other generated text are processed by one shared resolver.
|
||||
|
||||
- **Improved message tables:** Truncated messages show their complete text in a tooltip. Recognised web addresses can be opened in the system browser.
|
||||
|
||||
- **More compact filter bar:** Filters retain their compact arrangement at normal widths and wrap only when the available space is genuinely insufficient. This allows the centre divider to be moved further to the right.
|
||||
|
||||
- **DXLog full-log import:** In addition to `contactinfo`, the UCXLog-compatible UDP listener processes `contactreplace`. This allows a complete log broadcast by DXLog.net to be imported.
|
||||
|
||||
- **Improved version comparison:** Versions are compared semantically so that patch releases and Nightly versions are not misclassified by conversion to a floating-point number.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Long-running station-selection failure:** Chat members managed by the message thread have been decoupled from the JavaFX view. Simultaneous data and table updates therefore no longer cause broken selection models or concurrent-modification problems after longer runtimes.
|
||||
|
||||
- **No phantom chat members from UM3:** Historical or additional server messages no longer create user-list entries for stations which are not actually logged into the chat.
|
||||
|
||||
- **Messages to callsigns with suffixes:** Several active variants of the same base callsign no longer overwrite each other. This resolves [Issue #73](https://github.com/praktimarc/kst4contest/issues/73).
|
||||
|
||||
- **DX cluster locators:** The reporting and reported station no longer receive the same locator accidentally. This resolves [Issue #48](https://github.com/praktimarc/kst4contest/issues/48).
|
||||
|
||||
- **Worked state in “QSO of the other”:** The Worked columns again use the correct transmitting and receiving station.
|
||||
|
||||
- **Missing SECONDAP data:** A missing second aircraft-scatter opportunity no longer produces an invalid text selection and JavaFX exception when the field is edited.
|
||||
|
||||
- **Historical callsigns:** Highlighting or selecting a callsign which is no longer present in the active user list no longer causes an exception.
|
||||
|
||||
- **Win-Test sked time and callsign handling:** Timestamps, band-to-QRG assignment, KST suffixes and portable callsigns are handled correctly.
|
||||
|
||||
- **Filter reset:** All filter predicates are actually removed, and the visible button state again matches the effective filter state.
|
||||
|
||||
### Documentation and packaging
|
||||
|
||||
- The German and English manuals have been systematically checked against the source code, extended and supplied with current screenshots. The documentation now describes not only the controls, but also how information is derived and where the limits of a result lie.
|
||||
|
||||
- The AUR provides `kst4contest-bin`, `kst4contest` and `kst4contest-git` for Arch Linux.
|
||||
|
||||
- The download page distinguishes between Stable, Beta and Nightly and offers only packages which actually belong to the corresponding channel.
|
||||
|
||||
- Nightly packages are built automatically from the current `main` branch. Stable and Beta releases use predictable asset names for the supported platforms.
|
||||
|
||||
### Known limitations
|
||||
|
||||
- The active terrain provider uses Open-Meteo with Copernicus GLO-90 data and no more than 100 elevation samples per path.
|
||||
|
||||
- The atmospheric K factor is currently fixed at `4/3`.
|
||||
|
||||
- An antenna height of 10 metres above ground is assumed for the remote station.
|
||||
|
||||
- Aircraft-scatter information from AirScout and the terrain analysis in the station map remain separate assessments.
|
||||
|
||||
- More detailed configuration of station height, frequency and K factor is being tracked in [Issue #74](https://github.com/praktimarc/kst4contest/issues/74).
|
||||
|
||||
---
|
||||
|
||||
## v1.41.1 (2026-07-08)
|
||||
|
||||
**Hotfix for text input and focus handling**
|
||||
|
||||
### Fixed
|
||||
|
||||
- The message input field was unexpectedly cleared after some time or during particular UI updates.
|
||||
- Filtering or selecting a station could move the input focus back to the send field unintentionally.
|
||||
|
||||
The corrected version is available as [Release v1.41.1](https://github.com/praktimarc/kst4contest/releases/tag/v1.41.1).
|
||||
|
||||
---
|
||||
## v1.41.0 (2026-07-01)
|
||||
|
||||
**Station map, bounded message stores and screen-aware main window**
|
||||
|
||||
### Added
|
||||
|
||||
- **Station map:** An interactive OpenStreetMap-based map displays active chat members for which a usable locator is available.
|
||||
|
||||
- **Antenna sector and connection line:** The map shows the current local QTF, configured antenna beamwidth, maximum QRB and the path to the selected station.
|
||||
|
||||
- **Maidenhead grid:** A locator grid adapted to the current zoom level provides geographical orientation.
|
||||
|
||||
- **Terrain profile:** An elevation profile for a selected station can be requested from the Open-Meteo Elevation API. The active source uses Copernicus GLO-90 data and no more than 100 evenly distributed samples.
|
||||
|
||||
- **Geometrical path analysis:** The calculation includes line of sight, Earth curvature using `k = 4/3`, radio and terrain horizons, the first Fresnel zone and a rough obstruction estimate.
|
||||
|
||||
- **Local map proxy:** Leaflet is bundled with the application. Map tiles are loaded through a local proxy so that no external JavaScript library is required at runtime. An Internet connection is still required for OpenStreetMap tiles and online elevation data.
|
||||
|
||||
### Changed
|
||||
|
||||
- **Bounded message stores:** The global chat-message list is reduced from more than 30,000 entries to 25,000. The separate DX cluster store is reduced from more than 10,000 entries to 8,000.
|
||||
|
||||
- **Screen-aware startup size:** The main window is checked against the visible area of the primary screen at startup and reduced or repositioned when necessary.
|
||||
|
||||
- **More compact user interface:** Several UI sections were adapted for smaller displays and movable dividers.
|
||||
|
||||
### Scope of the map function
|
||||
|
||||
The station map and AirScout may refer to the same remote station, but their calculations remain separate. Aircraft used by AirScout are not included in the terrain profile.
|
||||
|
||||
Classes for Copernicus GLO-30, offline DEM imports and additional terrain providers existed in the source tree but were not part of the active calculation chain in v1.41. The elevation source actually used was Open-Meteo based on Copernicus GLO-90.
|
||||
|
||||
---
|
||||
|
||||
|
||||
## v1.40 (2026-02-16)
|
||||
**Major Feature Release: Score System, AP Timeline, Win-Test, PSTRotator**
|
||||
|
||||
|
||||
+66
-13
@@ -704,27 +704,80 @@ In plain terms: the analysis helps to identify plausible paths, obvious obstruct
|
||||
|
||||
## Bounded Message Stores (from v1.41)
|
||||
|
||||
KST4Contest keeps the received chat and DX cluster messages in two separate bounded memory stores. The limits apply to the stored messages, not independently to every table displaying them.
|
||||
During a long contest, KST4Contest may receive tens of thousands of chat and DX cluster messages. If these lists were allowed to grow without limit for the complete runtime, memory consumption would not be the only problem. Filtering, sorting and updating the tables built on top of them would also become increasingly expensive.
|
||||
|
||||
| Message store | Maximum size | Size after automatic cleanup |
|
||||
KST4Contest therefore uses two separate bounded message stores:
|
||||
|
||||
| Message store | Clean-up starts above | Size after clean-up |
|
||||
|---|---:|---:|
|
||||
| Chat messages | 30,000 | 25,000 |
|
||||
| DX cluster messages | 10,000 | 8,000 |
|
||||
| Chat messages | 30,000 entries | 25,000 entries |
|
||||
| DX cluster messages | 10,000 entries | 8,000 entries |
|
||||
|
||||
When a store exceeds its maximum size, the oldest entries are removed until the cleanup size is reached. Newer messages remain available and are displayed first.
|
||||
New messages are inserted at the beginning of the respective list. When the upper limit is exceeded, KST4Contest removes the oldest entries from the end until the specified target size is reached.
|
||||
|
||||
The public-message table, private-message views, station-related message views and **QSO of the other** table are filtered views of the same chat-message store. They do not each retain another 30,000 messages. The DX cluster tab and the separate monitor window likewise share the same DX cluster store.
|
||||
### Why are there two thresholds?
|
||||
|
||||
These message stores are held in memory and are not written to the internal database. After restarting KST4Contest, they are rebuilt from messages received during the new session.
|
||||
The store is not reduced to its maximum size again after every single incoming message. After a clean-up, the chat-message store has room for another 5,000 entries and the DX cluster store for another 2,000.
|
||||
|
||||
KST4Contest therefore removes old entries in batches instead of modifying the end of the list again for every subsequent message. The clean-up runs much less frequently as a result.
|
||||
|
||||
### Which tables share a store?
|
||||
|
||||
The following views are filtered representations of the same global chat-message list:
|
||||
|
||||
- **Public messages**,
|
||||
- the private-message table,
|
||||
- the messages in the **Further Info** panel, and
|
||||
- **QSO of the other**.
|
||||
|
||||
These tables do not each retain another 30,000 messages. When an old chat message is removed from the shared store, it disappears from all views based on that store at the same time.
|
||||
|
||||
The **DXCluster messages** tab and the DX cluster table in the separate monitor window likewise use the same cluster-message store. Opening the additional window neither creates a second message connection nor duplicates the received messages.
|
||||
|
||||
The chat and DX cluster stores are independent of each other. Heavy public-chat traffic therefore does not reduce the capacity available for DX cluster messages, and vice versa.
|
||||
|
||||
### No permanent history
|
||||
|
||||
Both message stores exist in memory only. They are written neither to the internal Worked database nor to another local message file.
|
||||
|
||||
After restarting KST4Contest, the tables begin with empty lists and are rebuilt exclusively from newly received messages. These views are working tools for the current session, not a permanent chat archive.
|
||||
|
||||
---
|
||||
|
||||
## Screen-Aware Window Sizing (from v1.41)
|
||||
## Screen-Aware Main Window Sizing (from v1.41)
|
||||
|
||||
On startup, KST4Contest calculates a screen-aware size for the main window:
|
||||
KST4Contest stores the most recently used size of the main window. This is useful as long as the application is started on a comparable display the next time. If it was previously used on a larger monitor, however, the stored size may extend beyond the visible area of a smaller screen.
|
||||
|
||||
- The stored window size from the previous session is used – but **never larger than the current screen**.
|
||||
- If KST4Contest was last used on a larger monitor, the window is automatically scaled down to fit the current display without clipping.
|
||||
- The UI layout is more **compact and responsive on smaller screens**, showing the same information in less space.
|
||||
KST4Contest therefore checks the stored size against the usable area of the primary screen during startup.
|
||||
|
||||
This prevents unusable oversized windows when switching between machines or monitors.
|
||||
### How is the startup size determined?
|
||||
|
||||
If the stored values are valid, KST4Contest initially uses the last saved height and width. If no usable values are available, the following default size is used:
|
||||
|
||||
- 1,234 pixels wide and
|
||||
- 768 pixels high.
|
||||
|
||||
KST4Contest does not use the complete screen resolution as the available area. It uses the visual bounds reported by JavaFX for the primary screen. Taskbars, docks and similar operating-system areas are already excluded from these bounds.
|
||||
|
||||
An additional safety margin of 40 pixels is subtracted. If the stored width or height exceeds the remaining space, only the affected value is reduced.
|
||||
|
||||
After the user interface has been built with this content size, KST4Contest checks the complete native operating-system window, including its title bar and borders. The window is reduced or moved into the visible area again if necessary.
|
||||
|
||||
This catches two different cases:
|
||||
|
||||
1. The stored content area is larger than the current screen.
|
||||
2. The content area fits, but the complete native window still extends beyond the visible area because of its borders or position.
|
||||
|
||||
### What happens to the layout?
|
||||
|
||||
The complete interface is not scaled proportionally. Instead, the main window receives less space and the UI areas designed for this situation react to the available width.
|
||||
|
||||
The filter bar remains compact at normal window sizes. Its controls wrap into additional rows only when their actual required width no longer fits. The dividers can still be used to distribute the available space between the message and station areas.
|
||||
|
||||
### Limits of the automatic correction
|
||||
|
||||
The check always uses the **primary screen**. It does not restore the previous position on a particular secondary monitor.
|
||||
|
||||
The automatic size restriction currently applies to the main window only. The settings window, the separate cluster and QSO monitor window and other auxiliary windows continue to use their stored sizes without the same additional check against the primary screen.
|
||||
|
||||
In plain terms: the protection mainly prevents the central main window from becoming unusable after moving to a smaller display. It is not a complete window-position manager for a changing multi-monitor setup.
|
||||
+20
-8
@@ -50,15 +50,15 @@ Downloads, supported operating systems and installation methods are described in
|
||||
|
||||
## Manual version
|
||||
|
||||
This manual describes the stable release **v1.41.1**.
|
||||
This manual describes the current stable release of KST4Contest.
|
||||
|
||||
Features or changes that are only available in the current development version are explicitly marked as **Nightly / v1.42**. If no such label is present, the description refers to the stable release.
|
||||
Functions that are only available in a Beta or Nightly build are marked accordingly. If no such note is present, the description applies to the stable release.
|
||||
|
||||
- [Download the current stable release](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||
- [Nightly and automated builds](https://github.com/praktimarc/kst4contest/actions)
|
||||
- [Download Stable, Beta and Nightly builds](https://kst4contest.hamradioonline.de/download/)
|
||||
- [GitHub releases](https://github.com/praktimarc/kst4contest/releases)
|
||||
- [Version history](en-Changelog)
|
||||
|
||||
For contest operation, the stable release is generally the appropriate choice. Nightly builds contain newer fixes and features, but may change between builds. They are useful when a particular change needs testing. Trying one for the first time ten minutes before a contest is less useful.
|
||||
The stable release is normally the appropriate choice for contest operation. Beta and Nightly builds contain newer fixes and functions, but may still change between builds. They are intended for testing specific changes. Ten minutes before a contest is usually not the ideal time for a first test.
|
||||
|
||||
---
|
||||
|
||||
@@ -80,7 +80,7 @@ For contest operation, the stable release is generally the appropriate choice. N
|
||||
|
||||
## Contact and support
|
||||
|
||||
- **Download:** [Current stable release](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||
- **Download:** [Stable, Beta and Nightly builds](https://kst4contest.hamradioonline.de/download/)
|
||||
- **Source code:** [praktimarc/kst4contest](https://github.com/praktimarc/kst4contest)
|
||||
- **Bug reports and feature requests:** [GitHub Issues](https://github.com/praktimarc/kst4contest/issues)
|
||||
- **Email:** praktimarc+kst4contest@gmail.com
|
||||
@@ -112,6 +112,18 @@ Some file and directory names still use the technical name `praktiKST`. They ref
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
KST4Contest has benefited considerably from feedback gathered during actual contest operation.
|
||||
Many functions and corrections in KST4Contest originate from observations made during actual contest operation. Reports that describe not only what happened, but also under which conditions it happened, are particularly useful.
|
||||
|
||||
Special thanks go to Gianluca Costantino (IU3OAR), Alessandro Murador (IZ3VTH), Reczetár István (HA1FV), Viliam Petrik (OM0AAO, DX Cluster idea), Konrad Neitzel (DC9DJ, project structure), Andreas (DO5ALF, webmaster of funkerportal.de), Franz van Velzen (PE0WGA, testing), and all other testers and contributors.
|
||||
Special thanks go to:
|
||||
|
||||
- Gianluca Costantino (IU3OAR)
|
||||
- Alessandro Murador (IZ3VTH)
|
||||
- Reczetár István (HA1FV)
|
||||
- Viliam Petrik (OM0AAO) for the DX Cluster idea
|
||||
- Konrad Neitzel (DC9DJ) for his work on the project structure
|
||||
- Andreas (DO5ALF), webmaster of funkerportal.de
|
||||
- Franz van Velzen (PE0WGA) for testing
|
||||
- Philipp (DN9APW) for further development of KST4Contest and the CI/CD infrastructure
|
||||
- all other testers and contributors who supplied reproducible reports, ideas and corrections
|
||||
|
||||
Not every suggestion can be implemented unchanged. Nevertheless, reports from real operation remain an important basis for deciding which problems should be solved first.
|
||||
@@ -257,9 +257,14 @@ If a message is too long for its table cell, moving the mouse over the cell disp
|
||||
|
||||
## Window Sizes and Dividers
|
||||
|
||||
From **v1.21**, clicking **"Save Settings"** also saves window sizes and divider positions of all panels in the configuration file, which are restored on the next start.
|
||||
When **Save Settings** is clicked, KST4Contest stores the programme-window sizes and the positions of the relevant dividers in the configuration file. These values are reused at the next start.
|
||||
|
||||
The main window is additionally checked against the visible area of the primary screen during startup. If the stored size is too large, KST4Contest reduces and moves the window so that it remains accessible. The complete process is described under [Screen-Aware Main Window Sizing](en-Features#screen-aware-main-window-sizing-from-v141).
|
||||
|
||||
The other programme windows do not currently use this additional size restriction. If, for example, the separate monitor window appears too large after moving to a smaller screen, its size must be corrected manually and stored again using **Save Settings**.
|
||||
|
||||
If the layout has become inconvenient, first move the dividers back to usable positions and save the settings again. Deleting the configuration file also resets the UI values, but it removes the other stored programme settings as well. It should therefore be used only when the interface cannot be restored in another way.
|
||||
|
||||
If you encounter display problems: delete the configuration file → KST4Contest creates new default values.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 264 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
@@ -1,14 +1,66 @@
|
||||
package kst4contest.view;
|
||||
|
||||
import kst4contest.controller.ChatController;
|
||||
import kst4contest.model.ChatMember;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
public class GuiUtils {
|
||||
|
||||
private static final String APPLICATION_ICON_RESOURCE = "/icons/kst4contest.png";
|
||||
|
||||
private static Image applicationIcon;
|
||||
|
||||
/**
|
||||
* Applies the common KST4Contest application icon to a JavaFX stage.
|
||||
*
|
||||
* <p>The icon is loaded only once and reused for all application windows.
|
||||
* A missing icon resource must never prevent a window from opening.</p>
|
||||
*
|
||||
* @param stage stage that should receive the application icon
|
||||
*/
|
||||
public static void applyApplicationIcon(Stage stage) {
|
||||
|
||||
if (stage == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Image icon = getApplicationIcon();
|
||||
|
||||
if (icon != null && !stage.getIcons().contains(icon)) {
|
||||
stage.getIcons().add(icon);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads and caches the common KST4Contest application icon.
|
||||
*
|
||||
* @return application icon or null if the resource is unavailable
|
||||
*/
|
||||
private static Image getApplicationIcon() {
|
||||
|
||||
if (applicationIcon != null) {
|
||||
return applicationIcon;
|
||||
}
|
||||
|
||||
URL iconUrl = GuiUtils.class.getResource(APPLICATION_ICON_RESOURCE);
|
||||
|
||||
if (iconUrl == null) {
|
||||
System.err.println(
|
||||
"Application icon resource not found: "
|
||||
+ APPLICATION_ICON_RESOURCE
|
||||
);
|
||||
return null;
|
||||
}
|
||||
|
||||
applicationIcon = new Image(iconUrl.toExternalForm());
|
||||
return applicationIcon;
|
||||
}
|
||||
|
||||
private static final String PTRN_CALLSIGNSYNTAX = "^(?:[A-Z]{1,2}[0-9]|[0-9][A-Z])[0-9A-Z]{1,3}$";
|
||||
/**
|
||||
* Checks wheter the input value of the String is numeric or not, true if yes
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package kst4contest.view;
|
||||
import kst4contest.utils.VersionUtils;
|
||||
|
||||
import javafx.scene.image.Image;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
@@ -4439,6 +4440,8 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
||||
TextField txt_chatMessageUserInput
|
||||
) {
|
||||
Stage stage = new Stage();
|
||||
GuiUtils.applyApplicationIcon(stage);
|
||||
|
||||
stage.setTitle("Top priority candidates");
|
||||
|
||||
ListView<kst4contest.controller.ScoreService.TopCandidate> listView = new ListView<>();
|
||||
@@ -6376,7 +6379,7 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws InterruptedException, IOException, URISyntaxException {
|
||||
|
||||
|
||||
GuiUtils.applyApplicationIcon(primaryStage);
|
||||
|
||||
VBox pnl_inputAndSendButtons = new VBox(); //gets the sendtext field, send button and the timeline
|
||||
timelineView = new TimelineView();
|
||||
@@ -8505,6 +8508,8 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
||||
* Window Cluster & qso of the other
|
||||
*/
|
||||
clusterAndQSOMonStage = new Stage();
|
||||
GuiUtils.applyApplicationIcon(clusterAndQSOMonStage);
|
||||
|
||||
// clusterAndQSOMonStage.initStyle(StageStyle.UTILITY);
|
||||
clusterAndQSOMonStage.setTitle("Cluster & QSO of the other");
|
||||
SplitPane pnl_directedMSGWin = new SplitPane();
|
||||
@@ -8558,6 +8563,7 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
||||
* Window updates
|
||||
*/
|
||||
stage_updateStage = new Stage();
|
||||
GuiUtils.applyApplicationIcon(stage_updateStage);
|
||||
|
||||
stage_updateStage.setTitle("Update information");
|
||||
|
||||
@@ -8695,6 +8701,8 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
||||
*
|
||||
****************************************************************************/
|
||||
settingsStage = new Stage();
|
||||
GuiUtils.applyApplicationIcon(settingsStage);
|
||||
|
||||
settingsStage.setTitle("Change Client Settings");
|
||||
|
||||
BorderPane optionsPanel = new BorderPane();
|
||||
|
||||
@@ -13,6 +13,7 @@ import javafx.scene.layout.VBox;
|
||||
import javafx.scene.web.WebEngine;
|
||||
import javafx.scene.web.WebView;
|
||||
import javafx.stage.Stage;
|
||||
import kst4contest.view.GuiUtils;
|
||||
import netscape.javascript.JSObject;
|
||||
import kst4contest.ApplicationConstants;
|
||||
import kst4contest.locatorUtils.Location;
|
||||
@@ -179,6 +180,8 @@ public final class StationMapView {
|
||||
|
||||
public StationMapView(ChatPreferences chatPreferences) {
|
||||
this.chatPreferences = Objects.requireNonNull(chatPreferences, "chatPreferences");
|
||||
GuiUtils.applyApplicationIcon(stage);
|
||||
|
||||
try {
|
||||
tileProxyServer = new TileProxyServer();
|
||||
} catch (IOException e) {
|
||||
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 264 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
@@ -1,18 +1,90 @@
|
||||
---
|
||||
layout: base.njk
|
||||
title: KST4Contest Manual
|
||||
description: Online manual for KST4Contest, the contest-optimized ON4KST chat client.
|
||||
description: Technical user manual for KST4Contest, covering installation, station setup, ON4KST operation, AirScout, logger interfaces, path analysis and known limitations.
|
||||
---
|
||||
|
||||
<section class="hero">
|
||||
<span class="eyebrow">Documentation</span>
|
||||
<h1>KST4Contest Manual</h1>
|
||||
|
||||
<p>
|
||||
User documentation for installation, configuration, features,
|
||||
AirScout integration, log synchronization and contest workflow.
|
||||
The manual describes the controls and interfaces of KST4Contest as well as
|
||||
the reasoning behind functions that derive information from chat messages,
|
||||
station data or external programs. Where a result depends on incomplete
|
||||
information, the corresponding limitations are described as well.
|
||||
</p>
|
||||
|
||||
<div class="actions">
|
||||
<a class="button" href="/manual/en/">English Manual</a>
|
||||
<a class="button" href="/manual/en/">English manual</a>
|
||||
<a class="button secondary" href="/manual/de/">Deutsches Handbuch</a>
|
||||
<a class="button ghost" href="/download/">Download KST4Contest</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="section-heading">
|
||||
<span class="eyebrow">Where to start</span>
|
||||
<h2>Select the section that matches your current task</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid">
|
||||
<article class="card">
|
||||
<h3>Install KST4Contest</h3>
|
||||
<p>
|
||||
Select a Stable, Beta or Nightly build and install the application on
|
||||
Windows, Linux or macOS.
|
||||
</p>
|
||||
<div class="actions">
|
||||
<a class="button" href="/download/">Downloads</a>
|
||||
<a class="button secondary" href="/manual/en/installation/">English instructions</a>
|
||||
<a class="button ghost" href="/manual/de/installation/">Deutsche Anleitung</a>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<h3>Configure a station</h3>
|
||||
<p>
|
||||
Set the callsign, locator, available bands, chat categories and the
|
||||
interfaces used in the station setup.
|
||||
</p>
|
||||
<div class="actions">
|
||||
<a class="button secondary" href="/manual/en/configuration/">English configuration</a>
|
||||
<a class="button ghost" href="/manual/de/konfiguration/">Deutsche Konfiguration</a>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<h3>Understand functions and limitations</h3>
|
||||
<p>
|
||||
Read how KST4Contest derives band information, priorities, reachability
|
||||
and other operating aids, and where manual verification is still
|
||||
required.
|
||||
</p>
|
||||
<div class="actions">
|
||||
<a class="button secondary" href="/manual/en/features/">English functions</a>
|
||||
<a class="button ghost" href="/manual/de/funktionen/">Deutsche Funktionen</a>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="cta-panel">
|
||||
<div>
|
||||
<span class="eyebrow">Choosing a build</span>
|
||||
<h2>Stable for operation, Beta or Nightly for testing</h2>
|
||||
<p>
|
||||
The Stable build is normally the appropriate choice for contest
|
||||
operation. Beta and Nightly builds are useful when a specific correction
|
||||
or new function needs to be tested. Test them before the contest rather
|
||||
than during its first minutes.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
<a class="button" href="/download/">Open downloads</a>
|
||||
<a class="button secondary" href="/roadmap/">View roadmap</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
Reference in New Issue
Block a user