Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dfc51aa0ec | ||
|
|
7e0e338159 | ||
|
|
303bb21bd1 | ||
|
|
58341902f7 | ||
|
|
f3a1a73231 | ||
|
|
590ac608cd | ||
|
|
039e64eea0 | ||
|
|
0b6120defc | ||
|
|
756f65e825 | ||
|
|
1de8b77c52 | ||
|
|
6b15b98c12 | ||
|
|
b0c04d2238 | ||
|
|
01a2d95a8a | ||
|
|
db844ef4f7 | ||
|
|
8ee9d59d7a | ||
|
|
e7631ef688 | ||
|
|
08dff3e60d | ||
|
|
b6214fb893 | ||
|
|
823af70caa | ||
|
|
334e5b03a8 |
@@ -6,15 +6,20 @@ on:
|
|||||||
types: [completed]
|
types: [completed]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
env:
|
env:
|
||||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
AUR_SSH_DIR: /tmp/aur-ssh
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-aur-git:
|
update-aur-git:
|
||||||
if: >-
|
if: >-
|
||||||
github.event_name == 'workflow_dispatch' ||
|
github.event_name == 'workflow_dispatch' ||
|
||||||
github.event.workflow_run.conclusion == 'success'
|
github.event.workflow_run.conclusion == 'success'
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: archlinux:latest
|
image: archlinux:latest
|
||||||
|
|
||||||
@@ -24,76 +29,127 @@ jobs:
|
|||||||
pacman -Sy --noconfirm git openssh base-devel
|
pacman -Sy --noconfirm git openssh base-devel
|
||||||
useradd -m builder
|
useradd -m builder
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Mark workspace as safe Git directory
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||||
|
|
||||||
- name: Compute pkgver
|
- name: Compute pkgver
|
||||||
id: ver
|
id: ver
|
||||||
run: |
|
run: |
|
||||||
BASE=$(grep -m1 '<version>' pom.xml \
|
BASE=$(grep -m1 '<version>' pom.xml \
|
||||||
| sed 's/.*<version>\(.*\)<\/version>.*/\1/' | sed 's/[-.]nightly//')
|
| sed 's/.*<version>\(.*\)<\/version>.*/\1/' \
|
||||||
|
| sed 's/[-.]nightly//')
|
||||||
|
|
||||||
GIT_PKGVER="${BASE}.r$(git rev-list --count HEAD).g$(git rev-parse --short HEAD)"
|
GIT_PKGVER="${BASE}.r$(git rev-list --count HEAD).g$(git rev-parse --short HEAD)"
|
||||||
|
|
||||||
|
echo "Computed pkgver: ${GIT_PKGVER}"
|
||||||
echo "pkgver=${GIT_PKGVER}" >> "$GITHUB_OUTPUT"
|
echo "pkgver=${GIT_PKGVER}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Update PKGBUILD
|
- name: Update PKGBUILD
|
||||||
env:
|
env:
|
||||||
PKGVER: ${{ steps.ver.outputs.pkgver }}
|
PKGVER: ${{ steps.ver.outputs.pkgver }}
|
||||||
run: |
|
run: |
|
||||||
sed -i "s/^pkgver=.*/pkgver=${PKGVER}/" packaging/aur/kst4contest-git/PKGBUILD
|
sed -i "s/^pkgver=.*/pkgver=${PKGVER}/" \
|
||||||
|
packaging/aur/kst4contest-git/PKGBUILD
|
||||||
|
|
||||||
- name: Generate .SRCINFO
|
- name: Generate .SRCINFO
|
||||||
run: |
|
run: |
|
||||||
cp -r packaging/aur/kst4contest-git /tmp/kst4contest-git
|
cp -r packaging/aur/kst4contest-git /tmp/kst4contest-git
|
||||||
chown -R builder:builder /tmp/kst4contest-git
|
chown -R builder:builder /tmp/kst4contest-git
|
||||||
su builder -c "cd /tmp/kst4contest-git && makepkg --printsrcinfo > .SRCINFO"
|
|
||||||
cp /tmp/kst4contest-git/.SRCINFO packaging/aur/kst4contest-git/.SRCINFO
|
su builder -c \
|
||||||
|
"cd /tmp/kst4contest-git && makepkg --printsrcinfo > .SRCINFO"
|
||||||
|
|
||||||
|
cp /tmp/kst4contest-git/.SRCINFO \
|
||||||
|
packaging/aur/kst4contest-git/.SRCINFO
|
||||||
|
|
||||||
|
echo "Generated .SRCINFO:"
|
||||||
cat packaging/aur/kst4contest-git/.SRCINFO
|
cat packaging/aur/kst4contest-git/.SRCINFO
|
||||||
|
|
||||||
- name: Commit updated PKGBUILD to repo
|
- name: Set up and verify AUR SSH
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
run: |
|
|
||||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
||||||
git config user.name "github-actions[bot]"
|
|
||||||
git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git"
|
|
||||||
git add packaging/aur/kst4contest-git/
|
|
||||||
git diff --cached --quiet && echo "No changes to commit." && exit 0
|
|
||||||
git commit -m "chore: update kst4contest-git to ${{ steps.ver.outputs.pkgver }} [skip ci]"
|
|
||||||
git push
|
|
||||||
|
|
||||||
- name: Set up AUR SSH
|
|
||||||
env:
|
env:
|
||||||
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.ssh
|
mkdir -p "${AUR_SSH_DIR}"
|
||||||
printf '%s\n' "${AUR_SSH_PRIVATE_KEY}" > ~/.ssh/aur_ed25519
|
|
||||||
chmod 600 ~/.ssh/aur_ed25519
|
|
||||||
ssh-keyscan -t ed25519 aur.archlinux.org >> ~/.ssh/known_hosts
|
|
||||||
cat >> ~/.ssh/config << 'EOF'
|
|
||||||
Host aur.archlinux.org
|
|
||||||
IdentityFile ~/.ssh/aur_ed25519
|
|
||||||
User aur
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- name: Push to AUR
|
printf '%s\n' "${AUR_SSH_PRIVATE_KEY}" \
|
||||||
|
> "${AUR_SSH_DIR}/aur_ed25519"
|
||||||
|
|
||||||
|
sed -i 's/\r$//' "${AUR_SSH_DIR}/aur_ed25519"
|
||||||
|
chmod 600 "${AUR_SSH_DIR}/aur_ed25519"
|
||||||
|
|
||||||
|
ssh-keygen -y \
|
||||||
|
-f "${AUR_SSH_DIR}/aur_ed25519" \
|
||||||
|
> /dev/null
|
||||||
|
|
||||||
|
ssh-keyscan \
|
||||||
|
-T 10 \
|
||||||
|
-t ed25519 \
|
||||||
|
aur.archlinux.org \
|
||||||
|
> "${AUR_SSH_DIR}/known_hosts"
|
||||||
|
|
||||||
|
if [ ! -s "${AUR_SSH_DIR}/known_hosts" ]; then
|
||||||
|
echo "::error::No SSH host key was received from aur.archlinux.org."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Received AUR host-key fingerprint:"
|
||||||
|
ssh-keygen -lf "${AUR_SSH_DIR}/known_hosts"
|
||||||
|
|
||||||
|
if ! ssh-keygen -lf "${AUR_SSH_DIR}/known_hosts" \
|
||||||
|
| grep -Fq "SHA256:RFzBCUItH9LZS0cKB5UE6ceAYhBD5C8GeOBip8Z11+4"; then
|
||||||
|
echo "::error::The AUR SSH host-key fingerprint does not match the official fingerprint."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%s\n' \
|
||||||
|
"Host aur.archlinux.org" \
|
||||||
|
" HostName aur.archlinux.org" \
|
||||||
|
" User aur" \
|
||||||
|
" IdentityFile ${AUR_SSH_DIR}/aur_ed25519" \
|
||||||
|
" IdentitiesOnly yes" \
|
||||||
|
" StrictHostKeyChecking yes" \
|
||||||
|
" UserKnownHostsFile ${AUR_SSH_DIR}/known_hosts" \
|
||||||
|
> "${AUR_SSH_DIR}/config"
|
||||||
|
|
||||||
|
chmod 600 "${AUR_SSH_DIR}/config"
|
||||||
|
chmod 600 "${AUR_SSH_DIR}/known_hosts"
|
||||||
|
|
||||||
|
- name: Push package metadata to AUR
|
||||||
|
env:
|
||||||
|
GIT_SSH_COMMAND: ssh -F /tmp/aur-ssh/config
|
||||||
run: |
|
run: |
|
||||||
git config --global user.email "philipp@wagnersnetz.de"
|
git config --global user.email "philipp@wagnersnetz.de"
|
||||||
git config --global user.name "Philipp Wagner"
|
git config --global user.name "Philipp Wagner"
|
||||||
|
|
||||||
AUR_DIR="/tmp/aur/kst4contest-git"
|
AUR_DIR="/tmp/aur/kst4contest-git"
|
||||||
git clone "ssh://aur@aur.archlinux.org/kst4contest-git.git" "${AUR_DIR}" 2>/dev/null || {
|
|
||||||
mkdir -p "${AUR_DIR}"
|
|
||||||
git -C "${AUR_DIR}" init
|
|
||||||
git -C "${AUR_DIR}" remote add origin "ssh://aur@aur.archlinux.org/kst4contest-git.git"
|
|
||||||
}
|
|
||||||
|
|
||||||
cp packaging/aur/kst4contest-git/PKGBUILD "${AUR_DIR}/"
|
mkdir -p "$(dirname "${AUR_DIR}")"
|
||||||
cp packaging/aur/kst4contest-git/.SRCINFO "${AUR_DIR}/"
|
|
||||||
|
git -c init.defaultBranch=master clone \
|
||||||
|
"ssh://aur@aur.archlinux.org/kst4contest-git.git" \
|
||||||
|
"${AUR_DIR}"
|
||||||
|
|
||||||
|
cp packaging/aur/kst4contest-git/PKGBUILD \
|
||||||
|
"${AUR_DIR}/PKGBUILD"
|
||||||
|
|
||||||
|
cp packaging/aur/kst4contest-git/.SRCINFO \
|
||||||
|
"${AUR_DIR}/.SRCINFO"
|
||||||
|
|
||||||
git -C "${AUR_DIR}" add PKGBUILD .SRCINFO
|
git -C "${AUR_DIR}" add PKGBUILD .SRCINFO
|
||||||
git -C "${AUR_DIR}" diff --cached --quiet \
|
|
||||||
&& echo "kst4contest-git: no changes, skipping push" && exit 0
|
if git -C "${AUR_DIR}" diff --cached --quiet; then
|
||||||
git -C "${AUR_DIR}" commit -m "Update pkgver to ${{ steps.ver.outputs.pkgver }}"
|
echo "kst4contest-git: package metadata is already current."
|
||||||
git -C "${AUR_DIR}" push origin HEAD:master
|
else
|
||||||
echo "kst4contest-git: pushed to AUR"
|
git -C "${AUR_DIR}" commit \
|
||||||
|
-m "Update pkgver to ${{ steps.ver.outputs.pkgver }}"
|
||||||
|
|
||||||
|
git -C "${AUR_DIR}" push origin HEAD:master
|
||||||
|
|
||||||
|
echo "kst4contest-git: successfully pushed to AUR."
|
||||||
|
fi
|
||||||
@@ -435,12 +435,14 @@ jobs:
|
|||||||
FLATPAK_GPG_KEY_ID=$(gpg --list-secret-keys --with-colons | awk -F: '/^fpr/{print $10; exit}')
|
FLATPAK_GPG_KEY_ID=$(gpg --list-secret-keys --with-colons | awk -F: '/^fpr/{print $10; exit}')
|
||||||
echo "FLATPAK_GPG_KEY_ID=$FLATPAK_GPG_KEY_ID" >> "$GITHUB_ENV"
|
echo "FLATPAK_GPG_KEY_ID=$FLATPAK_GPG_KEY_ID" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Determine OSTree branch
|
- name: Determine OSTree branch and flatpakref filename
|
||||||
run: |
|
run: |
|
||||||
if [[ "${{ github.ref_name }}" == beta-* ]]; then
|
if [[ "${{ github.ref_name }}" == beta-* ]]; then
|
||||||
echo "OSTREE_BRANCH=beta" >> "$GITHUB_ENV"
|
echo "OSTREE_BRANCH=beta" >> "$GITHUB_ENV"
|
||||||
|
echo "FLATPAKREF_NAME=de.x08.KST4Contest.beta.flatpakref" >> "$GITHUB_ENV"
|
||||||
else
|
else
|
||||||
echo "OSTREE_BRANCH=stable" >> "$GITHUB_ENV"
|
echo "OSTREE_BRANCH=stable" >> "$GITHUB_ENV"
|
||||||
|
echo "FLATPAKREF_NAME=de.x08.KST4Contest.flatpakref" >> "$GITHUB_ENV"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build Flatpak repo
|
- name: Build Flatpak repo
|
||||||
@@ -454,7 +456,7 @@ jobs:
|
|||||||
REPO_NAME="${GITHUB_REPOSITORY#*/}"
|
REPO_NAME="${GITHUB_REPOSITORY#*/}"
|
||||||
PAGES_URL="https://${GITHUB_REPOSITORY_OWNER}.github.io/${REPO_NAME}/"
|
PAGES_URL="https://${GITHUB_REPOSITORY_OWNER}.github.io/${REPO_NAME}/"
|
||||||
GPG_KEY_B64=$(gpg --export "$FLATPAK_GPG_KEY_ID" | base64 -w 0)
|
GPG_KEY_B64=$(gpg --export "$FLATPAK_GPG_KEY_ID" | base64 -w 0)
|
||||||
cat > "dist/de.x08.KST4Contest.${OSTREE_BRANCH}.flatpakref" << EOF
|
cat > "dist/${FLATPAKREF_NAME}" << EOF
|
||||||
[Flatpak Ref]
|
[Flatpak Ref]
|
||||||
Name=de.x08.KST4Contest
|
Name=de.x08.KST4Contest
|
||||||
Branch=${OSTREE_BRANCH}
|
Branch=${OSTREE_BRANCH}
|
||||||
@@ -469,7 +471,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v4.3.4
|
uses: actions/upload-artifact@v4.3.4
|
||||||
with:
|
with:
|
||||||
name: flatpakref
|
name: flatpakref
|
||||||
path: dist/de.x08.KST4Contest.*.flatpakref
|
path: dist/*.flatpakref
|
||||||
|
|
||||||
- name: Upload Flatpak OSTree repo
|
- name: Upload Flatpak OSTree repo
|
||||||
uses: actions/upload-artifact@v4.3.4
|
uses: actions/upload-artifact@v4.3.4
|
||||||
@@ -747,7 +749,7 @@ jobs:
|
|||||||
release-assets/debian/KST4Contest-${{ github.ref_name }}-debian-amd64.deb,
|
release-assets/debian/KST4Contest-${{ github.ref_name }}-debian-amd64.deb,
|
||||||
release-assets/fedora/KST4Contest-${{ github.ref_name }}-fedora-x86_64.rpm,
|
release-assets/fedora/KST4Contest-${{ github.ref_name }}-fedora-x86_64.rpm,
|
||||||
release-assets/archlinux/KST4Contest-${{ github.ref_name }}-archlinux-*.pkg.tar.zst,
|
release-assets/archlinux/KST4Contest-${{ github.ref_name }}-archlinux-*.pkg.tar.zst,
|
||||||
release-assets/flatpakref/de.x08.KST4Contest.flatpakref,
|
release-assets/flatpakref/*.flatpakref,
|
||||||
release-assets/macos/KST4Contest-${{ github.ref_name }}-macos-*.dmg,
|
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-en.pdf,
|
||||||
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-de.pdf
|
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-de.pdf
|
||||||
|
|||||||
@@ -1,53 +1,25 @@
|
|||||||
# KST4Contest – Wiki
|
# KST4Contest
|
||||||
|
|
||||||
**KST4Contest** (auch bekannt als *PraktiKST*) ist ein Java-basierter Chat-Client für den [ON4KST-Chat](http://www.on4kst.info/chat/), speziell entwickelt für den Contest-Betrieb auf den VHF/UHF/SHF-Bändern.
|
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.
|
||||||
|
|
||||||
Entwickelt von **DO5AMF (Marc Fröhlich)**, Operator bei DM5M.
|
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.
|
||||||
|
|
||||||
|
Developed by / Entwickelt von **DO5AMF (Marc Fröhlich)**, operator at / Operator bei DM5M.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🌐 Sprache / Language
|
## Language / Sprache
|
||||||
|
|
||||||
| 🇩🇪 Deutsch | 🇬🇧 English |
|
| Deutsch | English |
|
||||||
|---|---|
|
|---|---|
|
||||||
| [Startseite (Deutsch)](de-Home) | [Home (English)](en-Home) |
|
| [Deutsches Handbuch](de-Home) | [English manual](en-Home) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🇩🇪 Inhalt (Deutsch)
|
## Project links / Projektlinks
|
||||||
|
|
||||||
| Seite | Inhalt |
|
- [Project website / Projektwebseite](https://kst4contest.hamradioonline.de/)
|
||||||
|---|---|
|
- [Download the current stable release / Aktuelle stabile Version herunterladen](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||||
| [Installation](de-Installation) | Download, Java-Voraussetzungen, Update |
|
- [Source code / Quellcode](https://github.com/praktimarc/kst4contest)
|
||||||
| [Konfiguration](de-Konfiguration) | Alle Einstellungen im Detail |
|
- [Bug reports and feature requests / Fehler und Funktionswünsche](https://github.com/praktimarc/kst4contest/issues)
|
||||||
| [Log-Synchronisation](de-Log-Synchronisation) | UCXLog, N1MM+, QARTest, DXLog.net, WinTest |
|
- [Online manual / Online-Handbuch](https://kst4contest.hamradioonline.de/manual/)
|
||||||
| [AirScout-Integration](de-AirScout-Integration) | Flugzeug-Scatter-Erkennung |
|
|
||||||
| [DX-Cluster-Server](de-DX-Cluster-Server) | Integrierter DX-Cluster für das Log-Programm |
|
|
||||||
| [Funktionen](de-Funktionen) | Alle Features im Überblick |
|
|
||||||
| [Makros und Variablen](de-Makros-und-Variablen) | Text-Snippets, Shortcuts, Variablen |
|
|
||||||
| [Benutzeroberfläche](de-Benutzeroberflaeche) | UI-Erklärung und Bedienung |
|
|
||||||
| [Changelog](de-Changelog) | Versionsgeschichte |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🇬🇧 Contents (English)
|
|
||||||
|
|
||||||
| Page | Contents |
|
|
||||||
|---|---|
|
|
||||||
| [Installation](en-Installation) | Download, Java requirements, updates |
|
|
||||||
| [Configuration](en-Configuration) | All settings in detail |
|
|
||||||
| [Log Synchronisation](en-Log-Sync) | UCXLog, N1MM+, QARTest, DXLog.net, WinTest |
|
|
||||||
| [AirScout Integration](en-AirScout-Integration) | Aircraft scatter detection |
|
|
||||||
| [DX Cluster Server](en-DX-Cluster-Server) | Built-in DX cluster for your logging software |
|
|
||||||
| [Features](en-Features) | All features at a glance |
|
|
||||||
| [Macros and Variables](en-Macros-and-Variables) | Text snippets, shortcuts, variables |
|
|
||||||
| [User Interface](en-User-Interface) | UI explained and how to operate it |
|
|
||||||
| [Changelog](en-Changelog) | Version history |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Schnellinfo / Quick Info
|
|
||||||
|
|
||||||
- **Download**: https://github.com/praktimarc/kst4contest/releases
|
|
||||||
- **GitHub**: https://github.com/praktimarc/kst4contest
|
|
||||||
- **Kontakt / Contact**: praktimarc+kst4contest@gmail.com
|
|
||||||
@@ -1,10 +1,64 @@
|
|||||||
# KST4Contest – Wiki
|
# KST4Contest – Handbuch
|
||||||
|
|
||||||
> 🇬🇧 [English version](en-Home) | 🇩🇪 Du liest gerade die deutsche Version
|
> [English version](en-Home) | Du liest gerade die deutsche Version
|
||||||
|
|
||||||
**KST4Contest** (auch bekannt als *PraktiKST*) ist ein Java-basierter Chat-Client für den [ON4KST-Chat](http://www.on4kst.info/chat/), der speziell für den Contest-Betrieb auf den VHF/UHF/SHF-Bändern (144 MHz und aufwärts) entwickelt wurde.
|
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 und die Anbindung an weitere Programme in einer gemeinsamen Arbeitsoberfläche.
|
||||||
|
|
||||||
Entwickelt von **DO5AMF (Marc Fröhlich)**, Operator bei DM5M.
|
Entwickelt wird KST4Contest von **DO5AMF (Marc Fröhlich)**, Operator bei DM5M und (seit Mai 2025) **DN9APW (Philipp Wagner)**. Der Quellcode ist öffentlich auf [GitHub](https://github.com/praktimarc/kst4contest) verfügbar.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wozu braucht man einen eigenen ON4KST-Client?
|
||||||
|
|
||||||
|
Der ON4KST-Chat liefert während eines Contests eine große Menge an Informationen: aktive Stationen, Locator, Frequenzen, Sked-Anfragen und Hinweise auf aktuelle Aktivität. Das eigentliche Problem besteht nicht darin, diese Daten zu sehen. Man muss daraus rechtzeitig die nächste sinnvolle Verbindung ableiten.
|
||||||
|
|
||||||
|
KST4Contest wertet die verfügbaren Informationen aus, ordnet sie und stellt sie in einem contestgerechten Arbeitsablauf dar. Dabei werden unter anderem Antennenrichtung, Entfernung, bekannte Bänder und Frequenzen, bereits gearbeitete Stationen, Chat-Aktivität und Aircraft-Scatter-Zeiten berücksichtigt.
|
||||||
|
|
||||||
|
Das Programm entscheidet jedoch nicht, welches QSO tatsächlich möglich ist. Der Prioritätsscore, die AP-Timeline und die verschiedenen Hervorhebungen sind Entscheidungshilfen. Die endgültige Beurteilung bleibt beim Operator – schon deshalb, weil auch ein recht überzeugender Computerbildschirm noch keine Funkverbindung herstellt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Was KST4Contest im Contest unterstützt
|
||||||
|
|
||||||
|
- **Chat beobachten und einordnen:** KST4Contest kann zwei ON4KST-Chat-Kategorien gleichzeitig darstellen. Nachrichten, Frequenzangaben und bekannte Bandaktivitäten werden den jeweiligen Stationen zugeordnet.
|
||||||
|
|
||||||
|
- **Relevante Stationen herausfiltern:** Richtungs-, Entfernungs-, Worked- und NOT-QRV-Filter reduzieren die Benutzerliste auf die Stationen, die für den aktuellen Betriebszustand tatsächlich interessant sind.
|
||||||
|
|
||||||
|
- **Kandidaten priorisieren:** Das Score-System bewertet aktive Chatmember anhand mehrerer bekannter Kriterien. Die derzeit relevantesten Kandidaten erscheinen zusätzlich in einer eigenen Prioritätsliste.
|
||||||
|
|
||||||
|
- **Skeds vorbereiten und im Blick behalten:** Sked-Erinnerungen, automatische Vorwarnungen und die AP-Timeline helfen dabei, vereinbarte Verbindungen nicht zwischen Chat, Log und laufendem CQ-Betrieb zu verlieren.
|
||||||
|
|
||||||
|
- **Aircraft Scatter einbeziehen:** Über die AirScout-Schnittstelle werden geeignete Flugzeuge und erwartete Reflexionszeiten in die Stationsbewertung und Zeitplanung übernommen.
|
||||||
|
|
||||||
|
- **Log und Funkstation anbinden:** KST4Contest synchronisiert gearbeitete Stationen und Frequenzinformationen mit unterstützten Logprogrammen. Zusätzlich stehen Schnittstellen zu Win-Test, PSTRotator und ein integrierter DX-Cluster-Server zur Verfügung.
|
||||||
|
|
||||||
|
- **Stationen und Funkwege darstellen:** Die Stationskarte zeigt aktive Chatmember, Locator-Felder, Antennenrichtungen und den Weg zur ausgewählten Station. Für ausgewählte Verbindungen kann außerdem ein Geländeprofil berechnet werden.
|
||||||
|
|
||||||
|
Die Funktionen greifen ineinander. Eine erkannte Frequenz kann beispielsweise einem aktiven Band zugeordnet werden, der Worked-Status stammt aus dem Log, Aircraft-Scatter-Daten ergänzen die zeitliche Bewertung und der daraus berechnete Score beeinflusst die Prioritätsliste. Fehlende oder veraltete Eingangsdaten können deshalb auch das Ergebnis beeinflussen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
Für die Anmeldung ist ein registrierter ON4KST-Account erforderlich. Registrierung und Login sind über die [offizielle ON4KST-Anmeldeseite](https://www.on4kst.org/chat/login.php) erreichbar.
|
||||||
|
|
||||||
|
Die offizielle Sprache im ON4KST-Chat ist Englisch. Das gilt auch für Nachrichten an Stationen aus dem eigenen Land. Übliche Amateurfunk-Abkürzungen wie `pse`, `agn`, `qrg`, `dir`, `rrr`, `tnx` oder `73` sind dabei normal und meistens erheblich schneller als ausformulierte Prosa.
|
||||||
|
|
||||||
|
Download, unterstützte Betriebssysteme und Installationswege sind im Kapitel [Installation](de-Installation) beschrieben.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Versionsstand dieses Handbuchs
|
||||||
|
|
||||||
|
Dieses Handbuch beschreibt die stabile Version **v1.41.1**.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
- [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)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -12,51 +66,52 @@ Entwickelt von **DO5AMF (Marc Fröhlich)**, Operator bei DM5M.
|
|||||||
|
|
||||||
| Seite | Inhalt |
|
| Seite | Inhalt |
|
||||||
|---|---|
|
|---|---|
|
||||||
| [Installation](de-Installation) | Download, Java-Voraussetzungen, Update |
|
| [Installation](de-Installation) | ON4KST-Account, Download, Installation und Updates |
|
||||||
| [Konfiguration](de-Konfiguration) | Alle Einstellungen im Detail |
|
| [Konfiguration](de-Konfiguration) | Login, Station, Bänder, Benutzeroberfläche und externe Schnittstellen |
|
||||||
| [Log-Synchronisation](de-Log-Synchronisation) | UCXLog, N1MM+, QARTest, DXLog.net, WinTest |
|
| [Log-Synchronisation](de-Log-Synchronisation) | Simplelogfile, UCXLog, N1MM+, QARTest, DXLog.net und Win-Test |
|
||||||
| [AirScout-Integration](de-AirScout-Integration) | Flugzeug-Scatter-Erkennung |
|
| [AirScout-Integration](de-AirScout-Integration) | Verbindung zu AirScout und Auswertung von Aircraft-Scatter-Zeiten |
|
||||||
| [DX-Cluster-Server](de-DX-Cluster-Server) | Integrierter DX-Cluster für das Log-Programm |
|
| [DX-Cluster-Server](de-DX-Cluster-Server) | Übergabe erkannter Möglichkeiten an das Logprogramm |
|
||||||
| [Funktionen](de-Funktionen) | Alle Features im Überblick |
|
| [Funktionen](de-Funktionen) | Arbeitsweise, Herleitung und Grenzen der einzelnen Funktionen |
|
||||||
| [Makros und Variablen](de-Makros-und-Variablen) | Text-Snippets, Shortcuts, Variablen |
|
| [Makros und Variablen](de-Makros-und-Variablen) | Wiederverwendbare Texte, Shortcuts und automatisch ersetzte Werte |
|
||||||
| [Benutzeroberfläche](de-Benutzeroberflaeche) | UI-Erklärung und Bedienung |
|
| [Benutzeroberfläche](de-Benutzeroberflaeche) | Aufbau der Oberfläche und Bedienung im Contest |
|
||||||
| [Changelog](de-Changelog) | Versionsgeschichte |
|
| [Changelog](de-Changelog) | Releases, Nightly-Änderungen und behobene Fehler |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Was ist KST4Contest?
|
## Kontakt und Support
|
||||||
|
|
||||||
Der ON4KST-Chat ist der De-facto-Standard für Skeds auf den 144-MHz-und-höher-Bändern. KST4Contest erweitert die Chat-Nutzung um contest-spezifische Funktionen:
|
- **Download:** [Aktuelle stabile Version](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||||
|
- **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
|
||||||
|
Bitte nur für Themen verwenden, die KST4Contest betreffen.
|
||||||
|
|
||||||
- **Worked-Markierung**: Bereits gearbeitete Stationen werden farblich markiert, direkt aus dem Logprogramm via UDP synchronisiert.
|
### Einen Fehler melden
|
||||||
- **Sked-Richtungs-Erkennung**: Wenn eine Station eine andere aus deiner Richtung anruft, wird sie grün und fett hervorgehoben.
|
|
||||||
- **QRG-Erkennung**: KST4Contest liest Frequenzen automatisch aus dem Chat-Verkehr und zeigt sie in der Benutzerliste an.
|
|
||||||
- **AirScout-Interface**: Anzeige reflektierbarer Flugzeuge direkt in der Benutzerliste.
|
|
||||||
- **Integrierter DX-Cluster-Server**: Spots werden direkt an das Logprogramm gesendet.
|
|
||||||
- **Dark Mode** (ab v1.26): Schont die Augen in der Nacht.
|
|
||||||
- **Multi-Channel-Login** (ab v1.26): Gleichzeitig in zwei Chat-Kategorien einloggen.
|
|
||||||
|
|
||||||
---
|
Ein Fehler lässt sich wesentlich schneller nachvollziehen, wenn die Meldung mindestens folgende Angaben enthält:
|
||||||
|
|
||||||
## Kontakt & Support
|
1. verwendete KST4Contest-Version,
|
||||||
|
2. Betriebssystem und Installationsart,
|
||||||
|
3. genaue Schritte bis zum Fehler,
|
||||||
|
4. erwartetes und tatsächlich beobachtetes Verhalten,
|
||||||
|
5. gegebenenfalls einen Screenshot,
|
||||||
|
6. die Fehler-Logdatei.
|
||||||
|
|
||||||
- **E-Mail**: praktimarc+kst4contest@gmail.com *(nur für kst4contest-Themen)*
|
Die Fehler-Logdatei wird hier gespeichert:
|
||||||
- **GitHub**: https://github.com/praktimarc/kst4contest
|
|
||||||
- **Download**: https://github.com/praktimarc/kst4contest/releases/latest
|
|
||||||
|
|
||||||
### Fehler melden (Issue erstellen)
|
| Betriebssystem | Pfad |
|
||||||
|
|
||||||
Beim Melden eines Fehlers bitte **immer die Logdatei anhängen**. KST4Contest schreibt automatisch eine Fehler-Logdatei (nur Fehlermeldungen, keine persönlichen Daten):
|
|
||||||
|
|
||||||
| Betriebssystem | Pfad zur Logdatei |
|
|
||||||
|---|---|
|
|---|---|
|
||||||
| Linux / macOS | `~/.praktiKST/kst4contest-errors.log` |
|
| Linux / macOS | `~/.praktiKST/kst4contest-errors.log` |
|
||||||
| Windows | `C:\Users\<Benutzername>\.praktiKST\kst4contest-errors.log` |
|
| Windows | `C:\Users\<Benutzername>\.praktiKST\kst4contest-errors.log` |
|
||||||
|
|
||||||
Beim Erstellen eines Issues auf GitHub steht eine Vorlage bereit, die alle wichtigen Felder abfragt.
|
Vor dem Hochladen sollte die Datei kurz geprüft werden. Ein Fehlerprotokoll enthält überwiegend technische Informationen, kann abhängig vom Fehler aber beispielsweise lokale Dateipfade oder weitere Kontextdaten enthalten.
|
||||||
|
|
||||||
|
In Datei- und Verzeichnisnamen wird teilweise noch der technische Name `praktiKST` verwendet. Gemeint ist dasselbe Programm.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Danksagungen
|
## Danksagungen
|
||||||
|
|
||||||
Besonderer Dank gilt: Gianluca Costantino (IU3OAR), Alessandro Murador (IZ3VTH), Reczetár István (HA1FV), OM0AAO (Viliam Petrik, DX-Cluster-Idee), DC9DJ (Konrad Neitzel, Projektstruktur), DO5ALF (Andreas, Webmaster funkerportal.de), PE0WGA (Franz van Velzen, Tester) sowie allen weiteren Testern und Ideengebern.
|
KST4Contest wurde durch Rückmeldungen aus dem praktischen Contest-Betrieb wesentlich verbessert.
|
||||||
|
|
||||||
|
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.
|
||||||
@@ -2,235 +2,422 @@
|
|||||||
|
|
||||||
> 🇬🇧 [English version](en-Installation) | 🇩🇪 Du liest gerade die deutsche Version
|
> 🇬🇧 [English version](en-Installation) | 🇩🇪 Du liest gerade die deutsche Version
|
||||||
|
|
||||||
## Voraussetzungen
|
KST4Contest wird für Windows, Linux und macOS als fertiges Programmpaket bereitgestellt. Für die offiziellen Release-Pakete muss Java nicht separat installiert werden: Die benötigte Java-Laufzeitumgebung ist bereits enthalten.
|
||||||
|
|
||||||
Es wird eine Mindestauflösung von 1200px mal 720px empfohlen
|
Benötigt werden damit im Wesentlichen ein unterstütztes Betriebssystem, eine Internetverbindung und ein ON4KST-Account. Das klingt zunächst überschaubar – und ist es normalerweise auch.
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
### ON4KST-Account
|
### ON4KST-Account
|
||||||
|
|
||||||
Um den Chat zu nutzen, ist ein registrierter Account beim ON4KST-Chat-Dienst erforderlich:
|
KST4Contest ist ein eigenständiger Client für den ON4KST-Chat, ersetzt aber nicht den dazugehörigen Benutzeraccount.
|
||||||
|
|
||||||
- Registrierung unter: http://www.on4kst.info/chat/register.php
|
Falls noch kein Account vorhanden ist, kann er über die offizielle ON4KST-Seite angelegt werden:
|
||||||
|
|
||||||
### Verhaltensregeln im Chat
|
- [ON4KST-Anmeldung und Registrierung](https://www.on4kst.org/chat/login.php)
|
||||||
|
|
||||||
Die offizielle Sprache im ON4KST-Chat ist **Englisch**. Auch bei Kommunikation mit Stationen aus dem eigenen Land bitte Englisch verwenden. Übliche HAM-Abkürzungen (agn, dir, pse, rrr, tnx, 73 …) sind gang und gäbe.
|
ON4KST gibt Englisch als gemeinsame Sprache im Chat vor. Das gilt auch dann, wenn beide beteiligten Stationen dieselbe Muttersprache sprechen. Im Contestbetrieb werden häufig die üblichen Amateurfunk-Abkürzungen wie `pse`, `agn`, `qrg`, `dir`, `rrr`, `tnx` oder `73` verwendet.
|
||||||
|
|
||||||
### Persönliche Nachrichten
|
Die eigentliche Bedienung des Chats und das Senden persönlicher Nachrichten werden im Kapitel zur Benutzeroberfläche beschrieben. Für die Installation ist zunächst nur wichtig, dass der Account funktioniert.
|
||||||
|
|
||||||
Um eine Privatnachricht an eine andere Station zu senden, immer folgendes Format verwenden:
|
### Bildschirmgröße
|
||||||
|
|
||||||
```
|
Eine nutzbare Bildschirmfläche von ungefähr **1200 × 720 Pixeln** oder mehr wird empfohlen.
|
||||||
/CQ RUFZEICHEN Nachrichtentext
|
|
||||||
```
|
|
||||||
|
|
||||||
Beispiel: `/CQ DL5ASG pse sked 144.205?`
|
KST4Contest passt das Hauptfenster automatisch an die verfügbare Fläche des primären Bildschirms an. Das Programm kann deshalb auch auf kleineren Bildschirmen gestartet werden. Weniger Platz bleibt allerdings weniger Platz: In diesem Fall können nicht alle Tabellen, Filter und Zusatzinformationen gleichzeitig in sinnvoller Größe dargestellt werden.
|
||||||
|
|
||||||
Bei starkem Chat-Verkehr (5–6 Nachrichten pro Sekunde im Contest) gehen öffentliche Nachrichten, die an ein bestimmtes Rufzeichen gerichtet sind, leicht unter. KST4Contest fängt solche Nachrichten aber auch dann ab, wenn sie fälschlicherweise öffentlich gepostet werden (siehe [Funktionen – PM-Abfang](Funktionen#catching-personal-messages)).
|
### Java
|
||||||
|
|
||||||
|
Für die fertigen Pakete aus den [GitHub Releases](https://github.com/praktimarc/kst4contest/releases/latest) ist keine separate Java-Installation erforderlich. Die benötigte Laufzeitumgebung wird zusammen mit KST4Contest ausgeliefert.
|
||||||
|
|
||||||
|
Eine Java-Entwicklungsumgebung wird nur benötigt, wenn KST4Contest selbst aus dem Quellcode gebaut werden soll. Bei den AUR-Paketen `kst4contest` und `kst4contest-git` werden Java 21 und Maven als Build-Abhängigkeiten durch den Paketmanager berücksichtigt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Stable, Beta oder Nightly?
|
||||||
|
|
||||||
|
KST4Contest wird in drei Entwicklungsständen bereitgestellt:
|
||||||
|
|
||||||
|
| Kanal | Geeignet für | Einordnung |
|
||||||
|
|---|---|---|
|
||||||
|
| **Stable** | Normaler Contestbetrieb | Veröffentlichte und für den regulären Einsatz vorgesehene Version |
|
||||||
|
| **Beta** | Gezielte Tests vor einem Stable-Release | Vorabversion mit weitgehend festgelegtem Funktionsumfang |
|
||||||
|
| **Nightly** | Frühe Tests neuer Funktionen | Aktueller Entwicklungsstand aus dem `main`-Branch |
|
||||||
|
|
||||||
|
Für den normalen Einsatz wird die **Stable-Version** empfohlen.
|
||||||
|
|
||||||
|
Beta- und Nightly-Versionen können Funktionen enthalten, die im Stable-Release noch nicht verfügbar sind. Sie können aber ebenso unfertige Bedienabläufe, geänderte Einstellungen oder neue Fehler enthalten. Das ist kein ungewöhnlicher Defekt im Veröffentlichungsverfahren, sondern der Zweck eines Entwicklungskanals.
|
||||||
|
|
||||||
|
Wenn in diesem Manual eine Funktion ausdrücklich mit **Nightly** gekennzeichnet ist, gehört sie noch nicht zwingend zum aktuellen Stable-Release.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
### Windows
|
Die aktuelle Stable-Version ist hier verfügbar:
|
||||||
|
|
||||||
Die aktuelle Version kann als ZIP-Datei heruntergeladen werden:
|
- [Aktuelles KST4Contest-Release](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||||
|
- [Alle veröffentlichten Versionen](https://github.com/praktimarc/kst4contest/releases)
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
Die Release-Seite enthält die Programmpakete sowie die deutschen und englischen PDF-Handbücher.
|
||||||
|
|
||||||
Der Dateiname hat das Format `praktiKST-v<Versionsnummer>-windows-x64.zip `.
|
### Welches Paket wird benötigt?
|
||||||
|
|
||||||
### Linux
|
| Betriebssystem | Paket | Typischer Dateiname |
|
||||||
|
|
||||||
Mehrere Paketformate stehen auf der Releases-Seite zur Verfügung:
|
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
|
||||||
|
|
||||||
| Format | Dateiname | Geeignet für |
|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| AppImage | `KST4Contest-v<Version>-linux-x86_64.AppImage` | Alle Distributionen |
|
| Windows x64 | ZIP-Paket | `praktiKST-v<Version>-windows-x64.zip` |
|
||||||
| Debian-Paket | `KST4Contest-v<Version>-debian-amd64.deb` | Debian, Ubuntu, Linux Mint, … |
|
| Linux x86_64 | AppImage | `KST4Contest-v<Version>-linux-x86_64.AppImage` |
|
||||||
| RPM-Paket | `KST4Contest-v<Version>-fedora-x86_64.rpm` | Fedora, RHEL, openSUSE, … |
|
| Debian/Ubuntu amd64 | DEB-Paket | `KST4Contest-v<Version>-debian-amd64.deb` |
|
||||||
| Arch-Paket | `KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst` | Arch Linux, Manjaro, … |
|
| Fedora/RPM x86_64 | RPM-Paket | `KST4Contest-v<Version>-fedora-x86_64.rpm` |
|
||||||
| AUR | `kst4contest-bin` / `kst4contest` / `kst4contest-git` | Arch Linux, Manjaro, EndeavourOS, … |
|
| Arch Linux x86_64 | Arch-Paket | `KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst` |
|
||||||
| Flatpak | `de.x08.KST4Contest.flatpakref` | Alle Distributionen mit Flatpak |
|
| Linux mit Flatpak | Flatpak-Referenz | `de.x08.KST4Contest.flatpakref` |
|
||||||
|
| macOS Apple Silicon | DMG für ARM64 | `KST4Contest-v<Version>-macos-arm64.dmg` |
|
||||||
> **Empfehlung für Linux:** Die Flatpak-Installation ist der einfachste Weg, immer aktuell zu bleiben – `flatpak update` erledigt alle zukünftigen Updates automatisch. Das Repository ist GPG-signiert.
|
| macOS Intel | DMG für x86_64 | `KST4Contest-v<Version>-macos-x86_64.dmg` |
|
||||||
|
|
||||||
### macOS
|
|
||||||
|
|
||||||
> ⚠️ **Best-Effort-Support:** macOS-Builds werden als zusätzliche Option bereitgestellt, sind aber **nicht umfassend getestet**. Wir bauen und veröffentlichen macOS-Binaries mit jedem Release, können allerdings nicht alle Szenarien unter macOS testen. Bei Problemen freuen wir uns über eine Rückmeldung – wir versuchen unser Bestes, können aber nicht den gleichen Support-Umfang wie für Windows und Linux garantieren.
|
|
||||||
|
|
||||||
Die aktuelle Version kann als DMG-Disk-Image heruntergeladen werden (für Apple-Silicon- und Intel-Macs verfügbar):
|
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
|
||||||
|
|
||||||
Der Dateiname hat das Format `KST4Contest-v<Versionsnummer>-macos-<Architektur>.dmg`, wobei `<Architektur>` entweder `arm64` (Apple Silicon) oder `x86_64` (Intel) ist.
|
|
||||||
|
|
||||||
|
Lade Programmpakete nur aus den offiziellen GitHub Releases, dem KST4Contest-Flatpak-Repository oder den verlinkten AUR-Paketen herunter. Dateien aus anderen Quellen können anders gebaut, veraltet oder verändert worden sein.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Installation
|
## Installation unter Windows
|
||||||
|
|
||||||
### Windows
|
KST4Contest wird unter Windows als ZIP-Paket bereitgestellt. Ein klassischer Installer ist nicht erforderlich.
|
||||||
|
|
||||||
1. ZIP-Datei herunterladen.
|
1. Lade `praktiKST-v<Version>-windows-x64.zip` aus dem aktuellen Release herunter.
|
||||||
2. ZIP-Datei in einen gewünschten Ordner entpacken.
|
2. Entpacke die ZIP-Datei vollständig in einen eigenen Ordner.
|
||||||
3. `praktiKST.exe` ausführen.
|
3. Öffne den entpackten Ordner.
|
||||||
|
4. Starte `praktiKST.exe`.
|
||||||
|
|
||||||
Die Einstellungen werden unter `%USERPROFILE%\.praktikst\preferences.xml` gespeichert.
|
Starte das Programm nicht direkt aus der noch komprimierten ZIP-Datei. KST4Contest besteht aus mehreren Dateien und einer mitgelieferten Laufzeitumgebung. Windows kann diese Struktur nur zuverlässig verwenden, wenn das Archiv vorher vollständig entpackt wurde.
|
||||||
|
|
||||||
### Linux
|
Die Programmeinstellungen befinden sich nicht im entpackten Programmordner, sondern im Benutzerverzeichnis:
|
||||||
|
|
||||||
Die Einstellungen werden immer unter `~/.praktikst/preferences.xml` gespeichert.
|
```text
|
||||||
|
%USERPROFILE%\.praktiKST\preferences.xml
|
||||||
|
```
|
||||||
|
|
||||||
#### AppImage
|
Dadurch können neue Programmversionen in einen anderen Ordner entpackt werden, ohne dass die vorhandenen Einstellungen verloren gehen.
|
||||||
|
|
||||||
1. AppImage herunterladen.
|
---
|
||||||
2. Ausführbar machen: `chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage`
|
|
||||||
3. Starten.
|
|
||||||
|
|
||||||
#### Debian / Ubuntu
|
## Installation unter Linux
|
||||||
|
|
||||||
|
Unter Linux stehen mehrere Paketformate zur Verfügung. Welches davon sinnvoll ist, hängt weniger von KST4Contest als von der verwendeten Distribution und der gewünschten Update-Methode ab.
|
||||||
|
|
||||||
|
| Installationsart | Sinnvoll, wenn … |
|
||||||
|
|---|---|
|
||||||
|
| **Flatpak** | Updates zentral verwaltet werden sollen und Flatpak bereits verwendet wird |
|
||||||
|
| **AppImage** | KST4Contest ohne Installation als einzelne portable Datei gestartet werden soll |
|
||||||
|
| **DEB/RPM** | die Paketverwaltung der Distribution verwendet werden soll |
|
||||||
|
| **Arch-Paket/AUR** | Arch Linux, Manjaro oder EndeavourOS eingesetzt wird |
|
||||||
|
|
||||||
|
### Flatpak
|
||||||
|
|
||||||
|
Flatpak ist für die meisten Linux-Anwender der einfachste Weg, KST4Contest installiert und aktualisierbar zu halten. Das KST4Contest-Repository ist GPG-signiert und enthält die Kanäle Stable, Beta und Nightly.
|
||||||
|
|
||||||
|
#### Stable über die Release-Datei installieren
|
||||||
|
|
||||||
|
Lade `de.x08.KST4Contest.flatpakref` aus dem aktuellen Release herunter und öffne die Datei mit der Softwareverwaltung der verwendeten Desktop-Umgebung.
|
||||||
|
|
||||||
|
Alternativ kann sie im Terminal installiert werden:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install ./de.x08.KST4Contest.flatpakref
|
||||||
|
```
|
||||||
|
|
||||||
|
#### KST4Contest-Repository hinzufügen
|
||||||
|
|
||||||
|
Das Repository muss nur einmal hinzugefügt werden:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak remote-add --if-not-exists kst4contest \
|
||||||
|
https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
||||||
|
```
|
||||||
|
|
||||||
|
Anschließend kann die Stable-Version installiert werden:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//stable
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Beta installieren
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//beta
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Nightly installieren
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
KST4Contest verwendet für alle drei Kanäle dieselbe App-ID. Eine parallele Installation mehrerer KST4Contest-Kanäle ist deshalb nicht vorgesehen.
|
||||||
|
|
||||||
|
Zum Wechsel von Stable auf Nightly beispielsweise:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak uninstall de.x08.KST4Contest//stable
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
Die persönlichen Einstellungen im Verzeichnis `~/.praktiKST` werden dabei nicht automatisch gelöscht.
|
||||||
|
|
||||||
|
Installierte Flatpak-Anwendungen können mit folgendem Befehl aktualisiert werden:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak update de.x08.KST4Contest
|
||||||
|
```
|
||||||
|
|
||||||
|
Je nach Desktop-Umgebung kann die grafische Softwareverwaltung verfügbare Flatpak-Updates ebenfalls anzeigen oder automatisch installieren. Der Befehl `flatpak update` selbst führt das Update aus; er verspricht nicht, irgendwann von allein vorbeizukommen.
|
||||||
|
|
||||||
|
### AppImage
|
||||||
|
|
||||||
|
Das AppImage benötigt keine klassische Installation.
|
||||||
|
|
||||||
|
1. Lade `KST4Contest-v<Version>-linux-x86_64.AppImage` herunter.
|
||||||
|
2. Öffne ein Terminal im Download-Verzeichnis.
|
||||||
|
3. Mache die Datei ausführbar:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Starte KST4Contest:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./KST4Contest-v<Version>-linux-x86_64.AppImage
|
||||||
|
```
|
||||||
|
|
||||||
|
Das AppImage kann anschließend an einen anderen Ort verschoben werden, beispielsweise nach `~/Applications`.
|
||||||
|
|
||||||
|
### Debian und Ubuntu
|
||||||
|
|
||||||
|
Installiere das DEB-Paket mit:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
Oder die `.deb`-Datei im Dateimanager doppelklicken.
|
Alternativ kann die Datei in einer grafischen Paketverwaltung geöffnet werden.
|
||||||
|
|
||||||
#### Fedora / RHEL
|
### Fedora und kompatible RPM-Systeme
|
||||||
|
|
||||||
|
Installiere das RPM-Paket mit:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf install ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
sudo dnf install ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Arch Linux
|
### Arch Linux: fertiges Release-Paket
|
||||||
|
|
||||||
**Über den AUR (empfohlen)** — Updates laufen automatisch mit dem System:
|
Das aus dem GitHub Release heruntergeladene Arch-Paket kann direkt installiert werden:
|
||||||
|
|
||||||
```bash
|
|
||||||
yay -S kst4contest-bin # vorgefertigtes Binary, schnellste Installation
|
|
||||||
# oder
|
|
||||||
yay -S kst4contest # aus dem Quellcode bauen
|
|
||||||
# oder
|
|
||||||
yay -S kst4contest-git # immer aktueller git-Stand (1.42+)
|
|
||||||
```
|
|
||||||
|
|
||||||
Jeder AUR-Helper funktioniert (`paru`, `trizen` usw.). `kst4contest-bin` ist die einfachste Option — es installiert dasselbe vorgefertigte Binary wie der Release-Download.
|
|
||||||
|
|
||||||
Oder das Release-Paket manuell installieren:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Flatpak
|
### Arch Linux: Installation über den AUR
|
||||||
|
|
||||||
|
Im AUR stehen drei Varianten bereit:
|
||||||
|
|
||||||
|
| Paket | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| [`kst4contest-bin`](https://aur.archlinux.org/packages/kst4contest-bin) | Vorgefertigtes Paket des aktuellen Stable-Releases |
|
||||||
|
| [`kst4contest`](https://aur.archlinux.org/packages/kst4contest) | Stable-Release, das lokal aus dem Quellcode gebaut wird |
|
||||||
|
| [`kst4contest-git`](https://aur.archlinux.org/packages/kst4contest-git) | Aktueller Entwicklungsstand aus dem `main`-Branch |
|
||||||
|
|
||||||
|
Für die meisten Anwender ist `kst4contest-bin` die naheliegende Variante:
|
||||||
|
|
||||||
Die Datei `de.x08.KST4Contest.flatpakref` aus dem [aktuellen Release](https://github.com/praktimarc/kst4contest/releases/latest) herunterladen und öffnen, oder:
|
|
||||||
```bash
|
```bash
|
||||||
flatpak install de.x08.KST4Contest.flatpakref
|
yay -S kst4contest-bin
|
||||||
```
|
```
|
||||||
|
|
||||||
Oder den Remote manuell hinzufügen (empfohlen für Nightly/Beta-Zugriff):
|
Stable aus dem Quellcode bauen:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
yay -S kst4contest
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Flatpak-Kanäle (nightly / beta / stable)
|
Aktuellen Entwicklungsstand bauen:
|
||||||
|
|
||||||
Das Flatpak-Repository enthält drei Kanäle, die alle im selben Remote liegen:
|
```bash
|
||||||
|
yay -S kst4contest-git
|
||||||
|
```
|
||||||
|
|
||||||
| Kanal | Inhalt | Wird gebaut bei |
|
Die drei Pakete stellen dieselbe Anwendung bereit und sind deshalb als gegenseitige Konflikte definiert. Installiere nur eine Variante gleichzeitig.
|
||||||
|
|
||||||
|
AUR-Updates werden berücksichtigt, wenn der verwendete AUR-Helper nach Paketaktualisierungen sucht, beispielsweise mit:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yay -Syu
|
||||||
|
```
|
||||||
|
|
||||||
|
Sie erfolgen nicht allein deshalb automatisch, weil das Paket aus dem AUR stammt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation unter macOS
|
||||||
|
|
||||||
|
> **Best-Effort-Support:** Die macOS-Pakete werden zusammen mit den übrigen Releases gebaut, aber nicht in demselben Umfang getestet wie die Windows- und Linux-Versionen. Rückmeldungen sind willkommen; eine vollständig geprüfte Unterstützung aller macOS-Versionen und Hardwarevarianten kann derzeit jedoch nicht zugesagt werden.
|
||||||
|
|
||||||
|
Für Apple-Silicon-Macs wird das Paket mit `arm64` benötigt. Für Intel-Macs ist das Paket mit `x86_64` vorgesehen.
|
||||||
|
|
||||||
|
1. Lade die passende DMG-Datei herunter.
|
||||||
|
2. Öffne die DMG-Datei.
|
||||||
|
3. Ziehe `KST4Contest.app` in den Ordner **Programme**.
|
||||||
|
4. Starte KST4Contest aus dem Programme-Ordner oder über das Launchpad.
|
||||||
|
|
||||||
|
Die Anwendung ist derzeit nicht von Apple notarisiert. macOS kann den ersten Start deshalb blockieren.
|
||||||
|
|
||||||
|
Falls die Anwendung aus dem offiziellen GitHub Release stammt:
|
||||||
|
|
||||||
|
1. Öffne den Programme-Ordner im Finder.
|
||||||
|
2. Klicke mit der rechten Maustaste oder mit gedrückter Ctrl-Taste auf `KST4Contest.app`.
|
||||||
|
3. Wähle **Öffnen**.
|
||||||
|
4. Bestätige den Start im angezeigten Dialog.
|
||||||
|
|
||||||
|
Alternativ kann macOS unter **Systemeinstellungen → Datenschutz & Sicherheit** die Schaltfläche **Trotzdem öffnen** anbieten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wo werden die Einstellungen gespeichert?
|
||||||
|
|
||||||
|
KST4Contest speichert seine Einstellungen und weitere lokale Arbeitsdateien im Benutzerverzeichnis. Der Programmordner und das Datenverzeichnis sind voneinander getrennt.
|
||||||
|
|
||||||
|
| Betriebssystem | Datenverzeichnis | Einstellungsdatei |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `stable` | Aktuelle stabile Version | Jedem normalen Release-Tag |
|
| Windows | `%USERPROFILE%\.praktiKST\` | `%USERPROFILE%\.praktiKST\preferences.xml` |
|
||||||
| `beta` | Vorab-Version | Tags mit `beta-` Präfix |
|
| Linux | `~/.praktiKST/` | `~/.praktiKST/preferences.xml` |
|
||||||
| `nightly` | Entwicklungsstand (main-Branch) | Täglich / jedem Push auf main |
|
| macOS | `~/.praktiKST/` | `~/.praktiKST/preferences.xml` |
|
||||||
|
|
||||||
Remote einmalig hinzufügen, dann den gewünschten Kanal installieren:
|
Beachte die Schreibweise `.praktiKST` mit großem `KST`. Unter Linux und macOS wird zwischen Groß- und Kleinschreibung unterschieden. `.praktikst` wäre dort schlicht ein anderes Verzeichnis.
|
||||||
|
|
||||||
|
Ein Programmupdate entfernt dieses Verzeichnis nicht. Trotzdem ist es sinnvoll, vor größeren Versionswechseln oder umfangreichen Änderungen an der Konfiguration eine Sicherung davon anzulegen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Updates
|
||||||
|
|
||||||
|
KST4Contest prüft beim Start, ob ein neueres Stable-Release verfügbar ist. Wenn eine neuere Version gefunden wird, erscheint ein Informationsfenster mit:
|
||||||
|
|
||||||
|
- der installierten Version,
|
||||||
|
- der aktuellen Stable-Version,
|
||||||
|
- einer kurzen Übersicht wesentlicher Änderungen,
|
||||||
|
- dem Changelog,
|
||||||
|
- bekannten Problemen,
|
||||||
|
- einem Link zur passenden GitHub-Release-Seite.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Der Update-Checker installiert nichts selbst. Er informiert über die neue Version und öffnet die plattformneutrale Release-Seite. Dort muss das passende Paket für Windows, Linux oder macOS ausgewählt werden.
|
||||||
|
|
||||||
|
### Windows aktualisieren
|
||||||
|
|
||||||
|
1. Beende KST4Contest.
|
||||||
|
2. Lade das neue Windows-ZIP herunter.
|
||||||
|
3. Entpacke es in einen neuen oder leeren Ordner.
|
||||||
|
4. Starte die neue Version.
|
||||||
|
5. Prüfe, ob die bisherigen Einstellungen geladen wurden.
|
||||||
|
6. Entferne den alten Programmordner erst danach.
|
||||||
|
|
||||||
|
Die Einstellungen bleiben erhalten, weil sie unter `%USERPROFILE%\.praktiKST` und nicht im Programmordner gespeichert werden.
|
||||||
|
|
||||||
|
### AppImage aktualisieren
|
||||||
|
|
||||||
|
1. Lade das neue AppImage herunter.
|
||||||
|
2. Mache es ausführbar.
|
||||||
|
3. Starte die neue Datei.
|
||||||
|
4. Entferne das bisherige AppImage erst, wenn die neue Version funktioniert.
|
||||||
|
|
||||||
|
### Debian und Ubuntu aktualisieren
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
||||||
|
|
||||||
# Stable (Standard)
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
|
||||||
|
|
||||||
# Beta
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest//beta
|
|
||||||
|
|
||||||
# Nightly
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest//nightly
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Hinweis:** Flatpak erlaubt nur eine installierte Version pro App-ID gleichzeitig. Um den Kanal zu wechseln, zuerst die aktuelle Version deinstallieren:
|
### Fedora aktualisieren
|
||||||
> ```bash
|
|
||||||
> flatpak uninstall de.x08.KST4Contest
|
|
||||||
> flatpak install kst4contest de.x08.KST4Contest//nightly
|
|
||||||
> ```
|
|
||||||
|
|
||||||
Updates erfolgen wie gewohnt mit `flatpak update`.
|
```bash
|
||||||
|
sudo dnf upgrade ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
||||||
|
```
|
||||||
|
|
||||||
Die `flatpakref`-Dateien für Beta und Stable liegen jeweils im entsprechenden [GitHub-Release](https://github.com/praktimarc/kst4contest/releases). Das Nightly-`flatpakref` (`de.x08.KST4Contest.nightly.flatpakref`) ist als Artifact im [GitHub Actions](https://github.com/praktimarc/kst4contest/actions)-Tab verfügbar (wird 14 Tage aufbewahrt) – der Remote-Weg oben ist für Nightly daher meist einfacher.
|
### Arch-Paket aktualisieren
|
||||||
|
|
||||||
### macOS
|
```bash
|
||||||
1. DMG-Datei für die eigene Architektur herunterladen (Apple Silicon oder Intel).
|
sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
||||||
2. DMG-Datei öffnen.
|
```
|
||||||
3. `KST4Contest.app` in den **Programme**-Ordner ziehen.
|
|
||||||
4. Beim ersten Start zeigt macOS ggf. eine Warnung, da die App nicht notarisiert ist. Zum Öffnen:
|
|
||||||
- Rechtsklick (oder Ctrl-Klick) auf `KST4Contest.app` im Finder → **Öffnen** wählen.
|
|
||||||
- Alternativ: **Systemeinstellungen → Datenschutz & Sicherheit** → **Trotzdem öffnen** klicken.
|
|
||||||
5. KST4Contest aus dem Programme-Ordner oder dem Launchpad starten.
|
|
||||||
|
|
||||||
Die Einstellungen werden unter `~/.praktikst/preferences.xml` gespeichert.
|
### AUR-Paket aktualisieren
|
||||||
|
|
||||||
|
Aktualisiere das installierte Paket über den verwendeten AUR-Helper, beispielsweise:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yay -Syu
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flatpak aktualisieren
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak update de.x08.KST4Contest
|
||||||
|
```
|
||||||
|
|
||||||
|
### macOS aktualisieren
|
||||||
|
|
||||||
|
1. Lade die neue DMG-Datei für die vorhandene Architektur herunter.
|
||||||
|
2. Beende KST4Contest.
|
||||||
|
3. Öffne die DMG-Datei.
|
||||||
|
4. Ersetze `KST4Contest.app` im Programme-Ordner.
|
||||||
|
5. Starte die neue Version und prüfe die vorhandenen Einstellungen.
|
||||||
|
|
||||||
|
Die Konfiguration unter `~/.praktiKST` bleibt davon unberührt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Update
|
## Probleme beim ersten Start
|
||||||
|
|
||||||
KST4Contest enthält einen **automatischen Update-Hinweis-Dienst**: Sobald eine neue Version verfügbar ist, erscheint beim Start ein Fenster mit:
|
### Windows meldet eine unbekannte Anwendung
|
||||||
- der Information, dass eine neue Version vorliegt,
|
|
||||||
- einem Changelog,
|
|
||||||
- dem Download-Link zur neuen Version.
|
|
||||||
|
|
||||||

|
KST4Contest ist derzeit nicht mit einem kommerziellen Windows-Code-Signing-Zertifikat signiert. Windows oder ein zusätzlich installiertes Sicherheitsprodukt kann deshalb vor einer unbekannten oder selten heruntergeladenen Anwendung warnen.
|
||||||
|
|
||||||
### Update-Prozess
|
Prüfe in diesem Fall zuerst:
|
||||||
|
|
||||||
#### Windows
|
- Stammt die Datei aus dem [offiziellen KST4Contest-Release](https://github.com/praktimarc/kst4contest/releases/latest)?
|
||||||
|
- Passt der Dateiname zum veröffentlichten Release?
|
||||||
|
- Wurde die Datei vollständig heruntergeladen?
|
||||||
|
- Nennt das Sicherheitsprogramm einen konkreten Erkennungsnamen oder nur eine allgemeine Reputationswarnung?
|
||||||
|
|
||||||
Derzeit gibt es nur einen Weg zum Aktualisieren:
|
Ein Warnhinweis ist allein weder ein sicherer Beweis für Schadsoftware noch automatisch ein Fehlalarm. Wenn die Herkunft der Datei unklar ist, sollte sie nicht gestartet oder aus der Quarantäne wiederhergestellt werden.
|
||||||
|
|
||||||
1. Den alten Ordner löschen.
|
Einige Anwender haben insbesondere Quarantäne-Meldungen von Norton 360 gemeldet. Wenn sich eine Meldung reproduzieren lässt, erstelle bitte einen [GitHub-Issue](https://github.com/praktimarc/kst4contest/issues) und nenne:
|
||||||
2. Das neue ZIP entpacken.
|
|
||||||
|
|
||||||
Die Einstellungsdatei (`preferences.xml`) bleibt erhalten, da sie im Benutzerordner gespeichert ist – nicht im Programmordner.
|
- die KST4Contest-Version,
|
||||||
|
- den vollständigen Dateinamen,
|
||||||
|
- das verwendete Sicherheitsprodukt und dessen Version,
|
||||||
|
- den angezeigten Erkennungsnamen,
|
||||||
|
- möglichst einen Screenshot der Meldung.
|
||||||
|
|
||||||
#### Linux
|
### Das AppImage startet nicht
|
||||||
|
|
||||||
- **AppImage**: Neues AppImage herunterladen, ausführbar machen (`chmod +x`), altes optional löschen.
|
Prüfe zuerst das Ausführungsrecht:
|
||||||
- **Debian/Ubuntu**: `sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb`
|
|
||||||
- **Fedora/RHEL**: `sudo dnf upgrade ./KST4Contest-v<Version>-fedora-x86_64.rpm`
|
|
||||||
- **Arch Linux (AUR)**: `yay -S kst4contest-bin`
|
|
||||||
- **Arch Linux (manuell)**: `sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst`
|
|
||||||
- **Flatpak (Repository)**: `flatpak update` – aktualisiert alle Flatpak-Apps einschließlich KST4Contest.
|
|
||||||
|
|
||||||
#### macOS
|
```bash
|
||||||
|
chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage
|
||||||
|
```
|
||||||
|
|
||||||
1. Neue DMG-Datei herunterladen.
|
Starte die Datei anschließend aus einem Terminal. Fehlermeldungen sind dort meist aussagekräftiger als ein Doppelklick, der lediglich nichts Sichtbares tut.
|
||||||
2. DMG öffnen.
|
|
||||||
3. Die neue `KST4Contest.app` in den **Programme**-Ordner ziehen und die alte Version ersetzen.
|
|
||||||
|
|
||||||
|
### macOS blockiert die Anwendung
|
||||||
|
|
||||||
---
|
Verwende die unter [Installation unter macOS](#installation-unter-macos) beschriebene Funktion **Öffnen** im Kontextmenü. Prüfe vorher, ob die DMG-Datei aus dem offiziellen GitHub Release stammt.
|
||||||
|
|
||||||
## Bekannte Probleme beim Start
|
### Das Problem bleibt bestehen
|
||||||
|
|
||||||
### Norton 360
|
Prüfe zunächst, ob das Problem bereits unter [GitHub Issues](https://github.com/praktimarc/kst4contest/issues) beschrieben wurde. Falls nicht, erstelle einen neuen Issue mit:
|
||||||
|
|
||||||
Norton 360 stuft `praktiKST.exe` als gefährlich ein (Fehlalarm). Es muss eine Ausnahme für die Datei eingerichtet werden:
|
- Betriebssystem und Version,
|
||||||
|
- verwendeter KST4Contest-Version,
|
||||||
|
- Installationsart,
|
||||||
|
- genauer Fehlermeldung,
|
||||||
|
- den Schritten, mit denen sich das Problem reproduzieren lässt.
|
||||||
|
|
||||||
1. Norton 360 öffnen.
|
„Geht nicht“ beschreibt den Zustand meistens korrekt, hilft bei der Fehlersuche aber nur begrenzt.
|
||||||
2. Sicherheit → Verlauf → Das entsprechende Ereignis suchen.
|
|
||||||
3. „Wiederherstellen & Ausnahme hinzufügen" wählen.
|
|
||||||
|
|
||||||
*(Gemeldet von PE0WGA, Franz van Velzen – danke!)*
|
|
||||||
@@ -1,62 +1,117 @@
|
|||||||
# KST4Contest – Wiki
|
# KST4Contest – User Manual
|
||||||
|
|
||||||
> 🇬🇧 You are reading the English version | 🇩🇪 [Deutsche Version](de-Home)
|
> You are reading the English version | [Deutsche Version](de-Home)
|
||||||
|
|
||||||
**KST4Contest** (also known as *PraktiKST*) is a Java-based chat client for the [ON4KST Chat](http://www.on4kst.info/chat/), specifically designed for contest operation on the VHF/UHF/SHF bands (144 MHz and above).
|
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 brings chat, candidate selection, sked planning, aircraft scatter data and external station software together in a single operating interface.
|
||||||
|
|
||||||
Developed by **DO5AMF (Marc Fröhlich)**, operator at DM5M.
|
KST4Contest is developed by **DO5AMF (Marc Fröhlich)**, operator at DM5M and (since May 2025) **DN9APW (Philipp Wagner)**. The source code is publicly available on [GitHub](https://github.com/praktimarc/kst4contest).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Quick Navigation
|
## Why use a dedicated ON4KST client?
|
||||||
|
|
||||||
|
During a contest, the ON4KST Chat provides a considerable amount of information: active stations, locators, frequencies, sked requests and indications of current activity. The actual problem is not seeing this data. It is turning it into the next useful contact in time.
|
||||||
|
|
||||||
|
KST4Contest evaluates the available information, puts it into context and presents it as part of a contest-oriented workflow. This includes antenna direction, distance, known bands and frequencies, worked status, chat activity and aircraft scatter timing.
|
||||||
|
|
||||||
|
The program does not decide which QSO is actually possible. Priority scores, the AP timeline and visual highlights are decision aids. The final judgement remains with the operator – not least because even a very convincing computer screen cannot complete a radio contact.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## How KST4Contest supports contest operation
|
||||||
|
|
||||||
|
- **Observe and organise chat activity:** KST4Contest can display two ON4KST chat categories at the same time. Messages, frequency information and known band activity are assigned to the corresponding stations.
|
||||||
|
|
||||||
|
- **Reduce the station list:** Direction, distance, worked and NOT-QRV filters help limit the user list to stations that are relevant to the current operating situation.
|
||||||
|
|
||||||
|
- **Prioritise candidates:** The score system evaluates active chat members using several known criteria. The currently most relevant candidates are also shown in a separate priority list.
|
||||||
|
|
||||||
|
- **Prepare skeds and keep them visible:** Sked reminders, automatic advance messages and the AP timeline help prevent scheduled contacts from disappearing somewhere between chat, logging and ongoing CQ operation.
|
||||||
|
|
||||||
|
- **Include aircraft scatter information:** The AirScout interface brings suitable aircraft and expected reflection times into candidate evaluation and sked planning.
|
||||||
|
|
||||||
|
- **Connect the logger and station equipment:** KST4Contest synchronises worked stations and frequency information with supported logging software. It also provides interfaces for Win-Test, PSTRotator and a built-in DX Cluster server.
|
||||||
|
|
||||||
|
- **Display stations and radio paths:** The station map shows active chat members, locator squares, antenna directions and the path to the selected station. A terrain profile can also be calculated for selected paths.
|
||||||
|
|
||||||
|
These functions share information. A detected frequency can indicate an active band, worked status comes from the logger, aircraft scatter data adds timing information and the resulting score affects the priority list. Missing or outdated input data can therefore affect the result as well.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
A registered ON4KST account is required. Registration and login are available from the [official ON4KST login page](https://www.on4kst.org/chat/login.php).
|
||||||
|
|
||||||
|
English is the official language of the ON4KST Chat. This also applies when communicating with stations from your own country. Common amateur radio abbreviations such as `pse`, `agn`, `qrg`, `dir`, `rrr`, `tnx` and `73` are normal and usually considerably faster than carefully written prose.
|
||||||
|
|
||||||
|
Downloads, supported operating systems and installation methods are described in [Installation](en-Installation).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Manual version
|
||||||
|
|
||||||
|
This manual describes the stable release **v1.41.1**.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
- [Download the current stable release](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||||
|
- [Nightly and automated builds](https://github.com/praktimarc/kst4contest/actions)
|
||||||
|
- [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.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick navigation
|
||||||
|
|
||||||
| Page | Contents |
|
| Page | Contents |
|
||||||
|---|---|
|
|---|---|
|
||||||
| [Installation](en-Installation) | Download, Java requirements, update |
|
| [Installation](en-Installation) | ON4KST account, downloads, installation and updates |
|
||||||
| [Configuration](en-Configuration) | All settings in detail |
|
| [Configuration](en-Configuration) | Login, station, bands, user interface and external connections |
|
||||||
| [Log Synchronisation](en-Log-Sync) | UCXLog, N1MM+, QARTest, DXLog.net, WinTest |
|
| [Log Synchronisation](en-Log-Sync) | Simplelogfile, UCXLog, N1MM+, QARTest, DXLog.net and Win-Test |
|
||||||
| [AirScout Integration](en-AirScout-Integration) | Aircraft scatter detection |
|
| [AirScout Integration](en-AirScout-Integration) | Connecting AirScout and evaluating aircraft scatter timing |
|
||||||
| [DX Cluster Server](en-DX-Cluster-Server) | Built-in DX cluster for your logging software |
|
| [DX Cluster Server](en-DX-Cluster-Server) | Passing detected opportunities to logging software |
|
||||||
| [Features](en-Features) | All features at a glance |
|
| [Features](en-Features) | Operation, reasoning and limitations of individual functions |
|
||||||
| [Macros and Variables](en-Macros-and-Variables) | Text snippets, shortcuts, variables |
|
| [Macros and Variables](en-Macros-and-Variables) | Reusable messages, shortcuts and automatically substituted values |
|
||||||
| [User Interface](en-User-Interface) | UI explanation and operation |
|
| [User Interface](en-User-Interface) | Interface layout and operation during a contest |
|
||||||
| [Changelog](en-Changelog) | Version history |
|
| [Changelog](en-Changelog) | Releases, Nightly changes and resolved issues |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What is KST4Contest?
|
## Contact and support
|
||||||
|
|
||||||
The ON4KST Chat is the de-facto standard for skeds on the 144 MHz and higher bands. KST4Contest enhances the chat experience with contest-specific features:
|
- **Download:** [Current stable release](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||||
|
- **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
|
||||||
|
Please use this address only for KST4Contest-related topics.
|
||||||
|
|
||||||
- **Worked marking**: Stations already worked are highlighted visually, synchronised directly from your logging software via UDP.
|
### Reporting a bug
|
||||||
- **Sked direction detection**: When a station calls another one from your direction, it is highlighted green and bold.
|
|
||||||
- **QRG detection**: KST4Contest automatically reads frequencies from the chat traffic and shows them in the user list.
|
|
||||||
- **AirScout interface**: Reflectable aircraft are shown directly in the user list.
|
|
||||||
- **Built-in DX cluster server**: Spots are sent directly to your logging software.
|
|
||||||
- **Dark mode** (from v1.26): Easy on the eyes during night-time operation.
|
|
||||||
- **Multi-channel login** (from v1.26): Simultaneously logged into two chat categories.
|
|
||||||
|
|
||||||
---
|
A problem is considerably easier to reproduce when the report contains at least:
|
||||||
|
|
||||||
## Contact & Support
|
1. the KST4Contest version,
|
||||||
|
2. the operating system and installation method,
|
||||||
|
3. the exact steps leading to the problem,
|
||||||
|
4. the expected and observed behaviour,
|
||||||
|
5. a screenshot where appropriate,
|
||||||
|
6. the error log file.
|
||||||
|
|
||||||
- **Email**: praktimarc+kst4contest@gmail.com *(for kst4contest topics only)*
|
The error log is stored at:
|
||||||
- **GitHub**: https://github.com/praktimarc/kst4contest
|
|
||||||
- **Download**: https://github.com/praktimarc/kst4contest/releases/latest
|
|
||||||
|
|
||||||
### Reporting a bug (creating an issue)
|
| Operating system | Path |
|
||||||
|
|
||||||
When reporting a bug, please **always attach the log file**. KST4Contest automatically writes an error log (error messages only, no personal data):
|
|
||||||
|
|
||||||
| Operating system | Log file location |
|
|
||||||
|---|---|
|
|---|---|
|
||||||
| Linux / macOS | `~/.praktiKST/kst4contest-errors.log` |
|
| Linux / macOS | `~/.praktiKST/kst4contest-errors.log` |
|
||||||
| Windows | `C:\Users\<YourName>\.praktiKST\kst4contest-errors.log` |
|
| Windows | `C:\Users\<YourName>\.praktiKST\kst4contest-errors.log` |
|
||||||
|
|
||||||
When opening an issue on GitHub, a template is provided that guides you through all relevant fields.
|
Please inspect the file briefly before uploading it. An error log mainly contains technical information, but depending on the problem it may also include local file paths or other contextual data.
|
||||||
|
|
||||||
|
Some file and directory names still use the technical name `praktiKST`. They refer to the same program.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Acknowledgements
|
## Acknowledgements
|
||||||
|
|
||||||
Special thanks to: Gianluca Costantino (IU3OAR), Alessandro Murador (IZ3VTH), Reczetár István (HA1FV), OM0AAO (Viliam Petrik, DX cluster idea), DC9DJ (Konrad Neitzel, project structure), DO5ALF (Andreas, webmaster funkerportal.de), PE0WGA (Franz van Velzen, tester) and all other testers and contributors.
|
KST4Contest has benefited considerably from feedback gathered during actual contest operation.
|
||||||
|
|
||||||
|
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.
|
||||||
@@ -2,235 +2,422 @@
|
|||||||
|
|
||||||
> 🇬🇧 You are reading the English version | 🇩🇪 [Deutsche Version](de-Installation)
|
> 🇬🇧 You are reading the English version | 🇩🇪 [Deutsche Version](de-Installation)
|
||||||
|
|
||||||
## Prerequisites
|
KST4Contest is distributed as a ready-to-run application package for Windows, Linux and macOS. The official release packages do not require a separate Java installation: the required Java runtime is already included.
|
||||||
|
|
||||||
An resolution of 1200px by 720px is recommended
|
In practical terms, you need a supported operating system, an internet connection and an ON4KST account. That sounds manageable—and usually it is.
|
||||||
|
|
||||||
### ON4KST Account
|
## Requirements
|
||||||
|
|
||||||
To use the chat, a registered account with the ON4KST chat service is required:
|
### ON4KST account
|
||||||
|
|
||||||
- Register at: http://www.on4kst.info/chat/register.php
|
KST4Contest is an independent client for the ON4KST chat, but it does not replace the corresponding user account.
|
||||||
|
|
||||||
### Chat Etiquette
|
If you do not have an account yet, you can create one on the official ON4KST website:
|
||||||
|
|
||||||
The official language in the ON4KST Chat is **English**. Please use English even when communicating with stations from your own country. Common HAM abbreviations (agn, dir, pse, rrr, tnx, 73 …) are widely used and understood.
|
- [ON4KST login and registration](https://www.on4kst.org/chat/login.php)
|
||||||
|
|
||||||
### Personal Messages
|
ON4KST specifies English as the common language for the chat. This also applies when both stations happen to share another language. During contests, the usual amateur radio abbreviations such as `pse`, `agn`, `qrg`, `dir`, `rrr`, `tnx` and `73` are widely used.
|
||||||
|
|
||||||
To send a private message to another station, always use the following format:
|
Using the chat and sending personal messages are covered in the user interface chapter. For the installation, the only thing that matters at this point is that the account works.
|
||||||
|
|
||||||
```
|
### Screen size
|
||||||
/CQ CALLSIGN message text
|
|
||||||
```
|
|
||||||
|
|
||||||
Example: `/CQ DL5ASG pse sked 144.205?`
|
A usable screen area of approximately **1200 × 720 pixels** or more is recommended.
|
||||||
|
|
||||||
During heavy chat traffic (5–6 messages per second in a contest), public messages directed at a specific callsign are easily missed. However, KST4Contest also catches such messages if they are accidentally posted publicly (see [Features – PM Catching](Features#catching-personal-messages)).
|
KST4Contest automatically adapts the main window to the available area of the primary screen. The application can therefore also be started on smaller displays. Less space is still less space, however: not all tables, filters and additional information can then be displayed at a useful size at the same time.
|
||||||
|
|
||||||
|
### Java
|
||||||
|
|
||||||
|
The ready-made packages from the [GitHub Releases](https://github.com/praktimarc/kst4contest/releases/latest) do not require a separate Java installation. The required runtime is distributed with KST4Contest.
|
||||||
|
|
||||||
|
A Java development environment is only required if you want to build KST4Contest from source. For the AUR packages `kst4contest` and `kst4contest-git`, Java 21 and Maven are handled as build dependencies by the package manager.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Stable, Beta or Nightly?
|
||||||
|
|
||||||
|
KST4Contest is distributed through three development channels:
|
||||||
|
|
||||||
|
| Channel | Intended use | Classification |
|
||||||
|
|---|---|---|
|
||||||
|
| **Stable** | Normal contest operation | Published version intended for regular use |
|
||||||
|
| **Beta** | Focused testing before a Stable release | Pre-release version with a largely defined feature set |
|
||||||
|
| **Nightly** | Early testing of new features | Current development state from the `main` branch |
|
||||||
|
|
||||||
|
The **Stable version** is recommended for normal operation.
|
||||||
|
|
||||||
|
Beta and Nightly builds may contain features that are not yet available in the Stable release. They may also contain unfinished workflows, changed settings or new defects. That is not an unusual failure of the release process; it is the purpose of a development channel.
|
||||||
|
|
||||||
|
If a function in this manual is explicitly marked as **Nightly**, it is not necessarily part of the current Stable release yet.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
### Windows
|
The current Stable version is available here:
|
||||||
|
|
||||||
The latest version can be downloaded as a ZIP file:
|
- [Latest KST4Contest release](https://github.com/praktimarc/kst4contest/releases/latest)
|
||||||
|
- [All published releases](https://github.com/praktimarc/kst4contest/releases)
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
The release page contains the application packages as well as the English and German PDF manuals.
|
||||||
|
|
||||||
The filename has the format `praktiKST-v<version_number>-windows-x64.zip`.
|
### Which package do I need?
|
||||||
|
|
||||||
### Linux
|
| Operating system | Package | Typical filename |
|
||||||
|
|
||||||
Multiple package formats are available from the releases page:
|
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
|
||||||
|
|
||||||
| Format | Filename | Suitable for |
|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| AppImage | `KST4Contest-v<version>-linux-x86_64.AppImage` | All distributions |
|
| Windows x64 | ZIP package | `praktiKST-v<version>-windows-x64.zip` |
|
||||||
| Debian package | `KST4Contest-v<version>-debian-amd64.deb` | Debian, Ubuntu, Linux Mint, … |
|
| Linux x86_64 | AppImage | `KST4Contest-v<version>-linux-x86_64.AppImage` |
|
||||||
| RPM package | `KST4Contest-v<version>-fedora-x86_64.rpm` | Fedora, RHEL, openSUSE, … |
|
| Debian/Ubuntu amd64 | DEB package | `KST4Contest-v<version>-debian-amd64.deb` |
|
||||||
| Arch package | `KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst` | Arch Linux, Manjaro, … |
|
| Fedora/RPM x86_64 | RPM package | `KST4Contest-v<version>-fedora-x86_64.rpm` |
|
||||||
| AUR | `kst4contest-bin` / `kst4contest` / `kst4contest-git` | Arch Linux, Manjaro, EndeavourOS, … |
|
| Arch Linux x86_64 | Arch package | `KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst` |
|
||||||
| Flatpak | `de.x08.KST4Contest.flatpakref` | All distributions with Flatpak |
|
| Linux with Flatpak | Flatpak reference | `de.x08.KST4Contest.flatpakref` |
|
||||||
|
| macOS Apple Silicon | DMG for ARM64 | `KST4Contest-v<version>-macos-arm64.dmg` |
|
||||||
> **Recommended for Linux:** The Flatpak installation is the easiest way to stay up to date — `flatpak update` handles all future updates automatically. The repository is GPG-signed for security.
|
| macOS Intel | DMG for x86_64 | `KST4Contest-v<version>-macos-x86_64.dmg` |
|
||||||
|
|
||||||
### macOS
|
|
||||||
|
|
||||||
> ⚠️ **Best-Effort Support:** macOS builds are provided as a convenience but are **not fully tested**. We build and release macOS binaries with every release, but we cannot test every scenario on macOS. If you encounter issues, please report them – we will do our best to address them, but cannot guarantee the same level of support as for Windows and Linux.
|
|
||||||
|
|
||||||
The latest version can be downloaded as a DMG disk image (available for both Apple Silicon and Intel Macs):
|
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
|
||||||
|
|
||||||
The filename has the format `KST4Contest-v<version_number>-macos-<arch>.dmg`, where `<arch>` is `arm64` (Apple Silicon) or `x86_64` (Intel).
|
|
||||||
|
|
||||||
|
Only download application packages from the official GitHub Releases, the KST4Contest Flatpak repository or the linked AUR packages. Files from other sources may have been built differently, may be outdated or may have been modified.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Installation
|
## Installing on Windows
|
||||||
|
|
||||||
### Windows
|
KST4Contest is distributed as a ZIP package for Windows. A conventional installer is not required.
|
||||||
|
|
||||||
1. Download the ZIP file.
|
1. Download `praktiKST-v<version>-windows-x64.zip` from the latest release.
|
||||||
2. Unzip the ZIP file into a folder of your choice.
|
2. Extract the ZIP file completely into a dedicated folder.
|
||||||
3. Run `praktiKST.exe`.
|
3. Open the extracted folder.
|
||||||
|
4. Start `praktiKST.exe`.
|
||||||
|
|
||||||
Settings are stored at `%USERPROFILE%\.praktikst\preferences.xml`.
|
Do not start the application directly from the compressed ZIP file. KST4Contest consists of several files and a bundled runtime. Windows can only use this structure reliably after the archive has been extracted completely.
|
||||||
|
|
||||||
### Linux
|
The application settings are not stored in the extracted program directory. They are stored in your user profile:
|
||||||
|
|
||||||
Settings are always stored at `~/.praktikst/preferences.xml`.
|
```text
|
||||||
|
%USERPROFILE%\.praktiKST\preferences.xml
|
||||||
|
```
|
||||||
|
|
||||||
#### AppImage
|
This allows a new application version to be extracted into a different directory without losing the existing settings.
|
||||||
|
|
||||||
1. Download the AppImage.
|
---
|
||||||
2. Make it executable: `chmod +x KST4Contest-v<version>-linux-x86_64.AppImage`
|
|
||||||
3. Run it.
|
|
||||||
|
|
||||||
#### Debian / Ubuntu
|
## Installing on Linux
|
||||||
|
|
||||||
|
Several Linux package formats are available. The appropriate choice depends less on KST4Contest itself than on your distribution and the way you prefer to manage updates.
|
||||||
|
|
||||||
|
| Installation method | Useful when … |
|
||||||
|
|---|---|
|
||||||
|
| **Flatpak** | updates should be managed centrally and Flatpak is already in use |
|
||||||
|
| **AppImage** | KST4Contest should run as a portable file without package installation |
|
||||||
|
| **DEB/RPM** | the distribution’s native package manager should be used |
|
||||||
|
| **Arch package/AUR** | Arch Linux, Manjaro or EndeavourOS is being used |
|
||||||
|
|
||||||
|
### Flatpak
|
||||||
|
|
||||||
|
For most Linux users, Flatpak is the simplest way to keep KST4Contest installed and manageable through the system’s update tools. The KST4Contest repository is GPG-signed and contains the Stable, Beta and Nightly channels.
|
||||||
|
|
||||||
|
#### Installing Stable from the release file
|
||||||
|
|
||||||
|
Download `de.x08.KST4Contest.flatpakref` from the latest release and open it with the software manager provided by your desktop environment.
|
||||||
|
|
||||||
|
Alternatively, install it from a terminal:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install ./de.x08.KST4Contest.flatpakref
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Adding the KST4Contest repository
|
||||||
|
|
||||||
|
The repository only needs to be added once:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak remote-add --if-not-exists kst4contest \
|
||||||
|
https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then install the Stable version:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//stable
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Installing Beta
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//beta
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Installing Nightly
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
All three KST4Contest channels use the same application ID. Installing multiple KST4Contest channels in parallel is therefore not supported.
|
||||||
|
|
||||||
|
For example, to switch from Stable to Nightly:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak uninstall de.x08.KST4Contest//stable
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
This does not automatically remove the personal settings stored in `~/.praktiKST`.
|
||||||
|
|
||||||
|
Installed Flatpak applications can be updated with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak update de.x08.KST4Contest
|
||||||
|
```
|
||||||
|
|
||||||
|
Depending on the desktop environment, the graphical software manager may also display or automatically install available Flatpak updates. The `flatpak update` command itself performs an update; it does not promise to turn up and run by itself one day.
|
||||||
|
|
||||||
|
### AppImage
|
||||||
|
|
||||||
|
The AppImage does not require a conventional installation.
|
||||||
|
|
||||||
|
1. Download `KST4Contest-v<version>-linux-x86_64.AppImage`.
|
||||||
|
2. Open a terminal in the download directory.
|
||||||
|
3. Make the file executable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x KST4Contest-v<version>-linux-x86_64.AppImage
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Start KST4Contest:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./KST4Contest-v<version>-linux-x86_64.AppImage
|
||||||
|
```
|
||||||
|
|
||||||
|
The AppImage can then be moved to another location, such as `~/Applications`.
|
||||||
|
|
||||||
|
### Debian and Ubuntu
|
||||||
|
|
||||||
|
Install the DEB package with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
Or double-click the `.deb` file in your file manager.
|
Alternatively, open the file with a graphical package manager.
|
||||||
|
|
||||||
#### Fedora / RHEL
|
### Fedora and compatible RPM systems
|
||||||
|
|
||||||
|
Install the RPM package with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf install ./KST4Contest-v<version>-fedora-x86_64.rpm
|
sudo dnf install ./KST4Contest-v<version>-fedora-x86_64.rpm
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Arch Linux
|
### Arch Linux: installing the release package
|
||||||
|
|
||||||
**Via AUR (recommended)** — updates automatically with your system:
|
The Arch package downloaded from the GitHub Release can be installed directly:
|
||||||
|
|
||||||
```bash
|
|
||||||
yay -S kst4contest-bin # pre-built binary, fastest install
|
|
||||||
# or
|
|
||||||
yay -S kst4contest # build from source
|
|
||||||
# or
|
|
||||||
yay -S kst4contest-git # always latest git HEAD (1.42+)
|
|
||||||
```
|
|
||||||
|
|
||||||
Any AUR helper works (`paru`, `trizen`, etc.). `kst4contest-bin` is the easiest option since it installs the same pre-built binary as the release download.
|
|
||||||
|
|
||||||
Or install the release package manually:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Flatpak
|
### Arch Linux: installing from the AUR
|
||||||
|
|
||||||
Download `de.x08.KST4Contest.flatpakref` from the [latest release](https://github.com/praktimarc/kst4contest/releases/latest) and open it, or run:
|
Three variants are available in the AUR:
|
||||||
```bash
|
|
||||||
flatpak install de.x08.KST4Contest.flatpakref
|
|
||||||
```
|
|
||||||
|
|
||||||
Or add the remote manually (recommended for nightly/beta access):
|
| Package | Content |
|
||||||
```bash
|
|---|---|
|
||||||
flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
| [`kst4contest-bin`](https://aur.archlinux.org/packages/kst4contest-bin) | Pre-built package from the current Stable release |
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
| [`kst4contest`](https://aur.archlinux.org/packages/kst4contest) | Stable release built locally from source |
|
||||||
```
|
| [`kst4contest-git`](https://aur.archlinux.org/packages/kst4contest-git) | Current development state from the `main` branch |
|
||||||
|
|
||||||
#### Flatpak Channels (nightly / beta / stable)
|
For most users, `kst4contest-bin` is the straightforward option:
|
||||||
|
|
||||||
The Flatpak repository provides three channels, all served from the same remote:
|
|
||||||
|
|
||||||
| Channel | Content | Built on |
|
|
||||||
|---|---|---|
|
|
||||||
| `stable` | Current stable version | Every normal release tag |
|
|
||||||
| `beta` | Pre-release version | Tags prefixed with `beta-` |
|
|
||||||
| `nightly` | Development build (main branch) | Every push to main / daily |
|
|
||||||
|
|
||||||
Add the remote once, then install the channel you want:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
yay -S kst4contest-bin
|
||||||
|
|
||||||
# Stable (default)
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
|
||||||
|
|
||||||
# Beta
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest//beta
|
|
||||||
|
|
||||||
# Nightly
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest//nightly
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note:** Flatpak only allows one installed version per App-ID at a time. To switch channels, uninstall the current version first:
|
To build the Stable release from source:
|
||||||
> ```bash
|
|
||||||
> flatpak uninstall de.x08.KST4Contest
|
|
||||||
> flatpak install kst4contest de.x08.KST4Contest//nightly
|
|
||||||
> ```
|
|
||||||
|
|
||||||
Updates work as usual with `flatpak update`.
|
```bash
|
||||||
|
yay -S kst4contest
|
||||||
|
```
|
||||||
|
|
||||||
The `flatpakref` files for beta and stable are attached to their respective [GitHub Releases](https://github.com/praktimarc/kst4contest/releases). The nightly `flatpakref` (`de.x08.KST4Contest.nightly.flatpakref`) is available as an artifact on the [GitHub Actions](https://github.com/praktimarc/kst4contest/actions) tab (kept for 14 days) — for nightly builds, the manual remote approach above is usually more convenient.
|
To build the current development state:
|
||||||
|
|
||||||
### macOS
|
```bash
|
||||||
1. Download the DMG file for your architecture (Apple Silicon or Intel).
|
yay -S kst4contest-git
|
||||||
|
```
|
||||||
|
|
||||||
|
All three packages provide the same application and are therefore defined as conflicting with one another. Install only one variant at a time.
|
||||||
|
|
||||||
|
AUR updates are included when the selected AUR helper checks for package updates, for example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yay -Syu
|
||||||
|
```
|
||||||
|
|
||||||
|
They do not happen automatically merely because the package came from the AUR.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installing on macOS
|
||||||
|
|
||||||
|
> **Best-effort support:** The macOS packages are built together with the other releases, but they are not tested to the same extent as the Windows and Linux versions. Feedback is welcome; fully tested support for every macOS version and hardware variant cannot currently be guaranteed.
|
||||||
|
|
||||||
|
Apple Silicon Macs require the package marked `arm64`. Intel Macs require the package marked `x86_64`.
|
||||||
|
|
||||||
|
1. Download the appropriate DMG file.
|
||||||
2. Open the DMG file.
|
2. Open the DMG file.
|
||||||
3. Drag `KST4Contest.app` into your **Applications** folder.
|
3. Drag `KST4Contest.app` into the **Applications** folder.
|
||||||
4. On first launch, macOS may show a warning because the app is not notarised. To open it:
|
4. Start KST4Contest from the Applications folder or Launchpad.
|
||||||
- Right-click (or Control-click) on `KST4Contest.app` in Finder and choose **Open**.
|
|
||||||
- Alternatively, go to **System Settings → Privacy & Security** and click **Open Anyway**.
|
|
||||||
5. Run KST4Contest from your Applications folder or Launchpad.
|
|
||||||
|
|
||||||
Settings are stored at `~/.praktikst/preferences.xml`.
|
The application is not currently notarized by Apple. macOS may therefore block the first launch.
|
||||||
|
|
||||||
|
If the application came from the official GitHub Release:
|
||||||
|
|
||||||
|
1. Open the Applications folder in Finder.
|
||||||
|
2. Right-click or Control-click `KST4Contest.app`.
|
||||||
|
3. Select **Open**.
|
||||||
|
4. Confirm the launch in the dialog that appears.
|
||||||
|
|
||||||
|
Alternatively, macOS may provide an **Open Anyway** button under **System Settings → Privacy & Security**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Updating
|
## Where are the settings stored?
|
||||||
|
|
||||||
KST4Contest includes an **automatic update notification service**: as soon as a new version is available, a window will appear at startup with:
|
KST4Contest stores its settings and other local working files in the user’s home directory. The application directory and the data directory are separate.
|
||||||
- information that a new version is available,
|
|
||||||
- a changelog,
|
|
||||||
- the download link for the new version.
|
|
||||||
|
|
||||||

|
| Operating system | Data directory | Settings file |
|
||||||
|
|---|---|---|
|
||||||
|
| Windows | `%USERPROFILE%\.praktiKST\` | `%USERPROFILE%\.praktiKST\preferences.xml` |
|
||||||
|
| Linux | `~/.praktiKST/` | `~/.praktiKST/preferences.xml` |
|
||||||
|
| macOS | `~/.praktiKST/` | `~/.praktiKST/preferences.xml` |
|
||||||
|
|
||||||
### Update Process
|
Note the spelling `.praktiKST` with an uppercase `KST`. Linux and macOS distinguish between uppercase and lowercase letters. `.praktikst` would simply be a different directory.
|
||||||
|
|
||||||
#### Windows
|
|
||||||
|
|
||||||
Currently, there is only one way to update:
|
|
||||||
|
|
||||||
1. Delete the old folder.
|
|
||||||
2. Unzip the new ZIP file.
|
|
||||||
|
|
||||||
The settings file (`preferences.xml`) is preserved because it is stored in the user folder, not the program folder.
|
|
||||||
|
|
||||||
#### Linux
|
|
||||||
|
|
||||||
- **AppImage**: Download the new AppImage, make it executable (`chmod +x`), optionally delete the old one.
|
|
||||||
- **Debian/Ubuntu**: `sudo apt install ./KST4Contest-v<version>-debian-amd64.deb`
|
|
||||||
- **Fedora/RHEL**: `sudo dnf upgrade ./KST4Contest-v<version>-fedora-x86_64.rpm`
|
|
||||||
- **Arch Linux (AUR)**: `yay -S kst4contest-bin`
|
|
||||||
- **Arch Linux (manual)**: `sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst`
|
|
||||||
- **Flatpak (repository)**: `flatpak update` – updates all Flatpak apps including KST4Contest.
|
|
||||||
|
|
||||||
#### macOS
|
|
||||||
|
|
||||||
1. Download the new DMG file.
|
|
||||||
2. Open the DMG.
|
|
||||||
3. Drag the new `KST4Contest.app` into your **Applications** folder, replacing the old version.
|
|
||||||
|
|
||||||
|
An application update does not remove this directory. Even so, creating a backup before a major version change or extensive configuration work is sensible.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Known Issues at Startup
|
## Updates
|
||||||
|
|
||||||
### Norton 360
|
When KST4Contest starts, it checks whether a newer Stable release is available. If it finds one, it displays an information window containing:
|
||||||
|
|
||||||
Norton 360 classifies `praktiKST.exe` as dangerous (false positive). An exception must be created for the file:
|
- the installed version,
|
||||||
|
- the latest Stable version,
|
||||||
|
- a short overview of the main changes,
|
||||||
|
- the changelog,
|
||||||
|
- known issues,
|
||||||
|
- a link to the corresponding GitHub Release page.
|
||||||
|
|
||||||
1. Open Norton 360.
|

|
||||||
2. Security → History → Find the corresponding event.
|
|
||||||
3. Select "Restore & Add Exception".
|
|
||||||
|
|
||||||
*(Reported by PE0WGA, Franz van Velzen – thank you!)*
|
The update checker does not install anything. It reports the new version and opens the platform-neutral release page. From there, you must select the appropriate package for Windows, Linux or macOS.
|
||||||
|
|
||||||
|
### Updating Windows
|
||||||
|
|
||||||
|
1. Close KST4Contest.
|
||||||
|
2. Download the new Windows ZIP package.
|
||||||
|
3. Extract it into a new or empty directory.
|
||||||
|
4. Start the new version.
|
||||||
|
5. Check that the existing settings have been loaded.
|
||||||
|
6. Remove the old application directory only after that.
|
||||||
|
|
||||||
|
The settings are preserved because they are stored under `%USERPROFILE%\.praktiKST`, not in the application directory.
|
||||||
|
|
||||||
|
### Updating an AppImage
|
||||||
|
|
||||||
|
1. Download the new AppImage.
|
||||||
|
2. Make it executable.
|
||||||
|
3. Start the new file.
|
||||||
|
4. Remove the previous AppImage only after the new version works.
|
||||||
|
|
||||||
|
### Updating Debian and Ubuntu
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating Fedora
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf upgrade ./KST4Contest-v<version>-fedora-x86_64.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating the Arch package
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating an AUR package
|
||||||
|
|
||||||
|
Update the installed package through the selected AUR helper, for example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yay -Syu
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating Flatpak
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak update de.x08.KST4Contest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating macOS
|
||||||
|
|
||||||
|
1. Download the new DMG file for the appropriate architecture.
|
||||||
|
2. Close KST4Contest.
|
||||||
|
3. Open the DMG file.
|
||||||
|
4. Replace `KST4Contest.app` in the Applications folder.
|
||||||
|
5. Start the new version and check the existing settings.
|
||||||
|
|
||||||
|
The configuration under `~/.praktiKST` is not affected.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Problems during the first launch
|
||||||
|
|
||||||
|
### Windows reports an unknown application
|
||||||
|
|
||||||
|
KST4Contest is not currently signed with a commercial Windows code-signing certificate. Windows or an additional security product may therefore warn about an unknown or rarely downloaded application.
|
||||||
|
|
||||||
|
Check the following first:
|
||||||
|
|
||||||
|
- Did the file come from the [official KST4Contest release](https://github.com/praktimarc/kst4contest/releases/latest)?
|
||||||
|
- Does the filename match the published release?
|
||||||
|
- Was the file downloaded completely?
|
||||||
|
- Does the security product report a specific detection name or only a general reputation warning?
|
||||||
|
|
||||||
|
A warning alone is neither reliable proof of malware nor automatically a false positive. If the origin of the file is unclear, do not run it or restore it from quarantine.
|
||||||
|
|
||||||
|
Some users have reported quarantine messages from Norton 360 in particular. If the warning can be reproduced, please create a [GitHub issue](https://github.com/praktimarc/kst4contest/issues) and include:
|
||||||
|
|
||||||
|
- the KST4Contest version,
|
||||||
|
- the complete filename,
|
||||||
|
- the security product and its version,
|
||||||
|
- the reported detection name,
|
||||||
|
- a screenshot of the warning, if possible.
|
||||||
|
|
||||||
|
### The AppImage does not start
|
||||||
|
|
||||||
|
Check the executable permission first:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x KST4Contest-v<version>-linux-x86_64.AppImage
|
||||||
|
```
|
||||||
|
|
||||||
|
Then start the file from a terminal. Error messages shown there are usually more useful than a double-click that simply produces no visible result.
|
||||||
|
|
||||||
|
### macOS blocks the application
|
||||||
|
|
||||||
|
Use the **Open** function described under [Installing on macOS](#installing-on-macos). Before doing so, verify that the DMG file came from the official GitHub Release.
|
||||||
|
|
||||||
|
### The problem remains
|
||||||
|
|
||||||
|
First check whether the problem has already been reported under [GitHub Issues](https://github.com/praktimarc/kst4contest/issues). If it has not, create a new issue containing:
|
||||||
|
|
||||||
|
- the operating system and version,
|
||||||
|
- the KST4Contest version,
|
||||||
|
- the installation method,
|
||||||
|
- the exact error message,
|
||||||
|
- the steps required to reproduce the problem.
|
||||||
|
|
||||||
|
“It does not work” usually describes the situation accurately, but it is of limited value during diagnosis.
|
||||||
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 48 KiB |
@@ -18,8 +18,15 @@ public class ApplicationConstants {
|
|||||||
public static final String APPLICATION_NAME = "praktiKST";
|
public static final String APPLICATION_NAME = "praktiKST";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name of file to store preferences in.
|
* Version shown to the user and used for semantic version comparison.
|
||||||
*/
|
*/
|
||||||
|
public static final String APPLICATION_CURRENT_VERSION = "1.42";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legacy numeric representation used only while older update feeds and
|
||||||
|
* application versions still exist.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.42;
|
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.42;
|
||||||
|
|
||||||
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://kst4contest.hamradioonline.de/kst4ContestVersionInfo.xml";
|
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://kst4contest.hamradioonline.de/kst4ContestVersionInfo.xml";
|
||||||
|
|||||||
@@ -48,7 +48,8 @@ public class BeaconTask extends TimerTask {
|
|||||||
replaceVariables = replaceVariables.replaceAll("MYCALL", this.chatController.getChatPreferences().getStn_loginCallSign());
|
replaceVariables = replaceVariables.replaceAll("MYCALL", this.chatController.getChatPreferences().getStn_loginCallSign());
|
||||||
replaceVariables = replaceVariables.replaceAll("MYLOCATOR", this.chatController.getChatPreferences().getStn_loginLocatorMainCat());
|
replaceVariables = replaceVariables.replaceAll("MYLOCATOR", this.chatController.getChatPreferences().getStn_loginLocatorMainCat());
|
||||||
replaceVariables = replaceVariables.replaceAll("MYQTF", this.chatController.getChatPreferences().getActualQTF().getValue() + "");
|
replaceVariables = replaceVariables.replaceAll("MYQTF", this.chatController.getChatPreferences().getActualQTF().getValue() + "");
|
||||||
replaceVariables = replaceVariables.replaceAll("SECONDQRG", this.chatController.getChatPreferences().getActualQTF().getValue() + "");
|
replaceVariables = replaceVariables.replaceAll("SECONDQRG", this.chatController.getChatPreferences().getMYQRGSecondCat().getValue() + "");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
beaconMSG.setMessageText(
|
beaconMSG.setMessageText(
|
||||||
|
|||||||
@@ -163,14 +163,16 @@ public class ChatController implements ThreadStatusCallback, PstRotatorEventList
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void initRotor() {
|
public void initRotor() {
|
||||||
// Beispiel: PSTRotator läuft lokal auf Port 12060
|
rotatorClient = new PstRotatorClient(
|
||||||
// Der Client wird automatisch auf 12061 hören.
|
chatPreferences.getStn_pstRotatorHost(),
|
||||||
rotatorClient = new PstRotatorClient("127.0.0.1", 12000, this, this); //TODO: IP anpassen, Port auch aus den prefs holen, default 12000
|
chatPreferences.getStn_pstRotatorPort(),
|
||||||
|
this,
|
||||||
|
this
|
||||||
|
);
|
||||||
|
|
||||||
// Startet den Thread und das Polling
|
rotatorClient.start();
|
||||||
rotatorClient.start();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sets rotator to "AZ DEGREE" by button click <br/><br/>
|
* sets rotator to "AZ DEGREE" by button click <br/><br/>
|
||||||
@@ -2193,7 +2195,11 @@ public class ChatController implements ThreadStatusCallback, PstRotatorEventList
|
|||||||
messageTXBus = new LinkedBlockingQueue<ChatMessage>();
|
messageTXBus = new LinkedBlockingQueue<ChatMessage>();
|
||||||
|
|
||||||
// socket = new Socket(hostname, port);//socket for the on4kst chat server
|
// socket = new Socket(hostname, port);//socket for the on4kst chat server
|
||||||
socket = new Socket(chatController.chatPreferences.getStn_on4kstServersDns(), port);//socket for the on4kst chat server
|
socket = new Socket(
|
||||||
|
chatPreferences.getStn_on4kstServersDns(),
|
||||||
|
chatPreferences.getStn_on4kstServersPort()
|
||||||
|
);//socket for the on4kst chat server
|
||||||
|
|
||||||
System.out.println("Connected to the chat server: " + socket.isConnected());
|
System.out.println("Connected to the chat server: " + socket.isConnected());
|
||||||
|
|
||||||
ByteBuffer buffer = ByteBuffer.allocate(1024);
|
ByteBuffer buffer = ByteBuffer.allocate(1024);
|
||||||
@@ -2533,7 +2539,7 @@ public class ChatController implements ThreadStatusCallback, PstRotatorEventList
|
|||||||
|
|
||||||
String loginString = "";
|
String loginString = "";
|
||||||
loginString = "LOGINC|" + chatPreferences.getStn_loginCallSign() + "|" + chatPreferences.getStn_loginPassword()
|
loginString = "LOGINC|" + chatPreferences.getStn_loginCallSign() + "|" + chatPreferences.getStn_loginPassword()
|
||||||
+ "|" + chatPreferences.getLoginChatCategoryMain().getCategoryNumber() + "|praktiKST v" + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER
|
+ "|" + chatPreferences.getLoginChatCategoryMain().getCategoryNumber() + "|praktiKST v" + ApplicationConstants.APPLICATION_CURRENT_VERSION
|
||||||
+ "|25|0|1|" + "0" + "|0|";
|
+ "|25|0|1|" + "0" + "|0|";
|
||||||
|
|
||||||
// System.out.println(loginString);
|
// System.out.println(loginString);
|
||||||
|
|||||||
@@ -829,7 +829,7 @@ public class MessageBusManagementThread extends Thread {
|
|||||||
|
|
||||||
versionInfo.setSender(itsMe);
|
versionInfo.setSender(itsMe);
|
||||||
versionInfo.setReceiver(newMessageArrived.getSender());
|
versionInfo.setReceiver(newMessageArrived.getSender());
|
||||||
versionInfo.setMessageText("/CQ " + newMessageArrived.getSender().getCallSign() + " " + ApplicationConstants.AUTOANSWER_PREFIX + " " + "KST4Contest " + " v" + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER + " by DO5AMF");
|
versionInfo.setMessageText("/CQ " + newMessageArrived.getSender().getCallSign() + " " + ApplicationConstants.AUTOANSWER_PREFIX + " " + "KST4Contest " + " v" + ApplicationConstants.APPLICATION_CURRENT_VERSION + " by DO5AMF");
|
||||||
|
|
||||||
this.client.getMessageTXBus().add(versionInfo);
|
this.client.getMessageTXBus().add(versionInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -319,6 +319,14 @@ public class ReadUDPbyUCXMessageThread extends Thread {
|
|||||||
NodeList list = doc.getElementsByTagName("contactinfo");
|
NodeList list = doc.getElementsByTagName("contactinfo");
|
||||||
if (list.getLength() != 0) {
|
if (list.getLength() != 0) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* QSO and TRX information share the same UDP receiver. The log-sync
|
||||||
|
* preference therefore controls processing, not ownership of the socket.
|
||||||
|
*/
|
||||||
|
if (!client.getChatPreferences().isLogsynch_ucxUDPWkdCallListenerEnabled()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
for (int temp = 0; temp < list.getLength(); temp++) {
|
for (int temp = 0; temp < list.getLength(); temp++) {
|
||||||
|
|
||||||
Node node = list.item(temp);
|
Node node = list.item(temp);
|
||||||
@@ -591,6 +599,15 @@ public class ReadUDPbyUCXMessageThread extends Thread {
|
|||||||
} else {
|
} else {
|
||||||
list = doc.getElementsByTagName("RadioInfo");
|
list = doc.getElementsByTagName("RadioInfo");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RadioInfo packets may arrive on the shared UDP port even when automatic
|
||||||
|
* QRG synchronization is disabled. Ignore them unless TRX sync is enabled.
|
||||||
|
*/
|
||||||
|
if (list.getLength() != 0
|
||||||
|
&& !client.getChatPreferences().isTrxSynch_ucxLogUDPListenerEnabled()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
for (int temp = 0; temp < list.getLength(); temp++) {
|
for (int temp = 0; temp < list.getLength(); temp++) {
|
||||||
|
|
||||||
Node node = list.item(temp);
|
Node node = list.item(temp);
|
||||||
|
|||||||
@@ -108,6 +108,16 @@ public class UpdateChecker {
|
|||||||
|
|
||||||
Element element = (Element) node;
|
Element element = (Element) node;
|
||||||
updateInfos.setLatestVersionNumberOnServer(Double.parseDouble(element.getElementsByTagName("versionNumber").item(0).getTextContent()));
|
updateInfos.setLatestVersionNumberOnServer(Double.parseDouble(element.getElementsByTagName("versionNumber").item(0).getTextContent()));
|
||||||
|
|
||||||
|
NodeList semanticVersionNodes =
|
||||||
|
element.getElementsByTagName("semanticVersion");
|
||||||
|
|
||||||
|
if (semanticVersionNodes.getLength() > 0) {
|
||||||
|
updateInfos.setLatestSemanticVersionOnServer(
|
||||||
|
semanticVersionNodes.item(0).getTextContent()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
updateInfos.setAdminMessage(element.getElementsByTagName("adminMessage").item(0).getTextContent());
|
updateInfos.setAdminMessage(element.getElementsByTagName("adminMessage").item(0).getTextContent());
|
||||||
updateInfos.setMajorChanges(element.getElementsByTagName("majorChanges").item(0)
|
updateInfos.setMajorChanges(element.getElementsByTagName("majorChanges").item(0)
|
||||||
.getTextContent());
|
.getTextContent());
|
||||||
|
|||||||
@@ -26,6 +26,14 @@ public class UserActualizationTask extends TimerTask {
|
|||||||
|
|
||||||
Thread.currentThread().setName("UserActualizationTask");
|
Thread.currentThread().setName("UserActualizationTask");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* File-based log synchronization is optional. Do not create, open or parse the
|
||||||
|
* configured file while the feature is disabled.
|
||||||
|
*/
|
||||||
|
if (!client.getChatPreferences().isLogsynch_fileBasedWkdCallInterpreterEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// System.out.println("[Useract: ] Thread runned now");
|
// System.out.println("[Useract: ] Thread runned now");
|
||||||
|
|
||||||
// System.out.println("***********************Useract started");
|
// System.out.println("***********************Useract started");
|
||||||
|
|||||||
@@ -159,6 +159,8 @@ public class ChatPreferences {
|
|||||||
int stn_on4kstServersPort = 23001;
|
int stn_on4kstServersPort = 23001;
|
||||||
|
|
||||||
boolean stn_pstRotatorEnabled = false;
|
boolean stn_pstRotatorEnabled = false;
|
||||||
|
String stn_pstRotatorHost = "127.0.0.1";
|
||||||
|
int stn_pstRotatorPort = 12000;
|
||||||
|
|
||||||
boolean stn_loginAFKState = false; //always start as here
|
boolean stn_loginAFKState = false; //always start as here
|
||||||
String stn_loginCallSign = "do5amf";
|
String stn_loginCallSign = "do5amf";
|
||||||
@@ -307,8 +309,8 @@ public class ChatPreferences {
|
|||||||
String messageHandling_unworkedStnRequesterBeaconsText;
|
String messageHandling_unworkedStnRequesterBeaconsText;
|
||||||
String messageHandling_beaconUnworkedstationsPrefix;
|
String messageHandling_beaconUnworkedstationsPrefix;
|
||||||
|
|
||||||
String messageHandling_autoAnswerTextMainCat = "Hi, sry I am not qrv, just testing new features of KST4Contest " + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
String messageHandling_autoAnswerTextMainCat = "Hi, sry I am not qrv, just testing new features of KST4Contest " + ApplicationConstants.APPLICATION_CURRENT_VERSION;
|
||||||
String messageHandling_autoAnswerTextSecondCat = "Hi, sry I am not qrv, just testing new features of KST4Contest " + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
String messageHandling_autoAnswerTextSecondCat = "Hi, sry I am not qrv, just testing new features of KST4Contest " + ApplicationConstants.APPLICATION_CURRENT_VERSION;
|
||||||
|
|
||||||
boolean messageHandling_autoAnswerEnabled = false;
|
boolean messageHandling_autoAnswerEnabled = false;
|
||||||
boolean messageHandling_autoAnswerEnabledSecondCat = false;
|
boolean messageHandling_autoAnswerEnabledSecondCat = false;
|
||||||
@@ -761,6 +763,30 @@ public class ChatPreferences {
|
|||||||
this.stn_pstRotatorEnabled = stn_pstRotatorEnabled;
|
this.stn_pstRotatorEnabled = stn_pstRotatorEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getStn_pstRotatorHost() {
|
||||||
|
return stn_pstRotatorHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStn_pstRotatorHost(String stn_pstRotatorHost) {
|
||||||
|
if (stn_pstRotatorHost == null || stn_pstRotatorHost.isBlank()) {
|
||||||
|
this.stn_pstRotatorHost = "127.0.0.1";
|
||||||
|
} else {
|
||||||
|
this.stn_pstRotatorHost = stn_pstRotatorHost.trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStn_pstRotatorPort() {
|
||||||
|
return stn_pstRotatorPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStn_pstRotatorPort(int stn_pstRotatorPort) {
|
||||||
|
if (stn_pstRotatorPort < 1 || stn_pstRotatorPort > 65535) {
|
||||||
|
this.stn_pstRotatorPort = 12000;
|
||||||
|
} else {
|
||||||
|
this.stn_pstRotatorPort = stn_pstRotatorPort;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public SimpleStringProperty getNotify_optionalFrequencyPrefix() {
|
public SimpleStringProperty getNotify_optionalFrequencyPrefix() {
|
||||||
return notify_optionalFrequencyPrefix;
|
return notify_optionalFrequencyPrefix;
|
||||||
}
|
}
|
||||||
@@ -1418,6 +1444,13 @@ public class ChatPreferences {
|
|||||||
stn_pstRotatorEnabled.setTextContent(this.stn_pstRotatorEnabled + "");
|
stn_pstRotatorEnabled.setTextContent(this.stn_pstRotatorEnabled + "");
|
||||||
station.appendChild(stn_pstRotatorEnabled);
|
station.appendChild(stn_pstRotatorEnabled);
|
||||||
|
|
||||||
|
Element stn_pstRotatorHost = doc.createElement("stn_pstRotatorHost");
|
||||||
|
stn_pstRotatorHost.setTextContent(this.stn_pstRotatorHost);
|
||||||
|
station.appendChild(stn_pstRotatorHost);
|
||||||
|
|
||||||
|
Element stn_pstRotatorPort = doc.createElement("stn_pstRotatorPort");
|
||||||
|
stn_pstRotatorPort.setTextContent(Integer.toString(this.stn_pstRotatorPort));
|
||||||
|
station.appendChild(stn_pstRotatorPort);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2092,6 +2125,22 @@ public class ChatPreferences {
|
|||||||
|
|
||||||
stn_pstRotatorEnabled = getBoolean(stationEl, stn_pstRotatorEnabled, "stn_pstRotatorEnabled");
|
stn_pstRotatorEnabled = getBoolean(stationEl, stn_pstRotatorEnabled, "stn_pstRotatorEnabled");
|
||||||
|
|
||||||
|
setStn_pstRotatorHost(
|
||||||
|
getText(
|
||||||
|
stationEl,
|
||||||
|
stn_pstRotatorHost,
|
||||||
|
"stn_pstRotatorHost"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
setStn_pstRotatorPort(
|
||||||
|
getInt(
|
||||||
|
stationEl,
|
||||||
|
stn_pstRotatorPort,
|
||||||
|
"stn_pstRotatorPort"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,7 +3,10 @@ package kst4contest.model;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class UpdateInformation {
|
public class UpdateInformation {
|
||||||
double latestVersionNumberOnServer = 1.26; //dummy value to prevent nullpointerexc
|
// double latestVersionNumberOnServer = 1.26; //dummy value to prevent nullpointerexc
|
||||||
|
double latestVersionNumberOnServer = 0.0;
|
||||||
|
String latestSemanticVersionOnServer = "";
|
||||||
|
|
||||||
String adminMessage ="";
|
String adminMessage ="";
|
||||||
String majorChanges ="";
|
String majorChanges ="";
|
||||||
String latestVersionPathOnWebserver="";
|
String latestVersionPathOnWebserver="";
|
||||||
@@ -36,6 +39,27 @@ public class UpdateInformation {
|
|||||||
public void setLatestVersionNumberOnServer(double latestVersionNumberOnServer) {
|
public void setLatestVersionNumberOnServer(double latestVersionNumberOnServer) {
|
||||||
this.latestVersionNumberOnServer = latestVersionNumberOnServer;
|
this.latestVersionNumberOnServer = latestVersionNumberOnServer;
|
||||||
}
|
}
|
||||||
|
public String getLatestSemanticVersionOnServer() {
|
||||||
|
return latestSemanticVersionOnServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLatestSemanticVersionOnServer(String latestSemanticVersionOnServer) {
|
||||||
|
this.latestSemanticVersionOnServer =
|
||||||
|
latestSemanticVersionOnServer == null ? "" : latestSemanticVersionOnServer.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasSemanticVersion() {
|
||||||
|
return !latestSemanticVersionOnServer.isBlank();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLatestVersionForDisplay() {
|
||||||
|
if (hasSemanticVersion()) {
|
||||||
|
return latestSemanticVersionOnServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Double.toString(latestVersionNumberOnServer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getAdminMessage() {
|
public String getAdminMessage() {
|
||||||
return adminMessage;
|
return adminMessage;
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
package kst4contest.utils;
|
||||||
|
|
||||||
|
public final class VersionUtils {
|
||||||
|
|
||||||
|
private VersionUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares numeric release versions such as 1.41, 1.41.1 and 1.41.10.
|
||||||
|
*
|
||||||
|
* Pre-release and build suffixes are ignored because the update feed
|
||||||
|
* currently publishes stable releases only.
|
||||||
|
*/
|
||||||
|
public static int compareStableVersions(String left, String right) {
|
||||||
|
int[] leftParts = parseVersion(left);
|
||||||
|
int[] rightParts = parseVersion(right);
|
||||||
|
int partCount = Math.max(leftParts.length, rightParts.length);
|
||||||
|
|
||||||
|
for (int index = 0; index < partCount; index++) {
|
||||||
|
int leftPart = index < leftParts.length ? leftParts[index] : 0;
|
||||||
|
int rightPart = index < rightParts.length ? rightParts[index] : 0;
|
||||||
|
|
||||||
|
int comparison = Integer.compare(leftPart, rightPart);
|
||||||
|
if (comparison != 0) {
|
||||||
|
return comparison;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int[] parseVersion(String version) {
|
||||||
|
if (version == null || version.isBlank()) {
|
||||||
|
throw new IllegalArgumentException("Version must not be empty");
|
||||||
|
}
|
||||||
|
|
||||||
|
String normalized = version.trim();
|
||||||
|
|
||||||
|
if (normalized.startsWith("v") || normalized.startsWith("V")) {
|
||||||
|
normalized = normalized.substring(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int hyphenIndex = normalized.indexOf('-');
|
||||||
|
int plusIndex = normalized.indexOf('+');
|
||||||
|
int suffixIndex;
|
||||||
|
|
||||||
|
if (hyphenIndex < 0) {
|
||||||
|
suffixIndex = plusIndex;
|
||||||
|
} else if (plusIndex < 0) {
|
||||||
|
suffixIndex = hyphenIndex;
|
||||||
|
} else {
|
||||||
|
suffixIndex = Math.min(hyphenIndex, plusIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (suffixIndex >= 0) {
|
||||||
|
normalized = normalized.substring(0, suffixIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] textParts = normalized.split("\\.");
|
||||||
|
int[] numericParts = new int[textParts.length];
|
||||||
|
|
||||||
|
for (int index = 0; index < textParts.length; index++) {
|
||||||
|
numericParts[index] = Integer.parseInt(textParts[index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return numericParts;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
package kst4contest.view;
|
package kst4contest.view;
|
||||||
|
import kst4contest.utils.VersionUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -5079,7 +5080,7 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
Alert a = new Alert(AlertType.INFORMATION);
|
Alert a = new Alert(AlertType.INFORMATION);
|
||||||
|
|
||||||
a.setTitle("About kst4contest");
|
a.setTitle("About kst4contest");
|
||||||
a.setHeaderText("kst4Contest " + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER + ": ON4KST Chatclient by DO5AMF");
|
a.setHeaderText("kst4Contest " + ApplicationConstants.APPLICATION_CURRENT_VERSION + ": ON4KST Chatclient by DO5AMF");
|
||||||
a.setContentText(chatcontroller.getChatPreferences().getProgramVersion());
|
a.setContentText(chatcontroller.getChatPreferences().getProgramVersion());
|
||||||
a.show();
|
a.show();
|
||||||
}
|
}
|
||||||
@@ -8070,12 +8071,12 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
|
|
||||||
stage_updateStage.setAlwaysOnTop(true);
|
stage_updateStage.setAlwaysOnTop(true);
|
||||||
|
|
||||||
Label lblUpdateInfo = new Label("Update aviable!");
|
Label lblUpdateInfo = new Label("Update available!");
|
||||||
Label lblUpdateInfo2 = new Label("Your Software version: ");
|
Label lblUpdateInfo2 = new Label("Installed version:");
|
||||||
Label lblUpdateInfo3 = new Label("Newest Software version: ");
|
Label lblUpdateInfo3 = new Label("Latest stable version:");
|
||||||
Label lblUpdateInfoChanges = new Label("Major Changes: ");
|
Label lblUpdateInfoChanges = new Label("Main changes:");
|
||||||
Label lblUpdateInfoAdminMessage = new Label("Admin Message: ");
|
Label lblUpdateInfoAdminMessage = new Label("Additional information:");
|
||||||
Label lblUpdateInfoDownload = new Label("Downloadable here: " );
|
Label lblUpdateInfoDownload = new Label("Download:");
|
||||||
|
|
||||||
|
|
||||||
TreeView treeView = new TreeView();
|
TreeView treeView = new TreeView();
|
||||||
@@ -8094,16 +8095,16 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
vbxUpdateWindow.getChildren().add(upd_gridPaneUpd);
|
vbxUpdateWindow.getChildren().add(upd_gridPaneUpd);
|
||||||
upd_gridPaneUpd.add(lblUpdateInfo, 0,0,1,1);
|
upd_gridPaneUpd.add(lblUpdateInfo, 0,0,1,1);
|
||||||
upd_gridPaneUpd.add(lblUpdateInfo2, 0,1,1,1);
|
upd_gridPaneUpd.add(lblUpdateInfo2, 0,1,1,1);
|
||||||
upd_gridPaneUpd.add(new Label("kst4Contest " + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER+""), 1,1,1,1);
|
upd_gridPaneUpd.add(new Label("KST4Contest " + ApplicationConstants.APPLICATION_CURRENT_VERSION), 1,1,1,1);
|
||||||
upd_gridPaneUpd.add(lblUpdateInfo3, 0,2,1,1);
|
upd_gridPaneUpd.add(lblUpdateInfo3, 0,2,1,1);
|
||||||
upd_gridPaneUpd.add(new Label("kst4Contest " + chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer()+""), 1,2,1,1);
|
upd_gridPaneUpd.add(new Label("KST4Contest " + chatcontroller.getUpdateInformation().getLatestVersionForDisplay()), 1,2,1,1);
|
||||||
upd_gridPaneUpd.add(lblUpdateInfoChanges, 0,3,1,1);
|
upd_gridPaneUpd.add(lblUpdateInfoChanges, 0,3,1,1);
|
||||||
upd_gridPaneUpd.add(new Label(chatcontroller.getUpdateInformation().getMajorChanges()), 1,3,1,1);
|
upd_gridPaneUpd.add(new Label(chatcontroller.getUpdateInformation().getMajorChanges()), 1,3,1,1);
|
||||||
upd_gridPaneUpd.add(lblUpdateInfoAdminMessage, 0,4,1,1);
|
upd_gridPaneUpd.add(lblUpdateInfoAdminMessage, 0,4,1,1);
|
||||||
upd_gridPaneUpd.add(new Label(chatcontroller.getUpdateInformation().getAdminMessage()), 1,4,1,1);
|
upd_gridPaneUpd.add(new Label(chatcontroller.getUpdateInformation().getAdminMessage()), 1,4,1,1);
|
||||||
upd_gridPaneUpd.add(lblUpdateInfoDownload, 0,5,1,1);
|
upd_gridPaneUpd.add(lblUpdateInfoDownload, 0,5,1,1);
|
||||||
|
|
||||||
Hyperlink link = new Hyperlink("Download here");
|
Hyperlink link = new Hyperlink("Open release page");
|
||||||
link.setOnAction(e -> {
|
link.setOnAction(e -> {
|
||||||
getHostServices().showDocument(chatcontroller.getUpdateInformation().getLatestVersionPathOnWebserver());
|
getHostServices().showDocument(chatcontroller.getUpdateInformation().getLatestVersionPathOnWebserver());
|
||||||
// System.out.println("The Hyperlink was clicked!");
|
// System.out.println("The Hyperlink was clicked!");
|
||||||
@@ -8162,7 +8163,22 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
stage_updateStage.setScene(new Scene(vbxUpdateWindow, chatcontroller.getChatPreferences().getGUIstage_updateStage_SceneSizeHW()[0], chatcontroller.getChatPreferences().getGUIstage_updateStage_SceneSizeHW()[1]));
|
stage_updateStage.setScene(new Scene(vbxUpdateWindow, chatcontroller.getChatPreferences().getGUIstage_updateStage_SceneSizeHW()[0], chatcontroller.getChatPreferences().getGUIstage_updateStage_SceneSizeHW()[1]));
|
||||||
|
|
||||||
|
|
||||||
if (chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer() > ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER) {
|
// if (chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer() > ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER) {
|
||||||
|
|
||||||
|
boolean updateAvailable;
|
||||||
|
|
||||||
|
if (chatcontroller.getUpdateInformation().hasSemanticVersion()) {
|
||||||
|
updateAvailable = VersionUtils.compareStableVersions(
|
||||||
|
chatcontroller.getUpdateInformation().getLatestSemanticVersionOnServer(),
|
||||||
|
ApplicationConstants.APPLICATION_CURRENT_VERSION
|
||||||
|
) > 0;
|
||||||
|
} else {
|
||||||
|
updateAvailable =
|
||||||
|
chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer()
|
||||||
|
> ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updateAvailable) {
|
||||||
stage_updateStage.show();
|
stage_updateStage.show();
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@@ -8642,27 +8658,114 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
|
|
||||||
HBox hbxDemDirectoryActions = new HBox(8.0, btnUseDefaultDemDirectory, btnImportDemTiles);
|
HBox hbxDemDirectoryActions = new HBox(8.0, btnUseDefaultDemDirectory, btnImportDemTiles);
|
||||||
|
|
||||||
Label lbl_station_pstRotatorEnabled = new Label("Enable PSTRotator interface (auto QTF):");
|
Label lbl_station_pstRotatorEnabled =
|
||||||
|
new Label("Enable PSTRotator interface (automatic QTF):");
|
||||||
|
|
||||||
|
TextField txtFld_station_pstRotatorHost = new TextField(
|
||||||
|
chatcontroller.getChatPreferences().getStn_pstRotatorHost()
|
||||||
|
);
|
||||||
|
txtFld_station_pstRotatorHost.setFocusTraversable(false);
|
||||||
|
|
||||||
|
TextField txtFld_station_pstRotatorPort = new TextField(
|
||||||
|
Integer.toString(
|
||||||
|
chatcontroller.getChatPreferences().getStn_pstRotatorPort()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
txtFld_station_pstRotatorPort.setFocusTraversable(false);
|
||||||
|
|
||||||
CheckBox chkBx_station_pstRotatorEnabled = new CheckBox();
|
CheckBox chkBx_station_pstRotatorEnabled = new CheckBox();
|
||||||
chkBx_station_pstRotatorEnabled.setSelected(chatcontroller.getChatPreferences().isStn_pstRotatorEnabled());
|
chkBx_station_pstRotatorEnabled.setSelected(
|
||||||
|
chatcontroller.getChatPreferences().isStn_pstRotatorEnabled()
|
||||||
|
);
|
||||||
chkBx_station_pstRotatorEnabled.setTooltip(new Tooltip(
|
chkBx_station_pstRotatorEnabled.setTooltip(new Tooltip(
|
||||||
"If disabled: no PSTRotator connection is started and antenna direction is ignored in priority scoring."
|
"When enabled, KST4Contest reads the antenna direction from PSTRotator.\n"
|
||||||
|
+ "The connection settings take effect on the next chat connection."
|
||||||
));
|
));
|
||||||
chkBx_station_pstRotatorEnabled.selectedProperty().addListener((obs, oldV, newV) -> {
|
|
||||||
chatcontroller.getChatPreferences().setStn_pstRotatorEnabled(newV);
|
Runnable updatePstRotatorFields = () -> {
|
||||||
if (newV) {
|
boolean disabled = !chkBx_station_pstRotatorEnabled.isSelected();
|
||||||
txt_myQTF.textProperty().bind(Bindings.createStringBinding(
|
txtFld_station_pstRotatorHost.setDisable(disabled);
|
||||||
() -> Double.toString(chatcontroller.getChatPreferences().getActualQTF().get()),
|
txtFld_station_pstRotatorPort.setDisable(disabled);
|
||||||
chatcontroller.getChatPreferences().getActualQTF()));
|
};
|
||||||
txt_myQTF.setTooltip(new Tooltip("This is your current QTF, read out at PSTRotator"));
|
|
||||||
txt_myQTF.setFocusTraversable(false);
|
updatePstRotatorFields.run();
|
||||||
} else {
|
|
||||||
txt_myQTF.textProperty().unbind();
|
chkBx_station_pstRotatorEnabled.selectedProperty().addListener(
|
||||||
txt_myQTF.setText(Double.toString(chatcontroller.getChatPreferences().getActualQTF().get()));
|
(observable, oldValue, newValue) -> {
|
||||||
txt_myQTF.setTooltip(new Tooltip("Enter your antenna heading (QTF) by hand - no rotator sync active"));
|
chatcontroller.getChatPreferences().setStn_pstRotatorEnabled(newValue);
|
||||||
txt_myQTF.setFocusTraversable(true);
|
updatePstRotatorFields.run();
|
||||||
}
|
|
||||||
});
|
if (newValue) {
|
||||||
|
txt_myQTF.textProperty().bind(Bindings.createStringBinding(
|
||||||
|
() -> Double.toString(
|
||||||
|
chatcontroller.getChatPreferences().getActualQTF().get()
|
||||||
|
),
|
||||||
|
chatcontroller.getChatPreferences().getActualQTF()
|
||||||
|
));
|
||||||
|
txt_myQTF.setTooltip(
|
||||||
|
new Tooltip("Current QTF reported by PSTRotator")
|
||||||
|
);
|
||||||
|
txt_myQTF.setFocusTraversable(false);
|
||||||
|
} else {
|
||||||
|
txt_myQTF.textProperty().unbind();
|
||||||
|
txt_myQTF.setText(
|
||||||
|
Double.toString(
|
||||||
|
chatcontroller.getChatPreferences().getActualQTF().get()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
txt_myQTF.setTooltip(
|
||||||
|
new Tooltip("Enter the current antenna direction manually")
|
||||||
|
);
|
||||||
|
txt_myQTF.setFocusTraversable(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
txtFld_station_pstRotatorHost.focusedProperty().addListener(
|
||||||
|
(observable, oldValue, newValue) -> {
|
||||||
|
if (!newValue) {
|
||||||
|
chatcontroller.getChatPreferences().setStn_pstRotatorHost(
|
||||||
|
txtFld_station_pstRotatorHost.getText()
|
||||||
|
);
|
||||||
|
txtFld_station_pstRotatorHost.setText(
|
||||||
|
chatcontroller.getChatPreferences().getStn_pstRotatorHost()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
txtFld_station_pstRotatorPort.focusedProperty().addListener(
|
||||||
|
(observable, oldValue, newValue) -> {
|
||||||
|
if (newValue) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
int configuredPort = Integer.parseInt(
|
||||||
|
txtFld_station_pstRotatorPort.getText().trim()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (configuredPort < 1 || configuredPort > 65535) {
|
||||||
|
throw new NumberFormatException();
|
||||||
|
}
|
||||||
|
|
||||||
|
chatcontroller.getChatPreferences().setStn_pstRotatorPort(
|
||||||
|
configuredPort
|
||||||
|
);
|
||||||
|
} catch (NumberFormatException exception) {
|
||||||
|
showUserInputErrorWindow(
|
||||||
|
"\"" + txtFld_station_pstRotatorPort.getText()
|
||||||
|
+ "\" is not a valid UDP port. Enter a value between 1 and 65535."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
txtFld_station_pstRotatorPort.setText(
|
||||||
|
Integer.toString(
|
||||||
|
chatcontroller.getChatPreferences().getStn_pstRotatorPort()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
grdPnlStation.add(lblCallSign, 0, 0);
|
grdPnlStation.add(lblCallSign, 0, 0);
|
||||||
@@ -8706,6 +8809,11 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
grdPnlStation.add(lbl_station_pstRotatorEnabled, 0, 12);
|
grdPnlStation.add(lbl_station_pstRotatorEnabled, 0, 12);
|
||||||
grdPnlStation.add(chkBx_station_pstRotatorEnabled, 1, 12);
|
grdPnlStation.add(chkBx_station_pstRotatorEnabled, 1, 12);
|
||||||
|
|
||||||
|
grdPnlStation.add(new Label("PSTRotator host:"), 0, 13);
|
||||||
|
grdPnlStation.add(txtFld_station_pstRotatorHost, 1, 13);
|
||||||
|
|
||||||
|
grdPnlStation.add(new Label("PSTRotator UDP port:"), 0, 14);
|
||||||
|
grdPnlStation.add(txtFld_station_pstRotatorPort, 1, 14);
|
||||||
|
|
||||||
|
|
||||||
VBox vbxStation = new VBox();
|
VBox vbxStation = new VBox();
|
||||||
@@ -8713,32 +8821,71 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
|
|
||||||
GridPane grdPanelServerHostName = new GridPane();
|
GridPane grdPanelServerHostName = new GridPane();
|
||||||
|
|
||||||
TextField stn_txtServerDNS = new TextField(this.chatcontroller.getChatPreferences().getStn_on4kstServersDns());
|
|
||||||
stn_txtServerDNS.focusedProperty().addListener(new ChangeListener<Boolean>() {
|
|
||||||
@Override
|
|
||||||
public void changed(ObservableValue<? extends Boolean> observableValue, Boolean aBoolean, Boolean t1) {
|
|
||||||
|
|
||||||
System.out.println("[Main.java, Info]: Set the Server DNS property by hand to: "
|
|
||||||
+ stn_txtServerDNS.getText());
|
|
||||||
chatcontroller.getChatPreferences().setStn_on4kstServersDns(stn_txtServerDNS.getText());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
grdPanelServerHostName.add(new Label("ON4KST Server [www.on4kst.org]: "), 0,1);
|
TextField stn_txtServerDNS = new TextField(
|
||||||
grdPanelServerHostName.add(stn_txtServerDNS, 1,1);
|
this.chatcontroller.getChatPreferences().getStn_on4kstServersDns()
|
||||||
|
);
|
||||||
|
stn_txtServerDNS.setFocusTraversable(false);
|
||||||
|
stn_txtServerDNS.focusedProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
if (!newValue) {
|
||||||
|
chatcontroller.getChatPreferences().setStn_on4kstServersDns(
|
||||||
|
stn_txtServerDNS.getText().trim()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
TextField stn_txtServerPort = new TextField(this.chatcontroller.getChatPreferences().getStn_on4kstServersPort()+"");
|
grdPanelServerHostName.add(
|
||||||
|
new Label("ON4KST server [www.on4kst.org]:"),
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
);
|
||||||
|
grdPanelServerHostName.add(stn_txtServerDNS, 1, 1);
|
||||||
|
|
||||||
grdPanelServerHostName.add(new Label(" Port [23001]: "), 2,1);
|
TextField stn_txtServerPort = new TextField(
|
||||||
grdPanelServerHostName.add(stn_txtServerPort, 3,1);
|
Integer.toString(
|
||||||
|
this.chatcontroller.getChatPreferences().getStn_on4kstServersPort()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
stn_txtServerPort.setFocusTraversable(false);
|
||||||
|
stn_txtServerPort.focusedProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
if (newValue) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
int configuredPort = Integer.parseInt(stn_txtServerPort.getText().trim());
|
||||||
|
|
||||||
|
if (configuredPort < 1 || configuredPort > 65535) {
|
||||||
|
throw new NumberFormatException();
|
||||||
|
}
|
||||||
|
|
||||||
|
chatcontroller.getChatPreferences().setStn_on4kstServersPort(
|
||||||
|
configuredPort
|
||||||
|
);
|
||||||
|
} catch (NumberFormatException exception) {
|
||||||
|
showUserInputErrorWindow(
|
||||||
|
"\"" + stn_txtServerPort.getText()
|
||||||
|
+ "\" is not a valid TCP port. Enter a value between 1 and 65535."
|
||||||
|
);
|
||||||
|
|
||||||
|
stn_txtServerPort.setText(
|
||||||
|
Integer.toString(
|
||||||
|
chatcontroller.getChatPreferences().getStn_on4kstServersPort()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
grdPanelServerHostName.add(new Label("Port [23001]:"), 2, 1);
|
||||||
|
grdPanelServerHostName.add(stn_txtServerPort, 3, 1);
|
||||||
|
|
||||||
vbxStation.getChildren().addAll(grdPanelServerHostName);
|
vbxStation.getChildren().addAll(grdPanelServerHostName);
|
||||||
|
|
||||||
vbxStation.getChildren().addAll(
|
vbxStation.getChildren().addAll(
|
||||||
generateLabeledSeparator(100, "Set your Login Credentials and Station Parameters here"), grdPnlStation);
|
generateLabeledSeparator(100, "Set your Login Credentials and Station Parameters here"), grdPnlStation);
|
||||||
vbxStation.getChildren().addAll(generateLabeledSeparator(50,
|
// vbxStation.getChildren().addAll(generateLabeledSeparator(50,
|
||||||
"! ! ! ! Don´t forget to reset the worked stations information before starting a new contest ! ! ! !"));
|
// "! ! ! ! Don´t forget to reset the worked stations information before starting a new contest ! ! ! !"));
|
||||||
|
|
||||||
|
|
||||||
CheckBox settings_chkbx_QRV144 = new CheckBox("My station uses 2m band");
|
CheckBox settings_chkbx_QRV144 = new CheckBox("My station uses 2m band");
|
||||||
@@ -8870,7 +9017,9 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
grdPnlLog.setVgap(5);
|
grdPnlLog.setVgap(5);
|
||||||
grdPnlLog.setHgap(5);
|
grdPnlLog.setHgap(5);
|
||||||
|
|
||||||
Label lblEnableFileBased = new Label("Use universal File based callsign Interpreter (readOnly!)");
|
Label lblEnableFileBased = new Label(
|
||||||
|
"Read worked callsigns periodically from a log file (without band information)"
|
||||||
|
);
|
||||||
CheckBox chkBxEnableFileBasedInterpreterUCX = new CheckBox();
|
CheckBox chkBxEnableFileBasedInterpreterUCX = new CheckBox();
|
||||||
chkBxEnableFileBasedInterpreterUCX
|
chkBxEnableFileBasedInterpreterUCX
|
||||||
.setSelected(this.chatcontroller.getChatPreferences().isLogsynch_fileBasedWkdCallInterpreterEnabled());
|
.setSelected(this.chatcontroller.getChatPreferences().isLogsynch_fileBasedWkdCallInterpreterEnabled());
|
||||||
@@ -8886,7 +9035,7 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Label lblWkdInterpreterPathToFileTitle = new Label("Worked stations will be read there: ");
|
Label lblWkdInterpreterPathToFileTitle = new Label("Log file to be monitored:");
|
||||||
Label lblWkdInterpreterPathToFile = new Label(
|
Label lblWkdInterpreterPathToFile = new Label(
|
||||||
this.chatcontroller.getChatPreferences().getLogsynch_fileBasedWkdCallInterpreterFileNameReadOnly());
|
this.chatcontroller.getChatPreferences().getLogsynch_fileBasedWkdCallInterpreterFileNameReadOnly());
|
||||||
|
|
||||||
@@ -8894,7 +9043,9 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
Label lblUDPbyUCXLogBackupFilePathAndName = new Label(
|
Label lblUDPbyUCXLogBackupFilePathAndName = new Label(
|
||||||
this.chatcontroller.getChatPreferences().getLogSynch_storeWorkedCallSignsFileNameUDPMessageBackup());
|
this.chatcontroller.getChatPreferences().getLogSynch_storeWorkedCallSignsFileNameUDPMessageBackup());
|
||||||
|
|
||||||
Label lblEnableUDPbyUCX = new Label("Receive UCXLog network based UDP log messages");
|
Label lblEnableUDPbyUCX = new Label(
|
||||||
|
"Process QSO messages from N1MM+, QARTEST, UCXLog and DXLog.net"
|
||||||
|
);
|
||||||
CheckBox chkBxEnableUCXLogUDPReceiver = new CheckBox();
|
CheckBox chkBxEnableUCXLogUDPReceiver = new CheckBox();
|
||||||
chkBxEnableUCXLogUDPReceiver
|
chkBxEnableUCXLogUDPReceiver
|
||||||
.setSelected(this.chatcontroller.getChatPreferences().isLogsynch_ucxUDPWkdCallListenerEnabled());
|
.setSelected(this.chatcontroller.getChatPreferences().isLogsynch_ucxUDPWkdCallListenerEnabled());
|
||||||
@@ -8909,7 +9060,9 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Label lblUDPByUCX = new Label("UDP-Port for message-listener (default is 12060)");
|
Label lblUDPByUCX = new Label(
|
||||||
|
"Shared UDP port for QSO and TRX messages [default 12060]:"
|
||||||
|
);
|
||||||
TextField txtFldUDPPortforUCX = new TextField("");
|
TextField txtFldUDPPortforUCX = new TextField("");
|
||||||
txtFldUDPPortforUCX.setFocusTraversable(false);
|
txtFldUDPPortforUCX.setFocusTraversable(false);
|
||||||
txtFldUDPPortforUCX
|
txtFldUDPPortforUCX
|
||||||
@@ -9045,7 +9198,17 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
grdPnlLog.add(lblWkdInterpreterPathToFileTitle, 0, 2);
|
grdPnlLog.add(lblWkdInterpreterPathToFileTitle, 0, 2);
|
||||||
grdPnlLog.add(lblWkdInterpreterPathToFile, 1, 2);
|
grdPnlLog.add(lblWkdInterpreterPathToFile, 1, 2);
|
||||||
grdPnlLog.add(btn_changeFilePathAndName, 2, 2);
|
grdPnlLog.add(btn_changeFilePathAndName, 2, 2);
|
||||||
grdPnlLog.add(generateLabeledSeparator(100, "N1MM/QARTEST/UCXLog/DXLog.net Network-Listener"), 0, 3, 2, 1);
|
// grdPnlLog.add(generateLabeledSeparator(100, "N1MM/QARTEST/UCXLog/DXLog.net Network-Listener"), 0, 3, 2, 1);
|
||||||
|
grdPnlLog.add(
|
||||||
|
generateLabeledSeparator(
|
||||||
|
100,
|
||||||
|
"Network-based QSO synchronization (N1MM/QARTEST/UCXLog/DXLog)"
|
||||||
|
),
|
||||||
|
0,
|
||||||
|
3,
|
||||||
|
2,
|
||||||
|
1
|
||||||
|
);
|
||||||
grdPnlLog.add(lblEnableUDPbyUCX, 0, 4);
|
grdPnlLog.add(lblEnableUDPbyUCX, 0, 4);
|
||||||
grdPnlLog.add(chkBxEnableUCXLogUDPReceiver, 1, 4);
|
grdPnlLog.add(chkBxEnableUCXLogUDPReceiver, 1, 4);
|
||||||
grdPnlLog.add(lblUDPByUCX, 0, 5);
|
grdPnlLog.add(lblUDPByUCX, 0, 5);
|
||||||
@@ -9163,16 +9326,18 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL
|
|||||||
grdPnltrx.setVgap(5);
|
grdPnltrx.setVgap(5);
|
||||||
grdPnltrx.setHgap(5);
|
grdPnltrx.setHgap(5);
|
||||||
|
|
||||||
Label lblEnableTRXMsgbyUCX = new Label("Receive UCXLog network based UDP trx messages at Port 12060");
|
Label lblEnableTRXMsgbyUCX = new Label(
|
||||||
|
"Update MYQRG from RadioInfo messages received on the shared log-sync port"
|
||||||
|
);
|
||||||
CheckBox chkBxEnableTRXMsgbyUCX = new CheckBox();
|
CheckBox chkBxEnableTRXMsgbyUCX = new CheckBox();
|
||||||
|
|
||||||
CheckBox chkBxEnableXVTRUsage = new CheckBox();
|
// CheckBox chkBxEnableXVTRUsage = new CheckBox();
|
||||||
|
//
|
||||||
Label lblXVTRRFQrg = new Label("XVTR RF QRG in kHz, e.g. \"144000\" for 144 MHz), default = 144000");
|
// Label lblXVTRRFQrg = new Label("XVTR RF QRG in kHz, e.g. \"144000\" for 144 MHz), default = 144000");
|
||||||
lblXVTRRFQrg.setTooltip(new Tooltip("Where will your xvtr send?"));
|
// lblXVTRRFQrg.setTooltip(new Tooltip("Where will your xvtr send?"));
|
||||||
|
//
|
||||||
Label lblTRXIFQrg = new Label("TRX IF QRG in kHz, e.g. \"28000\" for 28 MHz), default = 28000");
|
// Label lblTRXIFQrg = new Label("TRX IF QRG in kHz, e.g. \"28000\" for 28 MHz), default = 28000");
|
||||||
lblXVTRRFQrg.setTooltip(new Tooltip("Where will your TRX IF be?"));
|
// lblXVTRRFQrg.setTooltip(new Tooltip("Where will your TRX IF be?"));
|
||||||
|
|
||||||
// Label lblRedultingLoQRG = new Label("The value of " + asd + " will be added to the readed QRG of your TRX to show correct QRG");
|
// Label lblRedultingLoQRG = new Label("The value of " + asd + " will be added to the readed QRG of your TRX to show correct QRG");
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,90 @@ const path = require("path");
|
|||||||
const markdownIt = require("markdown-it");
|
const markdownIt = require("markdown-it");
|
||||||
const markdownItAnchor = require("markdown-it-anchor");
|
const markdownItAnchor = require("markdown-it-anchor");
|
||||||
|
|
||||||
|
const MANUAL_PAGE_ORDER = {
|
||||||
|
de: [
|
||||||
|
"home",
|
||||||
|
"installation",
|
||||||
|
"konfiguration",
|
||||||
|
"log-synchronisation",
|
||||||
|
"airscout-integration",
|
||||||
|
"dx-cluster-server",
|
||||||
|
"funktionen",
|
||||||
|
"makros-und-variablen",
|
||||||
|
"benutzeroberflaeche",
|
||||||
|
"changelog"
|
||||||
|
],
|
||||||
|
en: [
|
||||||
|
"home",
|
||||||
|
"installation",
|
||||||
|
"configuration",
|
||||||
|
"log-sync",
|
||||||
|
"airscout-integration",
|
||||||
|
"dx-cluster-server",
|
||||||
|
"features",
|
||||||
|
"macros-and-variables",
|
||||||
|
"user-interface",
|
||||||
|
"changelog"
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
function markdownToPlainText(value) {
|
||||||
|
return (value || "")
|
||||||
|
.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1")
|
||||||
|
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1")
|
||||||
|
.replace(/<[^>]+>/g, "")
|
||||||
|
.replace(/[*_~`]/g, "")
|
||||||
|
.replace(/\s+/g, " ")
|
||||||
|
.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractManualTitle(raw, fallbackTitle) {
|
||||||
|
const heading = (raw || "").match(/^#\s+(.+)$/m);
|
||||||
|
return heading ? markdownToPlainText(heading[1]) : fallbackTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractManualSummary(raw) {
|
||||||
|
const blocks = (raw || "").split(/\r?\n\s*\r?\n/);
|
||||||
|
|
||||||
|
for (const block of blocks) {
|
||||||
|
const trimmed = block.trim();
|
||||||
|
|
||||||
|
if (!trimmed
|
||||||
|
|| /^(#|>|\||---|```|!\[)/.test(trimmed)
|
||||||
|
|| /^[-*+]\s/.test(trimmed)
|
||||||
|
|| /^\d+[.)]\s/.test(trimmed)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return markdownToPlainText(trimmed);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function getManualPageOrder(lang, slug) {
|
||||||
|
const configuredOrder = MANUAL_PAGE_ORDER[lang] || [];
|
||||||
|
const index = configuredOrder.indexOf(slug);
|
||||||
|
|
||||||
|
return index >= 0 ? index : 999;
|
||||||
|
}
|
||||||
|
|
||||||
function rewriteManualLinks(content, lang) {
|
function rewriteManualLinks(content, lang) {
|
||||||
return (content || "")
|
return (content || "")
|
||||||
|
|
||||||
|
// Manual images are stored next to the Markdown sources in github_docs.
|
||||||
|
// The website publishes them from one shared, language-neutral directory.
|
||||||
|
.replace(
|
||||||
|
/!\[([^\]]*)\]\((?!https?:\/\/|\/)([^)\s]+\.(?:png|jpe?g|gif|svg|webp))\)/gi,
|
||||||
|
(match, altText, imagePath) => {
|
||||||
|
const fileName = path.posix.basename(
|
||||||
|
imagePath.replace(/\\/g, "/")
|
||||||
|
);
|
||||||
|
|
||||||
|
return ``;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
// GitHub-Wiki-Links im Stil [[de-Installation]] oder [[en-Installation]]
|
// GitHub-Wiki-Links im Stil [[de-Installation]] oder [[en-Installation]]
|
||||||
.replace(/\[\[(en|de)-([^\]|]+)\]\]/g, (match, linkLang, slug) => {
|
.replace(/\[\[(en|de)-([^\]|]+)\]\]/g, (match, linkLang, slug) => {
|
||||||
return `[${slug.replace(/-/g, " ")}](/manual/${linkLang}/${slug.toLowerCase()}/)`;
|
return `[${slug.replace(/-/g, " ")}](/manual/${linkLang}/${slug.toLowerCase()}/)`;
|
||||||
@@ -64,6 +146,10 @@ module.exports = function (eleventyConfig) {
|
|||||||
|
|
||||||
eleventyConfig.addPassthroughCopy({ "src/assets": "assets" });
|
eleventyConfig.addPassthroughCopy({ "src/assets": "assets" });
|
||||||
|
|
||||||
|
eleventyConfig.addPassthroughCopy({
|
||||||
|
"../github_docs/*.{png,jpg,jpeg,gif,svg,webp}": "manual/assets"
|
||||||
|
});
|
||||||
|
|
||||||
const md = markdownIt({
|
const md = markdownIt({
|
||||||
html: true,
|
html: true,
|
||||||
linkify: true,
|
linkify: true,
|
||||||
@@ -96,19 +182,28 @@ module.exports = function (eleventyConfig) {
|
|||||||
.replace(/\.md$/, "")
|
.replace(/\.md$/, "")
|
||||||
.toLowerCase();
|
.toLowerCase();
|
||||||
|
|
||||||
const title = file
|
const fallbackTitle = file
|
||||||
.replace(/^en-/, "")
|
.replace(/^en-/, "")
|
||||||
.replace(/^de-/, "")
|
.replace(/^de-/, "")
|
||||||
.replace(/\.md$/, "")
|
.replace(/\.md$/, "")
|
||||||
.replace(/-/g, " ");
|
.replace(/-/g, " ");
|
||||||
|
|
||||||
|
const title = extractManualTitle(raw, fallbackTitle);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
file,
|
file,
|
||||||
lang,
|
lang,
|
||||||
slug,
|
slug,
|
||||||
title,
|
title,
|
||||||
|
summary: extractManualSummary(raw),
|
||||||
|
order: getManualPageOrder(lang, slug),
|
||||||
content: rewriteManualLinks(raw, lang)
|
content: rewriteManualLinks(raw, lang)
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
.sort((a, b) => {
|
||||||
|
return a.lang.localeCompare(b.lang)
|
||||||
|
|| a.order - b.order
|
||||||
|
|| a.title.localeCompare(b.title);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="About KST4Contest and its contest-oriented ON4KST workflow.">
|
<meta name="twitter:description" content="About KST4Contest and its contest-oriented ON4KST workflow.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Contact options for KST4Contest.">
|
<meta name="twitter:description" content="Contact options for KST4Contest.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Download KST4Contest</title>
|
<title>Download KST4Contest</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="Download KST4Contest releases for Windows, Linux and macOS.">
|
<meta name="description" content="Download the latest stable KST4Contest packages for Windows, Linux and macOS. The required Java runtime is included.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/download/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/download/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Download KST4Contest">
|
<meta property="og:title" content="Download KST4Contest">
|
||||||
<meta property="og:description" content="Download KST4Contest releases for Windows, Linux and macOS.">
|
<meta property="og:description" content="Download the latest stable KST4Contest packages for Windows, Linux and macOS. The required Java runtime is included.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/download/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/download/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Download KST4Contest">
|
<meta name="twitter:title" content="Download KST4Contest">
|
||||||
<meta name="twitter:description" content="Download KST4Contest releases for Windows, Linux and macOS.">
|
<meta name="twitter:description" content="Download the latest stable KST4Contest packages for Windows, Linux and macOS. The required Java runtime is included.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -65,10 +65,11 @@
|
|||||||
|
|
||||||
<main>
|
<main>
|
||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Download</p>
|
<p class="badge">Stable release</p>
|
||||||
<h1>Get KST4Contest</h1>
|
<h1>Download KST4Contest</h1>
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
Choose the package for your operating system. Official builds are published through GitHub Releases.
|
Choose the package for your operating system. Official builds are published through GitHub Releases,
|
||||||
|
and the required Java runtime is already included.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
@@ -79,8 +80,8 @@
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="eyebrow">Recommended downloads</p>
|
<p class="eyebrow">Packages by platform</p>
|
||||||
<h2>Pick your platform</h2>
|
<h2>Choose the format that fits your system</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
@@ -89,12 +90,12 @@
|
|||||||
<div class="feature-icon">🪟</div>
|
<div class="feature-icon">🪟</div>
|
||||||
|
|
||||||
|
|
||||||
<p class="badge">Recommended</p>
|
<p class="badge">Default choice</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Windows</h3>
|
<h3>Windows</h3>
|
||||||
<p><strong>ZIP x64</strong></p>
|
<p><strong>ZIP x64</strong></p>
|
||||||
<p>Best choice for most Windows users.</p>
|
<p>Extract the complete archive, then start praktiKST.exe. No separate Java installation is required.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/praktiKST-v1.41.1-windows-x64.zip">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/praktiKST-v1.41.1-windows-x64.zip">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -103,12 +104,12 @@
|
|||||||
<div class="feature-icon">🐧</div>
|
<div class="feature-icon">🐧</div>
|
||||||
|
|
||||||
|
|
||||||
<p class="badge">Recommended</p>
|
<p class="badge">Default choice</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Linux</h3>
|
<h3>Linux</h3>
|
||||||
<p><strong>Flatpak (.flatpakref)</strong></p>
|
<p><strong>Flatpak (.flatpakref)</strong></p>
|
||||||
<p>Recommended for most Linux users. Open the file with GNOME Software / Discover, or run: flatpak install de.x08.KST4Contest.flatpakref</p>
|
<p>Installs through Flatpak and can be updated through Flatpak or the desktop software centre.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/de.x08.KST4Contest.flatpakref">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/de.x08.KST4Contest.flatpakref">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -120,7 +121,7 @@
|
|||||||
|
|
||||||
<h3>Linux</h3>
|
<h3>Linux</h3>
|
||||||
<p><strong>AppImage x86_64</strong></p>
|
<p><strong>AppImage x86_64</strong></p>
|
||||||
<p>Portable Linux build without package installation.</p>
|
<p>Portable build without package installation. Make the downloaded file executable before the first launch.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-linux-x86_64.AppImage">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-linux-x86_64.AppImage">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -132,7 +133,7 @@
|
|||||||
|
|
||||||
<h3>Debian / Ubuntu</h3>
|
<h3>Debian / Ubuntu</h3>
|
||||||
<p><strong>DEB amd64</strong></p>
|
<p><strong>DEB amd64</strong></p>
|
||||||
<p>Native package for Debian and Ubuntu based systems.</p>
|
<p>Native package for Debian, Ubuntu and distributions based on them.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-debian-amd64.deb">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-debian-amd64.deb">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -144,7 +145,7 @@
|
|||||||
|
|
||||||
<h3>Fedora</h3>
|
<h3>Fedora</h3>
|
||||||
<p><strong>RPM x86_64</strong></p>
|
<p><strong>RPM x86_64</strong></p>
|
||||||
<p>Native package for Fedora/RPM based systems.</p>
|
<p>Native package built for Fedora and compatible RPM-based systems.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-fedora-x86_64.rpm">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-fedora-x86_64.rpm">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -156,7 +157,7 @@
|
|||||||
|
|
||||||
<h3>Arch Linux</h3>
|
<h3>Arch Linux</h3>
|
||||||
<p><strong>pkg.tar.zst</strong></p>
|
<p><strong>pkg.tar.zst</strong></p>
|
||||||
<p>Package build for Arch Linux users.</p>
|
<p>Release package for direct installation with pacman. AUR alternatives are described in the installation guide.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-archlinux-x86_64.pkg.tar.zst">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-archlinux-x86_64.pkg.tar.zst">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -168,7 +169,7 @@
|
|||||||
|
|
||||||
<h3>macOS Apple Silicon</h3>
|
<h3>macOS Apple Silicon</h3>
|
||||||
<p><strong>DMG arm64</strong></p>
|
<p><strong>DMG arm64</strong></p>
|
||||||
<p>For Apple Silicon Macs.</p>
|
<p>Best-effort build for Apple Silicon Macs. The application is not currently notarized by Apple.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-macos-arm64.dmg">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-macos-arm64.dmg">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -180,7 +181,7 @@
|
|||||||
|
|
||||||
<h3>macOS Intel</h3>
|
<h3>macOS Intel</h3>
|
||||||
<p><strong>DMG x86_64</strong></p>
|
<p><strong>DMG x86_64</strong></p>
|
||||||
<p>For Intel-based Macs.</p>
|
<p>Best-effort build for Intel Macs. The application is not currently notarized by Apple.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-macos-x86_64.dmg">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-macos-x86_64.dmg">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -192,7 +193,7 @@
|
|||||||
|
|
||||||
<h3>Manual English</h3>
|
<h3>Manual English</h3>
|
||||||
<p><strong>PDF</strong></p>
|
<p><strong>PDF</strong></p>
|
||||||
<p>English PDF manual.</p>
|
<p>English PDF manual included with the Stable release.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-manual-en.pdf">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-manual-en.pdf">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
|
|
||||||
<h3>Manual German</h3>
|
<h3>Manual German</h3>
|
||||||
<p><strong>PDF</strong></p>
|
<p><strong>PDF</strong></p>
|
||||||
<p>German PDF manual.</p>
|
<p>German PDF manual included with the Stable release.</p>
|
||||||
|
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-manual-de.pdf">Download →</a>
|
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-manual-de.pdf">Download →</a>
|
||||||
</article>
|
</article>
|
||||||
@@ -214,53 +215,45 @@
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="cta-panel">
|
<div class="cta-panel">
|
||||||
<p class="eyebrow">Not sure?</p>
|
<p class="eyebrow">Choosing a package</p>
|
||||||
<h2>Which file should I use?</h2>
|
<h2>Which file should I use?</h2>
|
||||||
<p>
|
<p>
|
||||||
Windows users usually want the ZIP package. Linux users are best served by the Flatpak,
|
Windows users normally need the x64 ZIP package. On Linux, Flatpak is the practical choice when
|
||||||
which auto-updates and works across distributions; the AppImage or a native DEB/RPM/Arch
|
updates should be managed through the desktop software centre or the Flatpak command line. The
|
||||||
package are alternatives if preferred. The PDF manuals are attached to the same GitHub release.
|
AppImage is useful when a portable file is preferred, while DEB, RPM and Arch packages integrate
|
||||||
|
with their respective package managers.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
macOS packages are provided for Apple Silicon and Intel systems on a best-effort basis. They are
|
||||||
|
not currently notarized by Apple. The installation guide covers the first launch, updates, the
|
||||||
|
Stable, Beta and Nightly channels, and the location of the settings directory.
|
||||||
</p>
|
</p>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<a class="button" href="/manual/en/installation/">Installation guide</a>
|
<a class="button" href="/manual/en/installation/">Read the installation guide</a>
|
||||||
<a class="button secondary" href="/faq/">FAQ</a>
|
<a class="button secondary" href="/faq/">Open the FAQ</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
|
<div class="card content-card">
|
||||||
<div class="card content-card">
|
<h2>Development and infrastructure</h2>
|
||||||
|
<p>
|
||||||
<h2>Enjoying KST4Contest?</h2>
|
KST4Contest is developed independently. If it is useful in your contest workflow and you want to
|
||||||
|
help cover continued development, testing and infrastructure costs, the support page explains
|
||||||
<p>
|
what project contributions are used for.
|
||||||
|
</p>
|
||||||
If KST4Contest makes contesting easier for you,
|
<div class="actions">
|
||||||
please consider supporting future development.
|
<a class="button" href="/support/">Support the project</a>
|
||||||
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="actions">
|
|
||||||
|
|
||||||
<a class="button"
|
|
||||||
href="/support/">
|
|
||||||
|
|
||||||
❤️ Support Development
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</section></main>
|
</section></main>
|
||||||
|
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Frequently asked questions about KST4Contest, ON4KST contest operation, AirScout integration and VHF/UHF/SHF contest workflow.">
|
<meta name="twitter:description" content="Frequently asked questions about KST4Contest, ON4KST contest operation, AirScout integration and VHF/UHF/SHF contest workflow.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>AirScout Integration</title>
|
<title>AirScout Integration</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.">
|
<meta name="description" content="KST4Contest receives aircraft scatter information from AirScout and relates AP timing to active ON4KST stations.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/airscout/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/airscout/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="AirScout Integration">
|
<meta property="og:title" content="AirScout Integration">
|
||||||
<meta property="og:description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.">
|
<meta property="og:description" content="KST4Contest receives aircraft scatter information from AirScout and relates AP timing to active ON4KST stations.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/airscout/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/airscout/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="AirScout Integration">
|
<meta name="twitter:title" content="AirScout Integration">
|
||||||
<meta name="twitter:description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.">
|
<meta name="twitter:description" content="KST4Contest receives aircraft scatter information from AirScout and relates AP timing to active ON4KST stations.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Aircraft Scatter · since 1.26</p>
|
<p class="badge">Aircraft Scatter · since 1.26</p>
|
||||||
<h1>AirScout Integration</h1>
|
<h1>AirScout Integration</h1>
|
||||||
<p class="lead">Use aircraft scatter awareness directly inside your ON4KST contest workflow.</p>
|
<p class="lead">Use AirScout AP predictions in candidate evaluation, the timeline and sked planning.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "AirScout Integration",
|
"headline": "AirScout Integration",
|
||||||
"description": "Use aircraft scatter awareness directly inside your ON4KST contest workflow.",
|
"description": "Use AirScout AP predictions in candidate evaluation, the timeline and sked planning.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/airscout/",
|
"url": "https://kst4contest.hamradioonline.de/features/airscout/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -194,7 +194,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Dual Chat Categories</title>
|
<title>Dual Chat Categories</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.">
|
<meta name="description" content="KST4Contest combines two ON4KST chat categories while retaining the category required for messages and station context.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/dual-chat/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/dual-chat/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Dual Chat Categories">
|
<meta property="og:title" content="Dual Chat Categories">
|
||||||
<meta property="og:description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.">
|
<meta property="og:description" content="KST4Contest combines two ON4KST chat categories while retaining the category required for messages and station context.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/dual-chat/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/dual-chat/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Dual Chat Categories">
|
<meta name="twitter:title" content="Dual Chat Categories">
|
||||||
<meta name="twitter:description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.">
|
<meta name="twitter:description" content="KST4Contest combines two ON4KST chat categories while retaining the category required for messages and station context.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">ON4KST Chat · since 1.26</p>
|
<p class="badge">ON4KST Chat · since 1.26</p>
|
||||||
<h1>Dual Chat Categories</h1>
|
<h1>Dual Chat Categories</h1>
|
||||||
<p class="lead">Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</p>
|
<p class="lead">Log in to two ON4KST categories and handle both message streams in one station list and interface.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "Dual Chat Categories",
|
"headline": "Dual Chat Categories",
|
||||||
"description": "Operate in two ON4KST categories at once, for example VHF/UHF and microwave.",
|
"description": "Log in to two ON4KST categories and handle both message streams in one station list and interface.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/dual-chat/",
|
"url": "https://kst4contest.hamradioonline.de/features/dual-chat/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>DXCluster Server</title>
|
<title>DXCluster Server</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
|
<meta name="description" content="The built-in DX Cluster server forwards KST4Contest direction warnings and known frequency information to compatible contest loggers.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/dx-cluster/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/dx-cluster/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="DXCluster Server">
|
<meta property="og:title" content="DXCluster Server">
|
||||||
<meta property="og:description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
|
<meta property="og:description" content="The built-in DX Cluster server forwards KST4Contest direction warnings and known frequency information to compatible contest loggers.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/dx-cluster/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/dx-cluster/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="DXCluster Server">
|
<meta name="twitter:title" content="DXCluster Server">
|
||||||
<meta name="twitter:description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
|
<meta name="twitter:description" content="The built-in DX Cluster server forwards KST4Contest direction warnings and known frequency information to compatible contest loggers.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Radio Workflow · since 1.23</p>
|
<p class="badge">Radio Workflow · since 1.23</p>
|
||||||
<h1>DXCluster Server</h1>
|
<h1>DXCluster Server</h1>
|
||||||
<p class="lead">Use DXCluster information as part of the wider contest operating workflow.</p>
|
<p class="lead">Send direction warnings as DX Cluster spots to compatible logging software when a usable QRG is known.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "DXCluster Server",
|
"headline": "DXCluster Server",
|
||||||
"description": "Use DXCluster information as part of the wider contest operating workflow.",
|
"description": "Send direction warnings as DX Cluster spots to compatible logging software when a usable QRG is known.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/dx-cluster/",
|
"url": "https://kst4contest.hamradioonline.de/features/dx-cluster/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Contest-optimized ON4KST features for VHF, UHF and SHF operation.">
|
<meta name="twitter:description" content="Contest-optimized ON4KST features for VHF, UHF and SHF operation.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<div class="feature-icon">✈️</div>
|
<div class="feature-icon">✈️</div>
|
||||||
<p class="eyebrow">Aircraft Scatter</p>
|
<p class="eyebrow">Aircraft Scatter</p>
|
||||||
<h3><a href="/features/airscout/">AirScout Integration</a></h3>
|
<h3><a href="/features/airscout/">AirScout Integration</a></h3>
|
||||||
<p>Use aircraft scatter awareness directly inside your ON4KST contest workflow.</p>
|
<p>Use AirScout AP predictions in candidate evaluation, the timeline and sked planning.</p>
|
||||||
<a href="/features/airscout/">Learn more →</a>
|
<a href="/features/airscout/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
<div class="feature-icon">💬</div>
|
<div class="feature-icon">💬</div>
|
||||||
<p class="eyebrow">ON4KST Chat</p>
|
<p class="eyebrow">ON4KST Chat</p>
|
||||||
<h3><a href="/features/dual-chat/">Dual Chat Categories</a></h3>
|
<h3><a href="/features/dual-chat/">Dual Chat Categories</a></h3>
|
||||||
<p>Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</p>
|
<p>Log in to two ON4KST categories and handle both message streams in one station list and interface.</p>
|
||||||
<a href="/features/dual-chat/">Learn more →</a>
|
<a href="/features/dual-chat/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
<div class="feature-icon">📡</div>
|
<div class="feature-icon">📡</div>
|
||||||
<p class="eyebrow">Radio Workflow</p>
|
<p class="eyebrow">Radio Workflow</p>
|
||||||
<h3><a href="/features/dx-cluster/">DXCluster Server</a></h3>
|
<h3><a href="/features/dx-cluster/">DXCluster Server</a></h3>
|
||||||
<p>Use DXCluster information as part of the wider contest operating workflow.</p>
|
<p>Send direction warnings as DX Cluster spots to compatible logging software when a usable QRG is known.</p>
|
||||||
<a href="/features/dx-cluster/">Learn more →</a>
|
<a href="/features/dx-cluster/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
<div class="feature-icon">🔄</div>
|
<div class="feature-icon">🔄</div>
|
||||||
<p class="eyebrow">Logger Integration</p>
|
<p class="eyebrow">Logger Integration</p>
|
||||||
<h3><a href="/features/log-sync/">Log Synchronization</a></h3>
|
<h3><a href="/features/log-sync/">Log Synchronization</a></h3>
|
||||||
<p>Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</p>
|
<p>Import worked stations and current frequencies from supported contest loggers so filters and band information follow the log.</p>
|
||||||
<a href="/features/log-sync/">Learn more →</a>
|
<a href="/features/log-sync/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
<div class="feature-icon">⚡</div>
|
<div class="feature-icon">⚡</div>
|
||||||
<p class="eyebrow">Operator Speed</p>
|
<p class="eyebrow">Operator Speed</p>
|
||||||
<h3><a href="/features/macros/">Macros and Variables</a></h3>
|
<h3><a href="/features/macros/">Macros and Variables</a></h3>
|
||||||
<p>Send recurring contest messages faster with configurable macros and variables.</p>
|
<p>Build recurring chat messages from configurable text blocks and variables such as the current QRG or locator.</p>
|
||||||
<a href="/features/macros/">Learn more →</a>
|
<a href="/features/macros/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
<div class="feature-icon">🎯</div>
|
<div class="feature-icon">🎯</div>
|
||||||
<p class="eyebrow">Contest Workflow</p>
|
<p class="eyebrow">Contest Workflow</p>
|
||||||
<h3><a href="/features/priority-score/">Priority Score System</a></h3>
|
<h3><a href="/features/priority-score/">Priority Score System</a></h3>
|
||||||
<p>Find the most promising stations faster using contest-aware candidate scoring.</p>
|
<p>Rank active stations from known context such as direction, activity, band, QRG, AP and sked information.</p>
|
||||||
<a href="/features/priority-score/">Learn more →</a>
|
<a href="/features/priority-score/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
<div class="feature-icon">🔔</div>
|
<div class="feature-icon">🔔</div>
|
||||||
<p class="eyebrow">Sked Management</p>
|
<p class="eyebrow">Sked Management</p>
|
||||||
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
|
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
|
||||||
<p>Keep scheduled contacts visible and avoid missing time-critical skeds.</p>
|
<p>Store planned contacts and issue configurable chat messages plus local alerts before the agreed time.</p>
|
||||||
<a href="/features/sked-reminder/">Learn more →</a>
|
<a href="/features/sked-reminder/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
<div class="feature-icon">⏱️</div>
|
<div class="feature-icon">⏱️</div>
|
||||||
<p class="eyebrow">Contest Awareness</p>
|
<p class="eyebrow">Contest Awareness</p>
|
||||||
<h3><a href="/features/timeline/">Timeline View</a></h3>
|
<h3><a href="/features/timeline/">Timeline View</a></h3>
|
||||||
<p>See upcoming AP windows and candidate timing in a compact contest timeline.</p>
|
<p>Show AP-based priority candidates and scheduled contacts on a shared timeline.</p>
|
||||||
<a href="/features/timeline/">Learn more →</a>
|
<a href="/features/timeline/">Learn more →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Log Synchronization</title>
|
<title>Log Synchronization</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context.">
|
<meta name="description" content="KST4Contest receives worked-station and, where supported, frequency data from UCXLog, N1MM+, QARTest, DXLog.net and Win-Test through file and UDP interfaces.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/log-sync/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/log-sync/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Log Synchronization">
|
<meta property="og:title" content="Log Synchronization">
|
||||||
<meta property="og:description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context.">
|
<meta property="og:description" content="KST4Contest receives worked-station and, where supported, frequency data from UCXLog, N1MM+, QARTest, DXLog.net and Win-Test through file and UDP interfaces.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/log-sync/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/log-sync/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Log Synchronization">
|
<meta name="twitter:title" content="Log Synchronization">
|
||||||
<meta name="twitter:description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context.">
|
<meta name="twitter:description" content="KST4Contest receives worked-station and, where supported, frequency data from UCXLog, N1MM+, QARTest, DXLog.net and Win-Test through file and UDP interfaces.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Logger Integration · since 1.31</p>
|
<p class="badge">Logger Integration · since 1.31</p>
|
||||||
<h1>Log Synchronization</h1>
|
<h1>Log Synchronization</h1>
|
||||||
<p class="lead">Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</p>
|
<p class="lead">Import worked stations and current frequencies from supported contest loggers so filters and band information follow the log.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "Log Synchronization",
|
"headline": "Log Synchronization",
|
||||||
"description": "Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.",
|
"description": "Import worked stations and current frequencies from supported contest loggers so filters and band information follow the log.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/log-sync/",
|
"url": "https://kst4contest.hamradioonline.de/features/log-sync/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Macros and Variables</title>
|
<title>Macros and Variables</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.">
|
<meta name="description" content="KST4Contest macros combine reusable message text with values taken from the current station, frequency and operating context.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/macros/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/macros/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Macros and Variables">
|
<meta property="og:title" content="Macros and Variables">
|
||||||
<meta property="og:description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.">
|
<meta property="og:description" content="KST4Contest macros combine reusable message text with values taken from the current station, frequency and operating context.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/macros/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/macros/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Macros and Variables">
|
<meta name="twitter:title" content="Macros and Variables">
|
||||||
<meta name="twitter:description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.">
|
<meta name="twitter:description" content="KST4Contest macros combine reusable message text with values taken from the current station, frequency and operating context.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Operator Speed · since 1.0</p>
|
<p class="badge">Operator Speed · since 1.0</p>
|
||||||
<h1>Macros and Variables</h1>
|
<h1>Macros and Variables</h1>
|
||||||
<p class="lead">Send recurring contest messages faster with configurable macros and variables.</p>
|
<p class="lead">Build recurring chat messages from configurable text blocks and variables such as the current QRG or locator.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "Macros and Variables",
|
"headline": "Macros and Variables",
|
||||||
"description": "Send recurring contest messages faster with configurable macros and variables.",
|
"description": "Build recurring chat messages from configurable text blocks and variables such as the current QRG or locator.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/macros/",
|
"url": "https://kst4contest.hamradioonline.de/features/macros/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Priority Score System</title>
|
<title>Priority Score System</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.">
|
<meta name="description" content="The Priority Score System combines available contest information to populate a separate list of currently relevant candidates.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/priority-score/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/priority-score/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Priority Score System">
|
<meta property="og:title" content="Priority Score System">
|
||||||
<meta property="og:description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.">
|
<meta property="og:description" content="The Priority Score System combines available contest information to populate a separate list of currently relevant candidates.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/priority-score/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/priority-score/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Priority Score System">
|
<meta name="twitter:title" content="Priority Score System">
|
||||||
<meta name="twitter:description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.">
|
<meta name="twitter:description" content="The Priority Score System combines available contest information to populate a separate list of currently relevant candidates.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Contest Workflow · since 1.40</p>
|
<p class="badge">Contest Workflow · since 1.40</p>
|
||||||
<h1>Priority Score System</h1>
|
<h1>Priority Score System</h1>
|
||||||
<p class="lead">Find the most promising stations faster using contest-aware candidate scoring.</p>
|
<p class="lead">Rank active stations from known context such as direction, activity, band, QRG, AP and sked information.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "Priority Score System",
|
"headline": "Priority Score System",
|
||||||
"description": "Find the most promising stations faster using contest-aware candidate scoring.",
|
"description": "Rank active stations from known context such as direction, activity, band, QRG, AP and sked information.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/priority-score/",
|
"url": "https://kst4contest.hamradioonline.de/features/priority-score/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Sked Reminder</title>
|
<title>Sked Reminder</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.">
|
<meta name="description" content="Sked Reminder keeps scheduled contacts visible and provides automatic advance messages together with acoustic and visual operator alerts.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/sked-reminder/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/sked-reminder/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Sked Reminder">
|
<meta property="og:title" content="Sked Reminder">
|
||||||
<meta property="og:description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.">
|
<meta property="og:description" content="Sked Reminder keeps scheduled contacts visible and provides automatic advance messages together with acoustic and visual operator alerts.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/sked-reminder/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/sked-reminder/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Sked Reminder">
|
<meta name="twitter:title" content="Sked Reminder">
|
||||||
<meta name="twitter:description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.">
|
<meta name="twitter:description" content="Sked Reminder keeps scheduled contacts visible and provides automatic advance messages together with acoustic and visual operator alerts.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Sked Management · since 1.40</p>
|
<p class="badge">Sked Management · since 1.40</p>
|
||||||
<h1>Sked Reminder</h1>
|
<h1>Sked Reminder</h1>
|
||||||
<p class="lead">Keep scheduled contacts visible and avoid missing time-critical skeds.</p>
|
<p class="lead">Store planned contacts and issue configurable chat messages plus local alerts before the agreed time.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "Sked Reminder",
|
"headline": "Sked Reminder",
|
||||||
"description": "Keep scheduled contacts visible and avoid missing time-critical skeds.",
|
"description": "Store planned contacts and issue configurable chat messages plus local alerts before the agreed time.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/sked-reminder/",
|
"url": "https://kst4contest.hamradioonline.de/features/sked-reminder/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Timeline View</title>
|
<title>Timeline View</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.">
|
<meta name="description" content="The Timeline View places upcoming aircraft scatter candidates and planned skeds into a common time-based overview.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/timeline/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/timeline/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Timeline View">
|
<meta property="og:title" content="Timeline View">
|
||||||
<meta property="og:description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.">
|
<meta property="og:description" content="The Timeline View places upcoming aircraft scatter candidates and planned skeds into a common time-based overview.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/timeline/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/timeline/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Timeline View">
|
<meta name="twitter:title" content="Timeline View">
|
||||||
<meta name="twitter:description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.">
|
<meta name="twitter:description" content="The Timeline View places upcoming aircraft scatter candidates and planned skeds into a common time-based overview.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Contest Awareness · since 1.40</p>
|
<p class="badge">Contest Awareness · since 1.40</p>
|
||||||
<h1>Timeline View</h1>
|
<h1>Timeline View</h1>
|
||||||
<p class="lead">See upcoming AP windows and candidate timing in a compact contest timeline.</p>
|
<p class="lead">Show AP-based priority candidates and scheduled contacts on a shared timeline.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section narrow">
|
<section class="section narrow">
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "TechArticle",
|
"@type": "TechArticle",
|
||||||
"headline": "Timeline View",
|
"headline": "Timeline View",
|
||||||
"description": "See upcoming AP windows and candidate timing in a compact contest timeline.",
|
"description": "Show AP-based priority candidates and scheduled contacts on a shared timeline.",
|
||||||
"about": "KST4Contest",
|
"about": "KST4Contest",
|
||||||
"url": "https://kst4contest.hamradioonline.de/features/timeline/",
|
"url": "https://kst4contest.hamradioonline.de/features/timeline/",
|
||||||
"author": {
|
"author": {
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>KST4Contest – Contest-Optimized ON4KST Chat Client</title>
|
<title>KST4Contest – ON4KST Contest Client for VHF, UHF and SHF</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.">
|
<meta name="description" content="KST4Contest combines ON4KST chat, candidate prioritisation, sked planning, AirScout data and logger integration in one desktop client.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="KST4Contest – Contest-Optimized ON4KST Chat Client">
|
<meta property="og:title" content="KST4Contest – ON4KST Contest Client for VHF, UHF and SHF">
|
||||||
<meta property="og:description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.">
|
<meta property="og:description" content="KST4Contest combines ON4KST chat, candidate prioritisation, sked planning, AirScout data and logger integration in one desktop client.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -19,11 +19,11 @@
|
|||||||
<meta property="og:image:height" content="630">
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="KST4Contest – Contest-Optimized ON4KST Chat Client">
|
<meta name="twitter:title" content="KST4Contest – ON4KST Contest Client for VHF, UHF and SHF">
|
||||||
<meta name="twitter:description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.">
|
<meta name="twitter:description" content="KST4Contest combines ON4KST chat, candidate prioritisation, sked planning, AirScout data and logger integration in one desktop client.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -69,25 +69,32 @@
|
|||||||
<div class="hero-fx-vignette" aria-hidden="true"></div>
|
<div class="hero-fx-vignette" aria-hidden="true"></div>
|
||||||
|
|
||||||
<div class="hero-copy">
|
<div class="hero-copy">
|
||||||
<p class="badge">The contest-optimized ON4KST client</p>
|
<p class="badge">ON4KST contest workflow for 144 MHz and above</p>
|
||||||
<h1>KST4Contest</h1>
|
<h1>KST4Contest</h1>
|
||||||
|
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
Work smarter. Make more QSOs. KST4Contest brings priority candidates,
|
ON4KST shows you the traffic. KST4Contest helps turn it into an operating
|
||||||
AirScout workflow, sked reminders, dual chat categories and log synchronization
|
decision by combining chat, candidate prioritisation, sked planning,
|
||||||
into one contest-focused ON4KST client.
|
AirScout data and logger integration in one desktop client.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The available information is filtered, related to active stations and
|
||||||
|
presented in a contest-oriented workflow. The final decision still
|
||||||
|
belongs to the operator.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<a class="button" href="/download/">Download KST4Contest</a>
|
<a class="button" href="/download/">Download KST4Contest</a>
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest">View on GitHub</a>
|
<a class="button secondary" href="/manual/">Read the manual</a>
|
||||||
<a class="button ghost" href="/manual/">Read manual</a>
|
<a class="button ghost" href="https://github.com/praktimarc/kst4contest">View source code</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="hero-panel">
|
<div class="hero-panel">
|
||||||
<div class="terminal-bar">
|
<div class="terminal-bar">
|
||||||
<span></span><span></span><span></span>
|
<span></span><span></span><span></span>
|
||||||
<strong>KST4Contest workflow</strong>
|
<strong>Functions sharing the same station context</strong>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mock-grid">
|
<div class="mock-grid">
|
||||||
@@ -95,21 +102,21 @@
|
|||||||
|
|
||||||
<div class="mini-card">
|
<div class="mini-card">
|
||||||
<strong>✈️ AirScout Integration</strong>
|
<strong>✈️ AirScout Integration</strong>
|
||||||
<small>Use aircraft scatter awareness directly inside your ON4KST contest workflow.</small>
|
<small>Use AirScout AP predictions in candidate evaluation, the timeline and sked planning.</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mini-card">
|
<div class="mini-card">
|
||||||
<strong>💬 Dual Chat Categories</strong>
|
<strong>💬 Dual Chat Categories</strong>
|
||||||
<small>Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</small>
|
<small>Log in to two ON4KST categories and handle both message streams in one station list and interface.</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mini-card">
|
<div class="mini-card">
|
||||||
<strong>📡 DXCluster Server</strong>
|
<strong>📡 DXCluster Server</strong>
|
||||||
<small>Use DXCluster information as part of the wider contest operating workflow.</small>
|
<small>Send direction warnings as DX Cluster spots to compatible logging software when a usable QRG is known.</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -123,14 +130,14 @@
|
|||||||
|
|
||||||
<div class="mini-card">
|
<div class="mini-card">
|
||||||
<strong>🔄 Log Synchronization</strong>
|
<strong>🔄 Log Synchronization</strong>
|
||||||
<small>Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</small>
|
<small>Import worked stations and current frequencies from supported contest loggers so filters and band information follow the log.</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mini-card">
|
<div class="mini-card">
|
||||||
<strong>⚡ Macros and Variables</strong>
|
<strong>⚡ Macros and Variables</strong>
|
||||||
<small>Send recurring contest messages faster with configurable macros and variables.</small>
|
<small>Build recurring chat messages from configurable text blocks and variables such as the current QRG or locator.</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -146,10 +153,52 @@
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="eyebrow">Powerful features</p>
|
<p class="eyebrow">The operating problem</p>
|
||||||
<h2>Everything you need for contest success</h2>
|
<h2>The useful station is rarely the only station in the chat</h2>
|
||||||
<p>
|
<p>
|
||||||
Every feature is designed to reduce operator workload and improve decision speed during real contest operation.
|
During an active contest, messages, sked requests, frequency information
|
||||||
|
and band changes arrive continuously. The task is to identify which part
|
||||||
|
of that traffic matters now, which candidate should be monitored and
|
||||||
|
which contact is better scheduled for later.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<article class="card">
|
||||||
|
<h3>Observe</h3>
|
||||||
|
<p>
|
||||||
|
Messages, locators, detected frequencies and known band activity are
|
||||||
|
assigned to stations across as many as two ON4KST chat categories.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<article class="card">
|
||||||
|
<h3>Evaluate</h3>
|
||||||
|
<p>
|
||||||
|
Direction, distance, worked status, NOT-QRV information, chat activity,
|
||||||
|
sked context and aircraft scatter data feed filters and candidate scores.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<article class="card">
|
||||||
|
<h3>Act</h3>
|
||||||
|
<p>
|
||||||
|
Candidates can be contacted, scheduled or monitored. Skeds remain
|
||||||
|
visible, while supported loggers and station interfaces receive the
|
||||||
|
information required for the next operating step.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section">
|
||||||
|
<div class="section-heading">
|
||||||
|
<p class="eyebrow">Functions</p>
|
||||||
|
<h2>One workflow, shared context</h2>
|
||||||
|
<p>
|
||||||
|
The individual functions are not isolated tools. They use the same
|
||||||
|
station, message, band and timing information, so that a change in one
|
||||||
|
part of the workflow can also affect filters, priorities and reminders.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -159,24 +208,24 @@
|
|||||||
<div class="feature-icon">✈️</div>
|
<div class="feature-icon">✈️</div>
|
||||||
<p class="eyebrow">Aircraft Scatter</p>
|
<p class="eyebrow">Aircraft Scatter</p>
|
||||||
<h3><a href="/features/airscout/">AirScout Integration</a></h3>
|
<h3><a href="/features/airscout/">AirScout Integration</a></h3>
|
||||||
<p>Use aircraft scatter awareness directly inside your ON4KST contest workflow.</p>
|
<p>Use AirScout AP predictions in candidate evaluation, the timeline and sked planning.</p>
|
||||||
<a href="/features/airscout/">Learn more →</a>
|
<a href="/features/airscout/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">💬</div>
|
<div class="feature-icon">💬</div>
|
||||||
<p class="eyebrow">ON4KST Chat</p>
|
<p class="eyebrow">ON4KST Chat</p>
|
||||||
<h3><a href="/features/dual-chat/">Dual Chat Categories</a></h3>
|
<h3><a href="/features/dual-chat/">Dual Chat Categories</a></h3>
|
||||||
<p>Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</p>
|
<p>Log in to two ON4KST categories and handle both message streams in one station list and interface.</p>
|
||||||
<a href="/features/dual-chat/">Learn more →</a>
|
<a href="/features/dual-chat/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">📡</div>
|
<div class="feature-icon">📡</div>
|
||||||
<p class="eyebrow">Radio Workflow</p>
|
<p class="eyebrow">Radio Workflow</p>
|
||||||
<h3><a href="/features/dx-cluster/">DXCluster Server</a></h3>
|
<h3><a href="/features/dx-cluster/">DXCluster Server</a></h3>
|
||||||
<p>Use DXCluster information as part of the wider contest operating workflow.</p>
|
<p>Send direction warnings as DX Cluster spots to compatible logging software when a usable QRG is known.</p>
|
||||||
<a href="/features/dx-cluster/">Learn more →</a>
|
<a href="/features/dx-cluster/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
@@ -184,47 +233,47 @@
|
|||||||
<p class="eyebrow"></p>
|
<p class="eyebrow"></p>
|
||||||
<h3><a href="/features/">KST4Contest Features</a></h3>
|
<h3><a href="/features/">KST4Contest Features</a></h3>
|
||||||
<p></p>
|
<p></p>
|
||||||
<a href="/features/">Learn more →</a>
|
<a href="/features/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">🔄</div>
|
<div class="feature-icon">🔄</div>
|
||||||
<p class="eyebrow">Logger Integration</p>
|
<p class="eyebrow">Logger Integration</p>
|
||||||
<h3><a href="/features/log-sync/">Log Synchronization</a></h3>
|
<h3><a href="/features/log-sync/">Log Synchronization</a></h3>
|
||||||
<p>Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</p>
|
<p>Import worked stations and current frequencies from supported contest loggers so filters and band information follow the log.</p>
|
||||||
<a href="/features/log-sync/">Learn more →</a>
|
<a href="/features/log-sync/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">⚡</div>
|
<div class="feature-icon">⚡</div>
|
||||||
<p class="eyebrow">Operator Speed</p>
|
<p class="eyebrow">Operator Speed</p>
|
||||||
<h3><a href="/features/macros/">Macros and Variables</a></h3>
|
<h3><a href="/features/macros/">Macros and Variables</a></h3>
|
||||||
<p>Send recurring contest messages faster with configurable macros and variables.</p>
|
<p>Build recurring chat messages from configurable text blocks and variables such as the current QRG or locator.</p>
|
||||||
<a href="/features/macros/">Learn more →</a>
|
<a href="/features/macros/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">🎯</div>
|
<div class="feature-icon">🎯</div>
|
||||||
<p class="eyebrow">Contest Workflow</p>
|
<p class="eyebrow">Contest Workflow</p>
|
||||||
<h3><a href="/features/priority-score/">Priority Score System</a></h3>
|
<h3><a href="/features/priority-score/">Priority Score System</a></h3>
|
||||||
<p>Find the most promising stations faster using contest-aware candidate scoring.</p>
|
<p>Rank active stations from known context such as direction, activity, band, QRG, AP and sked information.</p>
|
||||||
<a href="/features/priority-score/">Learn more →</a>
|
<a href="/features/priority-score/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">🔔</div>
|
<div class="feature-icon">🔔</div>
|
||||||
<p class="eyebrow">Sked Management</p>
|
<p class="eyebrow">Sked Management</p>
|
||||||
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
|
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
|
||||||
<p>Keep scheduled contacts visible and avoid missing time-critical skeds.</p>
|
<p>Store planned contacts and issue configurable chat messages plus local alerts before the agreed time.</p>
|
||||||
<a href="/features/sked-reminder/">Learn more →</a>
|
<a href="/features/sked-reminder/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">⏱️</div>
|
<div class="feature-icon">⏱️</div>
|
||||||
<p class="eyebrow">Contest Awareness</p>
|
<p class="eyebrow">Contest Awareness</p>
|
||||||
<h3><a href="/features/timeline/">Timeline View</a></h3>
|
<h3><a href="/features/timeline/">Timeline View</a></h3>
|
||||||
<p>See upcoming AP windows and candidate timing in a compact contest timeline.</p>
|
<p>Show AP-based priority candidates and scheduled contacts on a shared timeline.</p>
|
||||||
<a href="/features/timeline/">Learn more →</a>
|
<a href="/features/timeline/">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -232,39 +281,61 @@
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="cta-panel">
|
<div class="cta-panel">
|
||||||
<p class="eyebrow">Open Source</p>
|
<p class="eyebrow">Limits</p>
|
||||||
<h2>Built by contesters for contesters.</h2>
|
<h2>A priority score is not a propagation forecast</h2>
|
||||||
<p>
|
<p>
|
||||||
KST4Contest is developed around real VHF/UHF/SHF contest workflows:
|
KST4Contest can only evaluate the information it knows. Scores, AP
|
||||||
ON4KST chat, aircraft scatter, skeds, logging and fast operator decisions.
|
windows, filters and path profiles support the operator's decision; they
|
||||||
|
do not guarantee a contact. If the input data is incomplete or outdated,
|
||||||
|
the result can be incomplete or outdated as well.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<a class="button" href="/download/">Download KST4Contest</a>
|
<a class="button" href="/features/">Explore the functions</a>
|
||||||
<a class="button secondary" href="/features/">Explore features</a>
|
<a class="button secondary" href="/manual/">Read the technical details</a>
|
||||||
<a class="button ghost" href="/support/">❤️ Support development</a>
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section">
|
||||||
|
<div class="cta-panel">
|
||||||
|
<p class="eyebrow">Project status</p>
|
||||||
|
<h2>Stable for operation, Nightly for testing</h2>
|
||||||
|
<p>
|
||||||
|
KST4Contest is open-source software. The current stable release is the
|
||||||
|
normal choice for contest operation. Nightly builds follow ongoing
|
||||||
|
development and are useful when a particular fix or feature needs
|
||||||
|
testing. A few minutes before a contest is not the ideal time to discover
|
||||||
|
what changed.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="actions">
|
||||||
|
<a class="button" href="/download/">Download the stable release</a>
|
||||||
|
<a class="button secondary" href="/roadmap/">Development status</a>
|
||||||
|
<a class="button ghost" href="/support/">Support development</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">
|
||||||
{
|
{
|
||||||
"@context":"https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type":"SoftwareApplication",
|
"@type": "SoftwareApplication",
|
||||||
"name":"KST4Contest",
|
"name": "KST4Contest",
|
||||||
"applicationCategory":"CommunicationApplication",
|
"applicationCategory": "CommunicationApplication",
|
||||||
"operatingSystem":"Windows, Linux, macOS",
|
"operatingSystem": "Windows, Linux, macOS",
|
||||||
"url":"https://kst4contest.hamradioonline.de",
|
"url": "https://kst4contest.hamradioonline.de/",
|
||||||
"downloadUrl":"https://github.com/praktimarc/kst4contest/releases",
|
"downloadUrl": "https://github.com/praktimarc/kst4contest/releases/latest",
|
||||||
"description":"Contest-optimized ON4KST client for VHF, UHF and SHF amateur radio contests."
|
"description": "KST4Contest combines ON4KST chat, candidate prioritisation, sked planning, AirScout data and logger integration for VHF, UHF and SHF contest operation.",
|
||||||
|
"license": "https://github.com/praktimarc/kst4contest/blob/main/LICENSE"
|
||||||
}
|
}
|
||||||
</script>
|
</script></main>
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
@@ -289,7 +360,7 @@
|
|||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
<script src="/assets/js/hero-radio-fx.js?v=1784239128010" defer></script>
|
<script src="/assets/js/hero-radio-fx.js?v=1784595000789" defer></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
<praktiKST>
|
<praktiKST>
|
||||||
<latestVersion>
|
<latestVersion>
|
||||||
<versionNumber>1.411</versionNumber>
|
<versionNumber>1.411</versionNumber>
|
||||||
|
<semanticVersion>1.41.1</semanticVersion>
|
||||||
<adminMessage></adminMessage>
|
<adminMessage></adminMessage>
|
||||||
<majorChanges>- Score of Top-Priority Candidates in the user section
|
<majorChanges>- Score of Top-Priority Candidates in the user section
|
||||||
- Broadcast Messages (To ALL Station in Contest) in seperate Window</majorChanges>
|
- Broadcast Messages (To ALL Station in Contest) in seperate Window</majorChanges>
|
||||||
<latestVersionPathOnWebserver>https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/praktiKST-v1.41.1-windows-x64.zip</latestVersionPathOnWebserver>
|
<latestVersionPathOnWebserver>https://github.com/praktimarc/kst4contest/releases/tag/v1.41.1</latestVersionPathOnWebserver>
|
||||||
</latestVersion>
|
</latestVersion>
|
||||||
<needUpdateSinceLastVersion>
|
<needUpdateSinceLastVersion>
|
||||||
<filename>nothing</filename>
|
<filename>nothing</filename>
|
||||||
@@ -136,7 +137,7 @@ But Reset works all time</bugdescription>
|
|||||||
</bug>
|
</bug>
|
||||||
</bugsReported>
|
</bugsReported>
|
||||||
<changeLog>
|
<changeLog>
|
||||||
<changedVersionNumber>1.411</changedVersionNumber>
|
<changedVersionNumber>1.41.1</changedVersionNumber>
|
||||||
<date>2026-07-08</date>
|
<date>2026-07-08</date>
|
||||||
<description>Release v1.41.1</description>
|
<description>Release v1.41.1</description>
|
||||||
<added></added>
|
<added></added>
|
||||||
@@ -145,7 +146,7 @@ But Reset works all time</bugdescription>
|
|||||||
<removed></removed>
|
<removed></removed>
|
||||||
</changeLog>
|
</changeLog>
|
||||||
<changeLog>
|
<changeLog>
|
||||||
<changedVersionNumber>1.41</changedVersionNumber>
|
<changedVersionNumber>1.41.0</changedVersionNumber>
|
||||||
<date>2026-07-01</date>
|
<date>2026-07-01</date>
|
||||||
<description>Release v1.41.0</description>
|
<description>Release v1.41.0</description>
|
||||||
<added>- Score of Top-Priority Candidates in the user section
|
<added>- Score of Top-Priority Candidates in the user section
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Legal notice for the KST4Contest website.">
|
<meta name="twitter:description" content="Legal notice for the KST4Contest website.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 250 KiB |
|
After Width: | Height: | Size: 48 KiB |
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
||||||
<h1>AirScout Integration</h1>
|
<h1>AirScout-Integration</h1>
|
||||||
<h1 id="airscout-integration" tabindex="-1"><a class="header-anchor" href="#airscout-integration">AirScout-Integration</a></h1>
|
<h1 id="airscout-integration" tabindex="-1"><a class="header-anchor" href="#airscout-integration">AirScout-Integration</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 <a href="/manual/en/airscout-integration/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
<p>🇬🇧 <a href="/manual/en/airscout-integration/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
||||||
@@ -97,8 +97,8 @@
|
|||||||
<li>AirScout starten.</li>
|
<li>AirScout starten.</li>
|
||||||
<li>In den AirScout-Einstellungen den OV3T-Feed-Account eintragen (Benutzername, Passwort, URL).</li>
|
<li>In den AirScout-Einstellungen den OV3T-Feed-Account eintragen (Benutzername, Passwort, URL).</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p><img src="as_plane_feed_1.png" alt="AirscoutSchritt1">
|
<p><img src="/manual/assets/as_plane_feed_1.png" alt="AirscoutSchritt1">
|
||||||
<img src="as_plane_feed_2.png" alt="AirscoutSchritt2"></p>
|
<img src="/manual/assets/as_plane_feed_2.png" alt="AirscoutSchritt2"></p>
|
||||||
<ol start="3">
|
<ol start="3">
|
||||||
<li>Verbindung testen.</li>
|
<li>Verbindung testen.</li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<li>AirScout-Kommunikation aktivieren</li>
|
<li>AirScout-Kommunikation aktivieren</li>
|
||||||
<li>IP und Port auf Standardwerte lassen (sofern nicht geändert)</li>
|
<li>IP und Port auf Standardwerte lassen (sofern nicht geändert)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><img src="as_plane_feed_3.png" alt="AirscoutSchritt3">{ width=85% }</p>
|
<p><img src="/manual/assets/as_plane_feed_3.png" alt="AirscoutSchritt3">{ width=85% }</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="kommunikation-zwischen-kst4contest-und-airscout-(ab-v1.263)" tabindex="-1"><a class="header-anchor" href="#kommunikation-zwischen-kst4contest-und-airscout-(ab-v1.263)">Kommunikation zwischen KST4Contest und AirScout (ab v1.263)</a></h2>
|
<h2 id="kommunikation-zwischen-kst4contest-und-airscout-(ab-v1.263)" tabindex="-1"><a class="header-anchor" href="#kommunikation-zwischen-kst4contest-und-airscout-(ab-v1.263)">Kommunikation zwischen KST4Contest und AirScout (ab v1.263)</a></h2>
|
||||||
<p><strong>Verbesserung in v1.263</strong>: KST4Contest sendet nur noch Stationen an AirScout, deren QRB (Entfernung) kleiner als das eingestellte <strong>Maximum-QRB</strong> ist. Das Abfrageintervall wurde von 12 Sekunden auf <strong>60 Sekunden</strong> verlängert.</p>
|
<p><strong>Verbesserung in v1.263</strong>: KST4Contest sendet nur noch Stationen an AirScout, deren QRB (Entfernung) kleiner als das eingestellte <strong>Maximum-QRB</strong> ist. Das Abfrageintervall wurde von 12 Sekunden auf <strong>60 Sekunden</strong> verlängert.</p>
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
||||||
<h1>Benutzeroberflaeche</h1>
|
<h1>Benutzeroberfläche</h1>
|
||||||
<h1 id="benutzeroberfl%C3%A4che" tabindex="-1"><a class="header-anchor" href="#benutzeroberfl%C3%A4che">Benutzeroberfläche</a></h1>
|
<h1 id="benutzeroberfl%C3%A4che" tabindex="-1"><a class="header-anchor" href="#benutzeroberfl%C3%A4che">Benutzeroberfläche</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 <a href="/manual/en/user-interface/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
<p>🇬🇧 <a href="/manual/en/user-interface/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
||||||
<h1>DX Cluster Server</h1>
|
<h1>Integrierter DX-Cluster-Server</h1>
|
||||||
<h1 id="integrierter-dx-cluster-server" tabindex="-1"><a class="header-anchor" href="#integrierter-dx-cluster-server">Integrierter DX-Cluster-Server</a></h1>
|
<h1 id="integrierter-dx-cluster-server" tabindex="-1"><a class="header-anchor" href="#integrierter-dx-cluster-server">Integrierter DX-Cluster-Server</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 <a href="/manual/en/dx-cluster-server/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
<p>🇬🇧 <a href="/manual/en/dx-cluster-server/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,13 +67,59 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
||||||
<h1>Home</h1>
|
<h1>KST4Contest – Handbuch</h1>
|
||||||
<h1 id="kst4contest-%E2%80%93-wiki" tabindex="-1"><a class="header-anchor" href="#kst4contest-%E2%80%93-wiki">KST4Contest – Wiki</a></h1>
|
<h1 id="kst4contest-%E2%80%93-handbuch" tabindex="-1"><a class="header-anchor" href="#kst4contest-%E2%80%93-handbuch">KST4Contest – Handbuch</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 <a href="/manual/en/home/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
<p><a href="/manual/en/home/">English version</a> | Du liest gerade die deutsche Version</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p><strong>KST4Contest</strong> (auch bekannt als <em>PraktiKST</em>) ist ein Java-basierter Chat-Client für den <a href="http://www.on4kst.info/chat/">ON4KST-Chat</a>, der speziell für den Contest-Betrieb auf den VHF/UHF/SHF-Bändern (144 MHz und aufwärts) entwickelt wurde.</p>
|
<p>KST4Contest ist ein Desktop-Client für den <a href="https://www.on4kst.org/chat/login.php">ON4KST-Chat</a>, 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 und die Anbindung an weitere Programme in einer gemeinsamen Arbeitsoberfläche.</p>
|
||||||
<p>Entwickelt von <strong>DO5AMF (Marc Fröhlich)</strong>, Operator bei DM5M.</p>
|
<p>Entwickelt wird KST4Contest von <strong>DO5AMF (Marc Fröhlich)</strong>, Operator bei DM5M und (seit Mai 2025) <strong>DN9APW (Philipp Wagner)</strong>. Der Quellcode ist öffentlich auf <a href="https://github.com/praktimarc/kst4contest">GitHub</a> verfügbar.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="wozu-braucht-man-einen-eigenen-on4kst-client%3F" tabindex="-1"><a class="header-anchor" href="#wozu-braucht-man-einen-eigenen-on4kst-client%3F">Wozu braucht man einen eigenen ON4KST-Client?</a></h2>
|
||||||
|
<p>Der ON4KST-Chat liefert während eines Contests eine große Menge an Informationen: aktive Stationen, Locator, Frequenzen, Sked-Anfragen und Hinweise auf aktuelle Aktivität. Das eigentliche Problem besteht nicht darin, diese Daten zu sehen. Man muss daraus rechtzeitig die nächste sinnvolle Verbindung ableiten.</p>
|
||||||
|
<p>KST4Contest wertet die verfügbaren Informationen aus, ordnet sie und stellt sie in einem contestgerechten Arbeitsablauf dar. Dabei werden unter anderem Antennenrichtung, Entfernung, bekannte Bänder und Frequenzen, bereits gearbeitete Stationen, Chat-Aktivität und Aircraft-Scatter-Zeiten berücksichtigt.</p>
|
||||||
|
<p>Das Programm entscheidet jedoch nicht, welches QSO tatsächlich möglich ist. Der Prioritätsscore, die AP-Timeline und die verschiedenen Hervorhebungen sind Entscheidungshilfen. Die endgültige Beurteilung bleibt beim Operator – schon deshalb, weil auch ein recht überzeugender Computerbildschirm noch keine Funkverbindung herstellt.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="was-kst4contest-im-contest-unterst%C3%BCtzt" tabindex="-1"><a class="header-anchor" href="#was-kst4contest-im-contest-unterst%C3%BCtzt">Was KST4Contest im Contest unterstützt</a></h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p><strong>Chat beobachten und einordnen:</strong> KST4Contest kann zwei ON4KST-Chat-Kategorien gleichzeitig darstellen. Nachrichten, Frequenzangaben und bekannte Bandaktivitäten werden den jeweiligen Stationen zugeordnet.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Relevante Stationen herausfiltern:</strong> Richtungs-, Entfernungs-, Worked- und NOT-QRV-Filter reduzieren die Benutzerliste auf die Stationen, die für den aktuellen Betriebszustand tatsächlich interessant sind.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Kandidaten priorisieren:</strong> Das Score-System bewertet aktive Chatmember anhand mehrerer bekannter Kriterien. Die derzeit relevantesten Kandidaten erscheinen zusätzlich in einer eigenen Prioritätsliste.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Skeds vorbereiten und im Blick behalten:</strong> Sked-Erinnerungen, automatische Vorwarnungen und die AP-Timeline helfen dabei, vereinbarte Verbindungen nicht zwischen Chat, Log und laufendem CQ-Betrieb zu verlieren.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Aircraft Scatter einbeziehen:</strong> Über die AirScout-Schnittstelle werden geeignete Flugzeuge und erwartete Reflexionszeiten in die Stationsbewertung und Zeitplanung übernommen.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Log und Funkstation anbinden:</strong> KST4Contest synchronisiert gearbeitete Stationen und Frequenzinformationen mit unterstützten Logprogrammen. Zusätzlich stehen Schnittstellen zu Win-Test, PSTRotator und ein integrierter DX-Cluster-Server zur Verfügung.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Stationen und Funkwege darstellen:</strong> Die Stationskarte zeigt aktive Chatmember, Locator-Felder, Antennenrichtungen und den Weg zur ausgewählten Station. Für ausgewählte Verbindungen kann außerdem ein Geländeprofil berechnet werden.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Die Funktionen greifen ineinander. Eine erkannte Frequenz kann beispielsweise einem aktiven Band zugeordnet werden, der Worked-Status stammt aus dem Log, Aircraft-Scatter-Daten ergänzen die zeitliche Bewertung und der daraus berechnete Score beeinflusst die Prioritätsliste. Fehlende oder veraltete Eingangsdaten können deshalb auch das Ergebnis beeinflussen.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="voraussetzungen" tabindex="-1"><a class="header-anchor" href="#voraussetzungen">Voraussetzungen</a></h2>
|
||||||
|
<p>Für die Anmeldung ist ein registrierter ON4KST-Account erforderlich. Registrierung und Login sind über die <a href="https://www.on4kst.org/chat/login.php">offizielle ON4KST-Anmeldeseite</a> erreichbar.</p>
|
||||||
|
<p>Die offizielle Sprache im ON4KST-Chat ist Englisch. Das gilt auch für Nachrichten an Stationen aus dem eigenen Land. Übliche Amateurfunk-Abkürzungen wie <code>pse</code>, <code>agn</code>, <code>qrg</code>, <code>dir</code>, <code>rrr</code>, <code>tnx</code> oder <code>73</code> sind dabei normal und meistens erheblich schneller als ausformulierte Prosa.</p>
|
||||||
|
<p>Download, unterstützte Betriebssysteme und Installationswege sind im Kapitel <a href="/manual/de/installation/">Installation</a> beschrieben.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="versionsstand-dieses-handbuchs" tabindex="-1"><a class="header-anchor" href="#versionsstand-dieses-handbuchs">Versionsstand dieses Handbuchs</a></h2>
|
||||||
|
<p>Dieses Handbuch beschreibt die stabile Version <strong>v1.41.1</strong>.</p>
|
||||||
|
<p>Funktionen oder Änderungen, die nur im aktuellen Entwicklungsstand enthalten sind, werden ausdrücklich als <strong>Nightly / v1.42</strong> gekennzeichnet. Fehlt eine solche Kennzeichnung, bezieht sich die Beschreibung auf die stabile Version.</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/praktimarc/kst4contest/releases/latest">Aktuelle stabile Version herunterladen</a></li>
|
||||||
|
<li><a href="https://github.com/praktimarc/kst4contest/actions">Nightly-Builds und automatisierte Builds</a></li>
|
||||||
|
<li><a href="/manual/de/changelog/">Versionsgeschichte</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>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.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="schnellnavigation" tabindex="-1"><a class="header-anchor" href="#schnellnavigation">Schnellnavigation</a></h2>
|
<h2 id="schnellnavigation" tabindex="-1"><a class="header-anchor" href="#schnellnavigation">Schnellnavigation</a></h2>
|
||||||
<table>
|
<table>
|
||||||
@@ -86,68 +132,67 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/installation/">Installation</a></td>
|
<td><a href="/manual/de/installation/">Installation</a></td>
|
||||||
<td>Download, Java-Voraussetzungen, Update</td>
|
<td>ON4KST-Account, Download, Installation und Updates</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/konfiguration/">Konfiguration</a></td>
|
<td><a href="/manual/de/konfiguration/">Konfiguration</a></td>
|
||||||
<td>Alle Einstellungen im Detail</td>
|
<td>Login, Station, Bänder, Benutzeroberfläche und externe Schnittstellen</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/log-synchronisation/">Log-Synchronisation</a></td>
|
<td><a href="/manual/de/log-synchronisation/">Log-Synchronisation</a></td>
|
||||||
<td>UCXLog, N1MM+, QARTest, <a href="http://DXLog.net">DXLog.net</a>, WinTest</td>
|
<td>Simplelogfile, UCXLog, N1MM+, QARTest, <a href="http://DXLog.net">DXLog.net</a> und Win-Test</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/airscout-integration/">AirScout-Integration</a></td>
|
<td><a href="/manual/de/airscout-integration/">AirScout-Integration</a></td>
|
||||||
<td>Flugzeug-Scatter-Erkennung</td>
|
<td>Verbindung zu AirScout und Auswertung von Aircraft-Scatter-Zeiten</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/dx-cluster-server/">DX-Cluster-Server</a></td>
|
<td><a href="/manual/de/dx-cluster-server/">DX-Cluster-Server</a></td>
|
||||||
<td>Integrierter DX-Cluster für das Log-Programm</td>
|
<td>Übergabe erkannter Möglichkeiten an das Logprogramm</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/funktionen/">Funktionen</a></td>
|
<td><a href="/manual/de/funktionen/">Funktionen</a></td>
|
||||||
<td>Alle Features im Überblick</td>
|
<td>Arbeitsweise, Herleitung und Grenzen der einzelnen Funktionen</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/makros-und-variablen/">Makros und Variablen</a></td>
|
<td><a href="/manual/de/makros-und-variablen/">Makros und Variablen</a></td>
|
||||||
<td>Text-Snippets, Shortcuts, Variablen</td>
|
<td>Wiederverwendbare Texte, Shortcuts und automatisch ersetzte Werte</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/benutzeroberflaeche/">Benutzeroberfläche</a></td>
|
<td><a href="/manual/de/benutzeroberflaeche/">Benutzeroberfläche</a></td>
|
||||||
<td>UI-Erklärung und Bedienung</td>
|
<td>Aufbau der Oberfläche und Bedienung im Contest</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/de/changelog/">Changelog</a></td>
|
<td><a href="/manual/de/changelog/">Changelog</a></td>
|
||||||
<td>Versionsgeschichte</td>
|
<td>Releases, Nightly-Änderungen und behobene Fehler</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="was-ist-kst4contest%3F" tabindex="-1"><a class="header-anchor" href="#was-ist-kst4contest%3F">Was ist KST4Contest?</a></h2>
|
<h2 id="kontakt-und-support" tabindex="-1"><a class="header-anchor" href="#kontakt-und-support">Kontakt und Support</a></h2>
|
||||||
<p>Der ON4KST-Chat ist der De-facto-Standard für Skeds auf den 144-MHz-und-höher-Bändern. KST4Contest erweitert die Chat-Nutzung um contest-spezifische Funktionen:</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Worked-Markierung</strong>: Bereits gearbeitete Stationen werden farblich markiert, direkt aus dem Logprogramm via UDP synchronisiert.</li>
|
<li><strong>Download:</strong> <a href="https://github.com/praktimarc/kst4contest/releases/latest">Aktuelle stabile Version</a></li>
|
||||||
<li><strong>Sked-Richtungs-Erkennung</strong>: Wenn eine Station eine andere aus deiner Richtung anruft, wird sie grün und fett hervorgehoben.</li>
|
<li><strong>Quellcode:</strong> <a href="https://github.com/praktimarc/kst4contest">praktimarc/kst4contest</a></li>
|
||||||
<li><strong>QRG-Erkennung</strong>: KST4Contest liest Frequenzen automatisch aus dem Chat-Verkehr und zeigt sie in der Benutzerliste an.</li>
|
<li><strong>Fehler und Funktionswünsche:</strong> <a href="https://github.com/praktimarc/kst4contest/issues">GitHub Issues</a></li>
|
||||||
<li><strong>AirScout-Interface</strong>: Anzeige reflektierbarer Flugzeuge direkt in der Benutzerliste.</li>
|
<li><strong>E-Mail:</strong> <a href="mailto:praktimarc+kst4contest@gmail.com">praktimarc+kst4contest@gmail.com</a><br>
|
||||||
<li><strong>Integrierter DX-Cluster-Server</strong>: Spots werden direkt an das Logprogramm gesendet.</li>
|
Bitte nur für Themen verwenden, die KST4Contest betreffen.</li>
|
||||||
<li><strong>Dark Mode</strong> (ab v1.26): Schont die Augen in der Nacht.</li>
|
|
||||||
<li><strong>Multi-Channel-Login</strong> (ab v1.26): Gleichzeitig in zwei Chat-Kategorien einloggen.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<hr>
|
<h3 id="einen-fehler-melden" tabindex="-1"><a class="header-anchor" href="#einen-fehler-melden">Einen Fehler melden</a></h3>
|
||||||
<h2 id="kontakt-%26-support" tabindex="-1"><a class="header-anchor" href="#kontakt-%26-support">Kontakt & Support</a></h2>
|
<p>Ein Fehler lässt sich wesentlich schneller nachvollziehen, wenn die Meldung mindestens folgende Angaben enthält:</p>
|
||||||
<ul>
|
<ol>
|
||||||
<li><strong>E-Mail</strong>: <a href="mailto:praktimarc+kst4contest@gmail.com">praktimarc+kst4contest@gmail.com</a> <em>(nur für kst4contest-Themen)</em></li>
|
<li>verwendete KST4Contest-Version,</li>
|
||||||
<li><strong>GitHub</strong>: <a href="https://github.com/praktimarc/kst4contest">https://github.com/praktimarc/kst4contest</a></li>
|
<li>Betriebssystem und Installationsart,</li>
|
||||||
<li><strong>Download</strong>: <a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></li>
|
<li>genaue Schritte bis zum Fehler,</li>
|
||||||
</ul>
|
<li>erwartetes und tatsächlich beobachtetes Verhalten,</li>
|
||||||
<h3 id="fehler-melden-(issue-erstellen)" tabindex="-1"><a class="header-anchor" href="#fehler-melden-(issue-erstellen)">Fehler melden (Issue erstellen)</a></h3>
|
<li>gegebenenfalls einen Screenshot,</li>
|
||||||
<p>Beim Melden eines Fehlers bitte <strong>immer die Logdatei anhängen</strong>. KST4Contest schreibt automatisch eine Fehler-Logdatei (nur Fehlermeldungen, keine persönlichen Daten):</p>
|
<li>die Fehler-Logdatei.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Die Fehler-Logdatei wird hier gespeichert:</p>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Betriebssystem</th>
|
<th>Betriebssystem</th>
|
||||||
<th>Pfad zur Logdatei</th>
|
<th>Pfad</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -161,10 +206,12 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Beim Erstellen eines Issues auf GitHub steht eine Vorlage bereit, die alle wichtigen Felder abfragt.</p>
|
<p>Vor dem Hochladen sollte die Datei kurz geprüft werden. Ein Fehlerprotokoll enthält überwiegend technische Informationen, kann abhängig vom Fehler aber beispielsweise lokale Dateipfade oder weitere Kontextdaten enthalten.</p>
|
||||||
|
<p>In Datei- und Verzeichnisnamen wird teilweise noch der technische Name <code>praktiKST</code> verwendet. Gemeint ist dasselbe Programm.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="danksagungen" tabindex="-1"><a class="header-anchor" href="#danksagungen">Danksagungen</a></h2>
|
<h2 id="danksagungen" tabindex="-1"><a class="header-anchor" href="#danksagungen">Danksagungen</a></h2>
|
||||||
<p>Besonderer Dank gilt: Gianluca Costantino (IU3OAR), Alessandro Murador (IZ3VTH), Reczetár István (HA1FV), OM0AAO (Viliam Petrik, DX-Cluster-Idee), DC9DJ (Konrad Neitzel, Projektstruktur), DO5ALF (Andreas, Webmaster <a href="http://funkerportal.de">funkerportal.de</a>), PE0WGA (Franz van Velzen, Tester) sowie allen weiteren Testern und Ideengebern.</p>
|
<p>KST4Contest wurde durch Rückmeldungen aus dem praktischen Contest-Betrieb wesentlich verbessert.</p>
|
||||||
|
<p>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 <a href="http://funkerportal.de">funkerportal.de</a>), Franz van Velzen (PE0WGA, Tester), DN9APW als neuem Entwickler im Team und Master über die CI/CD pipelines sowie allen weiteren Testern und Ideengebern.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section></main>
|
</section></main>
|
||||||
@@ -173,7 +220,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Deutsches Benutzerhandbuch für KST4Contest.">
|
<meta name="twitter:description" content="Deutsches Benutzerhandbuch für KST4Contest.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -74,71 +74,91 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/de/airscout-integration/">AirScout Integration</a></h3>
|
<h3><a href="/manual/de/home/">KST4Contest – Handbuch</a></h3>
|
||||||
<p>Handbuchseite „AirScout Integration“ öffnen.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<p>KST4Contest ist ein Desktop-Client für den ON4KST-Chat, 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 und die Anbindung an weitere Programme in einer gemeinsamen Arbeitsoberfläche.</p>
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/de/benutzeroberflaeche/">Benutzeroberflaeche</a></h3>
|
|
||||||
<p>Handbuchseite „Benutzeroberflaeche“ öffnen.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/de/changelog/">Changelog</a></h3>
|
|
||||||
<p>Handbuchseite „Changelog“ öffnen.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/de/dx-cluster-server/">DX Cluster Server</a></h3>
|
|
||||||
<p>Handbuchseite „DX Cluster Server“ öffnen.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/de/funktionen/">Funktionen</a></h3>
|
|
||||||
<p>Handbuchseite „Funktionen“ öffnen.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/de/home/">Home</a></h3>
|
|
||||||
<p>Handbuchseite „Home“ öffnen.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/de/installation/">Installation</a></h3>
|
<h3><a href="/manual/de/installation/">Installation</a></h3>
|
||||||
<p>Handbuchseite „Installation“ öffnen.</p>
|
|
||||||
|
<p>KST4Contest wird für Windows, Linux und macOS als fertiges Programmpaket bereitgestellt. Für die offiziellen Release-Pakete muss Java nicht separat installiert werden: Die benötigte Java-Laufzeitumgebung ist bereits enthalten.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/de/konfiguration/">Konfiguration</a></h3>
|
<h3><a href="/manual/de/konfiguration/">Konfiguration</a></h3>
|
||||||
<p>Handbuchseite „Konfiguration“ öffnen.</p>
|
|
||||||
|
<p>Nach dem ersten Start öffnet sich das Einstellungsfenster – dieses ist der zentrale Ausgangspunkt für alle Konfigurationen. Es empfiehlt sich, das Einstellungsfenster während des Betriebs geöffnet zu lassen (z. B. um den Beacon schnell ein- und auszuschalten).</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/de/log-synchronisation/">Log Synchronisation</a></h3>
|
<h3><a href="/manual/de/log-synchronisation/">Log-Synchronisation</a></h3>
|
||||||
<p>Handbuchseite „Log Synchronisation“ öffnen.</p>
|
|
||||||
|
<p>KST4Contest markiert gearbeitete Stationen automatisch in der Chat-Benutzerliste. Dafür gibt es zwei grundlegende Methoden:</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/de/airscout-integration/">AirScout-Integration</a></h3>
|
||||||
|
|
||||||
|
<p>AirScout (von DL2ALF) ist ein Programm zur Erkennung von Flugzeugen für den Aircraft-Scatter-Betrieb. KST4Contest ist eng mit AirScout integriert und zeigt reflektierbare Flugzeuge direkt in der Benutzerliste an.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/de/dx-cluster-server/">Integrierter DX-Cluster-Server</a></h3>
|
||||||
|
|
||||||
|
<p>Ab Version 1.23 enthält KST4Contest einen integrierten DX-Cluster-Server. Dieser sendet Spots direkt an das Logprogramm, wenn eine Richtungs-Warnung ausgelöst wird.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/de/funktionen/">Funktionen</a></h3>
|
||||||
|
|
||||||
|
<p>Übersicht aller Hauptfunktionen von KST4Contest.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/de/makros-und-variablen/">Makros und Variablen</a></h3>
|
<h3><a href="/manual/de/makros-und-variablen/">Makros und Variablen</a></h3>
|
||||||
<p>Handbuchseite „Makros und Variablen“ öffnen.</p>
|
|
||||||
|
<p>KST4Contest bietet ein flexibles System aus Text-Snippets, Shortcuts und eingebauten Variablen, die den Chat-Workflow im Contest erheblich beschleunigen.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/de/benutzeroberflaeche/">Benutzeroberfläche</a></h3>
|
||||||
|
|
||||||
|
<p>Das Hauptfenster besteht aus mehreren Bereichen:</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/de/changelog/">Changelog</a></h3>
|
||||||
|
|
||||||
|
<p>Versionsverlauf von KST4Contest / PraktiKST.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -169,7 +189,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -72,229 +72,400 @@
|
|||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 <a href="/manual/en/installation/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
<p>🇬🇧 <a href="/manual/en/installation/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
<p>KST4Contest wird für Windows, Linux und macOS als fertiges Programmpaket bereitgestellt. Für die offiziellen Release-Pakete muss Java nicht separat installiert werden: Die benötigte Java-Laufzeitumgebung ist bereits enthalten.</p>
|
||||||
|
<p>Benötigt werden damit im Wesentlichen ein unterstütztes Betriebssystem, eine Internetverbindung und ein ON4KST-Account. Das klingt zunächst überschaubar – und ist es normalerweise auch.</p>
|
||||||
<h2 id="voraussetzungen" tabindex="-1"><a class="header-anchor" href="#voraussetzungen">Voraussetzungen</a></h2>
|
<h2 id="voraussetzungen" tabindex="-1"><a class="header-anchor" href="#voraussetzungen">Voraussetzungen</a></h2>
|
||||||
<p>Es wird eine Mindestauflösung von 1200px mal 720px empfohlen</p>
|
|
||||||
<h3 id="on4kst-account" tabindex="-1"><a class="header-anchor" href="#on4kst-account">ON4KST-Account</a></h3>
|
<h3 id="on4kst-account" tabindex="-1"><a class="header-anchor" href="#on4kst-account">ON4KST-Account</a></h3>
|
||||||
<p>Um den Chat zu nutzen, ist ein registrierter Account beim ON4KST-Chat-Dienst erforderlich:</p>
|
<p>KST4Contest ist ein eigenständiger Client für den ON4KST-Chat, ersetzt aber nicht den dazugehörigen Benutzeraccount.</p>
|
||||||
|
<p>Falls noch kein Account vorhanden ist, kann er über die offizielle ON4KST-Seite angelegt werden:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Registrierung unter: <a href="http://www.on4kst.info/chat/register.php">http://www.on4kst.info/chat/register.php</a></li>
|
<li><a href="https://www.on4kst.org/chat/login.php">ON4KST-Anmeldung und Registrierung</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3 id="verhaltensregeln-im-chat" tabindex="-1"><a class="header-anchor" href="#verhaltensregeln-im-chat">Verhaltensregeln im Chat</a></h3>
|
<p>ON4KST gibt Englisch als gemeinsame Sprache im Chat vor. Das gilt auch dann, wenn beide beteiligten Stationen dieselbe Muttersprache sprechen. Im Contestbetrieb werden häufig die üblichen Amateurfunk-Abkürzungen wie <code>pse</code>, <code>agn</code>, <code>qrg</code>, <code>dir</code>, <code>rrr</code>, <code>tnx</code> oder <code>73</code> verwendet.</p>
|
||||||
<p>Die offizielle Sprache im ON4KST-Chat ist <strong>Englisch</strong>. Auch bei Kommunikation mit Stationen aus dem eigenen Land bitte Englisch verwenden. Übliche HAM-Abkürzungen (agn, dir, pse, rrr, tnx, 73 …) sind gang und gäbe.</p>
|
<p>Die eigentliche Bedienung des Chats und das Senden persönlicher Nachrichten werden im Kapitel zur Benutzeroberfläche beschrieben. Für die Installation ist zunächst nur wichtig, dass der Account funktioniert.</p>
|
||||||
<h3 id="pers%C3%B6nliche-nachrichten" tabindex="-1"><a class="header-anchor" href="#pers%C3%B6nliche-nachrichten">Persönliche Nachrichten</a></h3>
|
<h3 id="bildschirmgr%C3%B6%C3%9Fe" tabindex="-1"><a class="header-anchor" href="#bildschirmgr%C3%B6%C3%9Fe">Bildschirmgröße</a></h3>
|
||||||
<p>Um eine Privatnachricht an eine andere Station zu senden, immer folgendes Format verwenden:</p>
|
<p>Eine nutzbare Bildschirmfläche von ungefähr <strong>1200 × 720 Pixeln</strong> oder mehr wird empfohlen.</p>
|
||||||
<pre><code>/CQ RUFZEICHEN Nachrichtentext
|
<p>KST4Contest passt das Hauptfenster automatisch an die verfügbare Fläche des primären Bildschirms an. Das Programm kann deshalb auch auf kleineren Bildschirmen gestartet werden. Weniger Platz bleibt allerdings weniger Platz: In diesem Fall können nicht alle Tabellen, Filter und Zusatzinformationen gleichzeitig in sinnvoller Größe dargestellt werden.</p>
|
||||||
</code></pre>
|
<h3 id="java" tabindex="-1"><a class="header-anchor" href="#java">Java</a></h3>
|
||||||
<p>Beispiel: <code>/CQ DL5ASG pse sked 144.205?</code></p>
|
<p>Für die fertigen Pakete aus den <a href="https://github.com/praktimarc/kst4contest/releases/latest">GitHub Releases</a> ist keine separate Java-Installation erforderlich. Die benötigte Laufzeitumgebung wird zusammen mit KST4Contest ausgeliefert.</p>
|
||||||
<p>Bei starkem Chat-Verkehr (5–6 Nachrichten pro Sekunde im Contest) gehen öffentliche Nachrichten, die an ein bestimmtes Rufzeichen gerichtet sind, leicht unter. KST4Contest fängt solche Nachrichten aber auch dann ab, wenn sie fälschlicherweise öffentlich gepostet werden (siehe <a href="Funktionen#catching-personal-messages">Funktionen – PM-Abfang</a>).</p>
|
<p>Eine Java-Entwicklungsumgebung wird nur benötigt, wenn KST4Contest selbst aus dem Quellcode gebaut werden soll. Bei den AUR-Paketen <code>kst4contest</code> und <code>kst4contest-git</code> werden Java 21 und Maven als Build-Abhängigkeiten durch den Paketmanager berücksichtigt.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="download" tabindex="-1"><a class="header-anchor" href="#download">Download</a></h2>
|
<h2 id="stable%2C-beta-oder-nightly%3F" tabindex="-1"><a class="header-anchor" href="#stable%2C-beta-oder-nightly%3F">Stable, Beta oder Nightly?</a></h2>
|
||||||
<h3 id="windows" tabindex="-1"><a class="header-anchor" href="#windows">Windows</a></h3>
|
<p>KST4Contest wird in drei Entwicklungsständen bereitgestellt:</p>
|
||||||
<p>Die aktuelle Version kann als ZIP-Datei heruntergeladen werden:</p>
|
|
||||||
<p><strong><a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></strong></p>
|
|
||||||
<p>Der Dateiname hat das Format <code>praktiKST-v<Versionsnummer>-windows-x64.zip </code>.</p>
|
|
||||||
<h3 id="linux" tabindex="-1"><a class="header-anchor" href="#linux">Linux</a></h3>
|
|
||||||
<p>Mehrere Paketformate stehen auf der Releases-Seite zur Verfügung:</p>
|
|
||||||
<p><strong><a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></strong></p>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Format</th>
|
|
||||||
<th>Dateiname</th>
|
|
||||||
<th>Geeignet für</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>AppImage</td>
|
|
||||||
<td><code>KST4Contest-v<Version>-linux-x86_64.AppImage</code></td>
|
|
||||||
<td>Alle Distributionen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Debian-Paket</td>
|
|
||||||
<td><code>KST4Contest-v<Version>-debian-amd64.deb</code></td>
|
|
||||||
<td>Debian, Ubuntu, Linux Mint, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>RPM-Paket</td>
|
|
||||||
<td><code>KST4Contest-v<Version>-fedora-x86_64.rpm</code></td>
|
|
||||||
<td>Fedora, RHEL, openSUSE, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Arch-Paket</td>
|
|
||||||
<td><code>KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst</code></td>
|
|
||||||
<td>Arch Linux, Manjaro, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>AUR</td>
|
|
||||||
<td><code>kst4contest-bin</code> / <code>kst4contest</code> / <code>kst4contest-git</code></td>
|
|
||||||
<td>Arch Linux, Manjaro, EndeavourOS, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Flatpak</td>
|
|
||||||
<td><code>de.x08.KST4Contest.flatpakref</code></td>
|
|
||||||
<td>Alle Distributionen mit Flatpak</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<blockquote>
|
|
||||||
<p><strong>Empfehlung für Linux:</strong> Die Flatpak-Installation ist der einfachste Weg, immer aktuell zu bleiben – <code>flatpak update</code> erledigt alle zukünftigen Updates automatisch. Das Repository ist GPG-signiert.</p>
|
|
||||||
</blockquote>
|
|
||||||
<h3 id="macos" tabindex="-1"><a class="header-anchor" href="#macos">macOS</a></h3>
|
|
||||||
<blockquote>
|
|
||||||
<p>⚠️ <strong>Best-Effort-Support:</strong> macOS-Builds werden als zusätzliche Option bereitgestellt, sind aber <strong>nicht umfassend getestet</strong>. Wir bauen und veröffentlichen macOS-Binaries mit jedem Release, können allerdings nicht alle Szenarien unter macOS testen. Bei Problemen freuen wir uns über eine Rückmeldung – wir versuchen unser Bestes, können aber nicht den gleichen Support-Umfang wie für Windows und Linux garantieren.</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>Die aktuelle Version kann als DMG-Disk-Image heruntergeladen werden (für Apple-Silicon- und Intel-Macs verfügbar):</p>
|
|
||||||
<p><strong><a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></strong></p>
|
|
||||||
<p>Der Dateiname hat das Format <code>KST4Contest-v<Versionsnummer>-macos-<Architektur>.dmg</code>, wobei <code><Architektur></code> entweder <code>arm64</code> (Apple Silicon) oder <code>x86_64</code> (Intel) ist.</p>
|
|
||||||
<hr>
|
|
||||||
<h2 id="installation-1" tabindex="-1"><a class="header-anchor" href="#installation-1">Installation</a></h2>
|
|
||||||
<h3 id="windows-1" tabindex="-1"><a class="header-anchor" href="#windows-1">Windows</a></h3>
|
|
||||||
<ol>
|
|
||||||
<li>ZIP-Datei herunterladen.</li>
|
|
||||||
<li>ZIP-Datei in einen gewünschten Ordner entpacken.</li>
|
|
||||||
<li><code>praktiKST.exe</code> ausführen.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Die Einstellungen werden unter <code>%USERPROFILE%\.praktikst\preferences.xml</code> gespeichert.</p>
|
|
||||||
<h3 id="linux-1" tabindex="-1"><a class="header-anchor" href="#linux-1">Linux</a></h3>
|
|
||||||
<p>Die Einstellungen werden immer unter <code>~/.praktikst/preferences.xml</code> gespeichert.</p>
|
|
||||||
<h4 id="appimage" tabindex="-1"><a class="header-anchor" href="#appimage">AppImage</a></h4>
|
|
||||||
<ol>
|
|
||||||
<li>AppImage herunterladen.</li>
|
|
||||||
<li>Ausführbar machen: <code>chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage</code></li>
|
|
||||||
<li>Starten.</li>
|
|
||||||
</ol>
|
|
||||||
<h4 id="debian-%2F-ubuntu" tabindex="-1"><a class="header-anchor" href="#debian-%2F-ubuntu">Debian / Ubuntu</a></h4>
|
|
||||||
<pre><code class="language-bash">sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
|
||||||
</code></pre>
|
|
||||||
<p>Oder die <code>.deb</code>-Datei im Dateimanager doppelklicken.</p>
|
|
||||||
<h4 id="fedora-%2F-rhel" tabindex="-1"><a class="header-anchor" href="#fedora-%2F-rhel">Fedora / RHEL</a></h4>
|
|
||||||
<pre><code class="language-bash">sudo dnf install ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
|
||||||
</code></pre>
|
|
||||||
<h4 id="arch-linux" tabindex="-1"><a class="header-anchor" href="#arch-linux">Arch Linux</a></h4>
|
|
||||||
<p><strong>Über den AUR (empfohlen)</strong> — Updates laufen automatisch mit dem System:</p>
|
|
||||||
<pre><code class="language-bash">yay -S kst4contest-bin # vorgefertigtes Binary, schnellste Installation
|
|
||||||
# oder
|
|
||||||
yay -S kst4contest # aus dem Quellcode bauen
|
|
||||||
# oder
|
|
||||||
yay -S kst4contest-git # immer aktueller git-Stand (1.42+)
|
|
||||||
</code></pre>
|
|
||||||
<p>Jeder AUR-Helper funktioniert (<code>paru</code>, <code>trizen</code> usw.). <code>kst4contest-bin</code> ist die einfachste Option — es installiert dasselbe vorgefertigte Binary wie der Release-Download.</p>
|
|
||||||
<p>Oder das Release-Paket manuell installieren:</p>
|
|
||||||
<pre><code class="language-bash">sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
|
||||||
</code></pre>
|
|
||||||
<h4 id="flatpak" tabindex="-1"><a class="header-anchor" href="#flatpak">Flatpak</a></h4>
|
|
||||||
<p>Die Datei <code>de.x08.KST4Contest.flatpakref</code> aus dem <a href="https://github.com/praktimarc/kst4contest/releases/latest">aktuellen Release</a> herunterladen und öffnen, oder:</p>
|
|
||||||
<pre><code class="language-bash">flatpak install de.x08.KST4Contest.flatpakref
|
|
||||||
</code></pre>
|
|
||||||
<p>Oder den Remote manuell hinzufügen (empfohlen für Nightly/Beta-Zugriff):</p>
|
|
||||||
<pre><code class="language-bash">flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
|
||||||
</code></pre>
|
|
||||||
<h4 id="flatpak-kan%C3%A4le-(nightly-%2F-beta-%2F-stable)" tabindex="-1"><a class="header-anchor" href="#flatpak-kan%C3%A4le-(nightly-%2F-beta-%2F-stable)">Flatpak-Kanäle (nightly / beta / stable)</a></h4>
|
|
||||||
<p>Das Flatpak-Repository enthält drei Kanäle, die alle im selben Remote liegen:</p>
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Kanal</th>
|
<th>Kanal</th>
|
||||||
<th>Inhalt</th>
|
<th>Geeignet für</th>
|
||||||
<th>Wird gebaut bei</th>
|
<th>Einordnung</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>stable</code></td>
|
<td><strong>Stable</strong></td>
|
||||||
<td>Aktuelle stabile Version</td>
|
<td>Normaler Contestbetrieb</td>
|
||||||
<td>Jedem normalen Release-Tag</td>
|
<td>Veröffentlichte und für den regulären Einsatz vorgesehene Version</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>beta</code></td>
|
<td><strong>Beta</strong></td>
|
||||||
<td>Vorab-Version</td>
|
<td>Gezielte Tests vor einem Stable-Release</td>
|
||||||
<td>Tags mit <code>beta-</code> Präfix</td>
|
<td>Vorabversion mit weitgehend festgelegtem Funktionsumfang</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>nightly</code></td>
|
<td><strong>Nightly</strong></td>
|
||||||
<td>Entwicklungsstand (main-Branch)</td>
|
<td>Frühe Tests neuer Funktionen</td>
|
||||||
<td>Täglich / jedem Push auf main</td>
|
<td>Aktueller Entwicklungsstand aus dem <code>main</code>-Branch</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Remote einmalig hinzufügen, dann den gewünschten Kanal installieren:</p>
|
<p>Für den normalen Einsatz wird die <strong>Stable-Version</strong> empfohlen.</p>
|
||||||
<pre><code class="language-bash">flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
<p>Beta- und Nightly-Versionen können Funktionen enthalten, die im Stable-Release noch nicht verfügbar sind. Sie können aber ebenso unfertige Bedienabläufe, geänderte Einstellungen oder neue Fehler enthalten. Das ist kein ungewöhnlicher Defekt im Veröffentlichungsverfahren, sondern der Zweck eines Entwicklungskanals.</p>
|
||||||
|
<p>Wenn in diesem Manual eine Funktion ausdrücklich mit <strong>Nightly</strong> gekennzeichnet ist, gehört sie noch nicht zwingend zum aktuellen Stable-Release.</p>
|
||||||
# Stable (Standard)
|
<hr>
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
<h2 id="download" tabindex="-1"><a class="header-anchor" href="#download">Download</a></h2>
|
||||||
|
<p>Die aktuelle Stable-Version ist hier verfügbar:</p>
|
||||||
# Beta
|
<ul>
|
||||||
flatpak install kst4contest de.x08.KST4Contest//beta
|
<li><a href="https://github.com/praktimarc/kst4contest/releases/latest">Aktuelles KST4Contest-Release</a></li>
|
||||||
|
<li><a href="https://github.com/praktimarc/kst4contest/releases">Alle veröffentlichten Versionen</a></li>
|
||||||
# Nightly
|
</ul>
|
||||||
|
<p>Die Release-Seite enthält die Programmpakete sowie die deutschen und englischen PDF-Handbücher.</p>
|
||||||
|
<h3 id="welches-paket-wird-ben%C3%B6tigt%3F" tabindex="-1"><a class="header-anchor" href="#welches-paket-wird-ben%C3%B6tigt%3F">Welches Paket wird benötigt?</a></h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Betriebssystem</th>
|
||||||
|
<th>Paket</th>
|
||||||
|
<th>Typischer Dateiname</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Windows x64</td>
|
||||||
|
<td>ZIP-Paket</td>
|
||||||
|
<td><code>praktiKST-v<Version>-windows-x64.zip</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Linux x86_64</td>
|
||||||
|
<td>AppImage</td>
|
||||||
|
<td><code>KST4Contest-v<Version>-linux-x86_64.AppImage</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Debian/Ubuntu amd64</td>
|
||||||
|
<td>DEB-Paket</td>
|
||||||
|
<td><code>KST4Contest-v<Version>-debian-amd64.deb</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Fedora/RPM x86_64</td>
|
||||||
|
<td>RPM-Paket</td>
|
||||||
|
<td><code>KST4Contest-v<Version>-fedora-x86_64.rpm</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Arch Linux x86_64</td>
|
||||||
|
<td>Arch-Paket</td>
|
||||||
|
<td><code>KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Linux mit Flatpak</td>
|
||||||
|
<td>Flatpak-Referenz</td>
|
||||||
|
<td><code>de.x08.KST4Contest.flatpakref</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>macOS Apple Silicon</td>
|
||||||
|
<td>DMG für ARM64</td>
|
||||||
|
<td><code>KST4Contest-v<Version>-macos-arm64.dmg</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>macOS Intel</td>
|
||||||
|
<td>DMG für x86_64</td>
|
||||||
|
<td><code>KST4Contest-v<Version>-macos-x86_64.dmg</code></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>Lade Programmpakete nur aus den offiziellen GitHub Releases, dem KST4Contest-Flatpak-Repository oder den verlinkten AUR-Paketen herunter. Dateien aus anderen Quellen können anders gebaut, veraltet oder verändert worden sein.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="installation-unter-windows" tabindex="-1"><a class="header-anchor" href="#installation-unter-windows">Installation unter Windows</a></h2>
|
||||||
|
<p>KST4Contest wird unter Windows als ZIP-Paket bereitgestellt. Ein klassischer Installer ist nicht erforderlich.</p>
|
||||||
|
<ol>
|
||||||
|
<li>Lade <code>praktiKST-v<Version>-windows-x64.zip</code> aus dem aktuellen Release herunter.</li>
|
||||||
|
<li>Entpacke die ZIP-Datei vollständig in einen eigenen Ordner.</li>
|
||||||
|
<li>Öffne den entpackten Ordner.</li>
|
||||||
|
<li>Starte <code>praktiKST.exe</code>.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Starte das Programm nicht direkt aus der noch komprimierten ZIP-Datei. KST4Contest besteht aus mehreren Dateien und einer mitgelieferten Laufzeitumgebung. Windows kann diese Struktur nur zuverlässig verwenden, wenn das Archiv vorher vollständig entpackt wurde.</p>
|
||||||
|
<p>Die Programmeinstellungen befinden sich nicht im entpackten Programmordner, sondern im Benutzerverzeichnis:</p>
|
||||||
|
<pre><code class="language-text">%USERPROFILE%\.praktiKST\preferences.xml
|
||||||
|
</code></pre>
|
||||||
|
<p>Dadurch können neue Programmversionen in einen anderen Ordner entpackt werden, ohne dass die vorhandenen Einstellungen verloren gehen.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="installation-unter-linux" tabindex="-1"><a class="header-anchor" href="#installation-unter-linux">Installation unter Linux</a></h2>
|
||||||
|
<p>Unter Linux stehen mehrere Paketformate zur Verfügung. Welches davon sinnvoll ist, hängt weniger von KST4Contest als von der verwendeten Distribution und der gewünschten Update-Methode ab.</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Installationsart</th>
|
||||||
|
<th>Sinnvoll, wenn …</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><strong>Flatpak</strong></td>
|
||||||
|
<td>Updates zentral verwaltet werden sollen und Flatpak bereits verwendet wird</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>AppImage</strong></td>
|
||||||
|
<td>KST4Contest ohne Installation als einzelne portable Datei gestartet werden soll</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>DEB/RPM</strong></td>
|
||||||
|
<td>die Paketverwaltung der Distribution verwendet werden soll</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>Arch-Paket/AUR</strong></td>
|
||||||
|
<td>Arch Linux, Manjaro oder EndeavourOS eingesetzt wird</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<h3 id="flatpak" tabindex="-1"><a class="header-anchor" href="#flatpak">Flatpak</a></h3>
|
||||||
|
<p>Flatpak ist für die meisten Linux-Anwender der einfachste Weg, KST4Contest installiert und aktualisierbar zu halten. Das KST4Contest-Repository ist GPG-signiert und enthält die Kanäle Stable, Beta und Nightly.</p>
|
||||||
|
<h4 id="stable-%C3%BCber-die-release-datei-installieren" tabindex="-1"><a class="header-anchor" href="#stable-%C3%BCber-die-release-datei-installieren">Stable über die Release-Datei installieren</a></h4>
|
||||||
|
<p>Lade <code>de.x08.KST4Contest.flatpakref</code> aus dem aktuellen Release herunter und öffne die Datei mit der Softwareverwaltung der verwendeten Desktop-Umgebung.</p>
|
||||||
|
<p>Alternativ kann sie im Terminal installiert werden:</p>
|
||||||
|
<pre><code class="language-bash">flatpak install ./de.x08.KST4Contest.flatpakref
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="kst4contest-repository-hinzuf%C3%BCgen" tabindex="-1"><a class="header-anchor" href="#kst4contest-repository-hinzuf%C3%BCgen">KST4Contest-Repository hinzufügen</a></h4>
|
||||||
|
<p>Das Repository muss nur einmal hinzugefügt werden:</p>
|
||||||
|
<pre><code class="language-bash">flatpak remote-add --if-not-exists kst4contest \
|
||||||
|
https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
||||||
|
</code></pre>
|
||||||
|
<p>Anschließend kann die Stable-Version installiert werden:</p>
|
||||||
|
<pre><code class="language-bash">flatpak install kst4contest de.x08.KST4Contest//stable
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="beta-installieren" tabindex="-1"><a class="header-anchor" href="#beta-installieren">Beta installieren</a></h4>
|
||||||
|
<pre><code class="language-bash">flatpak install kst4contest de.x08.KST4Contest//beta
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="nightly-installieren" tabindex="-1"><a class="header-anchor" href="#nightly-installieren">Nightly installieren</a></h4>
|
||||||
|
<pre><code class="language-bash">flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
|
</code></pre>
|
||||||
|
<p>KST4Contest verwendet für alle drei Kanäle dieselbe App-ID. Eine parallele Installation mehrerer KST4Contest-Kanäle ist deshalb nicht vorgesehen.</p>
|
||||||
|
<p>Zum Wechsel von Stable auf Nightly beispielsweise:</p>
|
||||||
|
<pre><code class="language-bash">flatpak uninstall de.x08.KST4Contest//stable
|
||||||
flatpak install kst4contest de.x08.KST4Contest//nightly
|
flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
<p>Die persönlichen Einstellungen im Verzeichnis <code>~/.praktiKST</code> werden dabei nicht automatisch gelöscht.</p>
|
||||||
|
<p>Installierte Flatpak-Anwendungen können mit folgendem Befehl aktualisiert werden:</p>
|
||||||
|
<pre><code class="language-bash">flatpak update de.x08.KST4Contest
|
||||||
|
</code></pre>
|
||||||
|
<p>Je nach Desktop-Umgebung kann die grafische Softwareverwaltung verfügbare Flatpak-Updates ebenfalls anzeigen oder automatisch installieren. Der Befehl <code>flatpak update</code> selbst führt das Update aus; er verspricht nicht, irgendwann von allein vorbeizukommen.</p>
|
||||||
|
<h3 id="appimage" tabindex="-1"><a class="header-anchor" href="#appimage">AppImage</a></h3>
|
||||||
|
<p>Das AppImage benötigt keine klassische Installation.</p>
|
||||||
|
<ol>
|
||||||
|
<li>Lade <code>KST4Contest-v<Version>-linux-x86_64.AppImage</code> herunter.</li>
|
||||||
|
<li>Öffne ein Terminal im Download-Verzeichnis.</li>
|
||||||
|
<li>Mache die Datei ausführbar:</li>
|
||||||
|
</ol>
|
||||||
|
<pre><code class="language-bash">chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage
|
||||||
|
</code></pre>
|
||||||
|
<ol start="4">
|
||||||
|
<li>Starte KST4Contest:</li>
|
||||||
|
</ol>
|
||||||
|
<pre><code class="language-bash">./KST4Contest-v<Version>-linux-x86_64.AppImage
|
||||||
|
</code></pre>
|
||||||
|
<p>Das AppImage kann anschließend an einen anderen Ort verschoben werden, beispielsweise nach <code>~/Applications</code>.</p>
|
||||||
|
<h3 id="debian-und-ubuntu" tabindex="-1"><a class="header-anchor" href="#debian-und-ubuntu">Debian und Ubuntu</a></h3>
|
||||||
|
<p>Installiere das DEB-Paket mit:</p>
|
||||||
|
<pre><code class="language-bash">sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
||||||
|
</code></pre>
|
||||||
|
<p>Alternativ kann die Datei in einer grafischen Paketverwaltung geöffnet werden.</p>
|
||||||
|
<h3 id="fedora-und-kompatible-rpm-systeme" tabindex="-1"><a class="header-anchor" href="#fedora-und-kompatible-rpm-systeme">Fedora und kompatible RPM-Systeme</a></h3>
|
||||||
|
<p>Installiere das RPM-Paket mit:</p>
|
||||||
|
<pre><code class="language-bash">sudo dnf install ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="arch-linux%3A-fertiges-release-paket" tabindex="-1"><a class="header-anchor" href="#arch-linux%3A-fertiges-release-paket">Arch Linux: fertiges Release-Paket</a></h3>
|
||||||
|
<p>Das aus dem GitHub Release heruntergeladene Arch-Paket kann direkt installiert werden:</p>
|
||||||
|
<pre><code class="language-bash">sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="arch-linux%3A-installation-%C3%BCber-den-aur" tabindex="-1"><a class="header-anchor" href="#arch-linux%3A-installation-%C3%BCber-den-aur">Arch Linux: Installation über den AUR</a></h3>
|
||||||
|
<p>Im AUR stehen drei Varianten bereit:</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Paket</th>
|
||||||
|
<th>Inhalt</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://aur.archlinux.org/packages/kst4contest-bin"><code>kst4contest-bin</code></a></td>
|
||||||
|
<td>Vorgefertigtes Paket des aktuellen Stable-Releases</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://aur.archlinux.org/packages/kst4contest"><code>kst4contest</code></a></td>
|
||||||
|
<td>Stable-Release, das lokal aus dem Quellcode gebaut wird</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://aur.archlinux.org/packages/kst4contest-git"><code>kst4contest-git</code></a></td>
|
||||||
|
<td>Aktueller Entwicklungsstand aus dem <code>main</code>-Branch</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>Für die meisten Anwender ist <code>kst4contest-bin</code> die naheliegende Variante:</p>
|
||||||
|
<pre><code class="language-bash">yay -S kst4contest-bin
|
||||||
|
</code></pre>
|
||||||
|
<p>Stable aus dem Quellcode bauen:</p>
|
||||||
|
<pre><code class="language-bash">yay -S kst4contest
|
||||||
|
</code></pre>
|
||||||
|
<p>Aktuellen Entwicklungsstand bauen:</p>
|
||||||
|
<pre><code class="language-bash">yay -S kst4contest-git
|
||||||
|
</code></pre>
|
||||||
|
<p>Die drei Pakete stellen dieselbe Anwendung bereit und sind deshalb als gegenseitige Konflikte definiert. Installiere nur eine Variante gleichzeitig.</p>
|
||||||
|
<p>AUR-Updates werden berücksichtigt, wenn der verwendete AUR-Helper nach Paketaktualisierungen sucht, beispielsweise mit:</p>
|
||||||
|
<pre><code class="language-bash">yay -Syu
|
||||||
|
</code></pre>
|
||||||
|
<p>Sie erfolgen nicht allein deshalb automatisch, weil das Paket aus dem AUR stammt.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="installation-unter-macos" tabindex="-1"><a class="header-anchor" href="#installation-unter-macos">Installation unter macOS</a></h2>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p><strong>Hinweis:</strong> Flatpak erlaubt nur eine installierte Version pro App-ID gleichzeitig. Um den Kanal zu wechseln, zuerst die aktuelle Version deinstallieren:</p>
|
<p><strong>Best-Effort-Support:</strong> Die macOS-Pakete werden zusammen mit den übrigen Releases gebaut, aber nicht in demselben Umfang getestet wie die Windows- und Linux-Versionen. Rückmeldungen sind willkommen; eine vollständig geprüfte Unterstützung aller macOS-Versionen und Hardwarevarianten kann derzeit jedoch nicht zugesagt werden.</p>
|
||||||
<pre><code class="language-bash">flatpak uninstall de.x08.KST4Contest
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest//nightly
|
|
||||||
</code></pre>
|
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>Updates erfolgen wie gewohnt mit <code>flatpak update</code>.</p>
|
<p>Für Apple-Silicon-Macs wird das Paket mit <code>arm64</code> benötigt. Für Intel-Macs ist das Paket mit <code>x86_64</code> vorgesehen.</p>
|
||||||
<p>Die <code>flatpakref</code>-Dateien für Beta und Stable liegen jeweils im entsprechenden <a href="https://github.com/praktimarc/kst4contest/releases">GitHub-Release</a>. Das Nightly-<code>flatpakref</code> (<code>de.x08.KST4Contest.nightly.flatpakref</code>) ist als Artifact im <a href="https://github.com/praktimarc/kst4contest/actions">GitHub Actions</a>-Tab verfügbar (wird 14 Tage aufbewahrt) – der Remote-Weg oben ist für Nightly daher meist einfacher.</p>
|
|
||||||
<h3 id="macos-1" tabindex="-1"><a class="header-anchor" href="#macos-1">macOS</a></h3>
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>DMG-Datei für die eigene Architektur herunterladen (Apple Silicon oder Intel).</li>
|
<li>Lade die passende DMG-Datei herunter.</li>
|
||||||
<li>DMG-Datei öffnen.</li>
|
<li>Öffne die DMG-Datei.</li>
|
||||||
<li><code>KST4Contest.app</code> in den <strong>Programme</strong>-Ordner ziehen.</li>
|
<li>Ziehe <code>KST4Contest.app</code> in den Ordner <strong>Programme</strong>.</li>
|
||||||
<li>Beim ersten Start zeigt macOS ggf. eine Warnung, da die App nicht notarisiert ist. Zum Öffnen:
|
<li>Starte KST4Contest aus dem Programme-Ordner oder über das Launchpad.</li>
|
||||||
<ul>
|
|
||||||
<li>Rechtsklick (oder Ctrl-Klick) auf <code>KST4Contest.app</code> im Finder → <strong>Öffnen</strong> wählen.</li>
|
|
||||||
<li>Alternativ: <strong>Systemeinstellungen → Datenschutz & Sicherheit</strong> → <strong>Trotzdem öffnen</strong> klicken.</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>KST4Contest aus dem Programme-Ordner oder dem Launchpad starten.</li>
|
|
||||||
</ol>
|
</ol>
|
||||||
<p>Die Einstellungen werden unter <code>~/.praktikst/preferences.xml</code> gespeichert.</p>
|
<p>Die Anwendung ist derzeit nicht von Apple notarisiert. macOS kann den ersten Start deshalb blockieren.</p>
|
||||||
|
<p>Falls die Anwendung aus dem offiziellen GitHub Release stammt:</p>
|
||||||
|
<ol>
|
||||||
|
<li>Öffne den Programme-Ordner im Finder.</li>
|
||||||
|
<li>Klicke mit der rechten Maustaste oder mit gedrückter Ctrl-Taste auf <code>KST4Contest.app</code>.</li>
|
||||||
|
<li>Wähle <strong>Öffnen</strong>.</li>
|
||||||
|
<li>Bestätige den Start im angezeigten Dialog.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Alternativ kann macOS unter <strong>Systemeinstellungen → Datenschutz & Sicherheit</strong> die Schaltfläche <strong>Trotzdem öffnen</strong> anbieten.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="update" tabindex="-1"><a class="header-anchor" href="#update">Update</a></h2>
|
<h2 id="wo-werden-die-einstellungen-gespeichert%3F" tabindex="-1"><a class="header-anchor" href="#wo-werden-die-einstellungen-gespeichert%3F">Wo werden die Einstellungen gespeichert?</a></h2>
|
||||||
<p>KST4Contest enthält einen <strong>automatischen Update-Hinweis-Dienst</strong>: Sobald eine neue Version verfügbar ist, erscheint beim Start ein Fenster mit:</p>
|
<p>KST4Contest speichert seine Einstellungen und weitere lokale Arbeitsdateien im Benutzerverzeichnis. Der Programmordner und das Datenverzeichnis sind voneinander getrennt.</p>
|
||||||
<ul>
|
<table>
|
||||||
<li>der Information, dass eine neue Version vorliegt,</li>
|
<thead>
|
||||||
<li>einem Changelog,</li>
|
<tr>
|
||||||
<li>dem Download-Link zur neuen Version.</li>
|
<th>Betriebssystem</th>
|
||||||
</ul>
|
<th>Datenverzeichnis</th>
|
||||||
<p><img src="update_window.png" alt="Beispiel Update Fenster"></p>
|
<th>Einstellungsdatei</th>
|
||||||
<h3 id="update-prozess" tabindex="-1"><a class="header-anchor" href="#update-prozess">Update-Prozess</a></h3>
|
</tr>
|
||||||
<h4 id="windows-2" tabindex="-1"><a class="header-anchor" href="#windows-2">Windows</a></h4>
|
</thead>
|
||||||
<p>Derzeit gibt es nur einen Weg zum Aktualisieren:</p>
|
<tbody>
|
||||||
<ol>
|
<tr>
|
||||||
<li>Den alten Ordner löschen.</li>
|
<td>Windows</td>
|
||||||
<li>Das neue ZIP entpacken.</li>
|
<td><code>%USERPROFILE%\.praktiKST\</code></td>
|
||||||
</ol>
|
<td><code>%USERPROFILE%\.praktiKST\preferences.xml</code></td>
|
||||||
<p>Die Einstellungsdatei (<code>preferences.xml</code>) bleibt erhalten, da sie im Benutzerordner gespeichert ist – nicht im Programmordner.</p>
|
</tr>
|
||||||
<h4 id="linux-2" tabindex="-1"><a class="header-anchor" href="#linux-2">Linux</a></h4>
|
<tr>
|
||||||
<ul>
|
<td>Linux</td>
|
||||||
<li><strong>AppImage</strong>: Neues AppImage herunterladen, ausführbar machen (<code>chmod +x</code>), altes optional löschen.</li>
|
<td><code>~/.praktiKST/</code></td>
|
||||||
<li><strong>Debian/Ubuntu</strong>: <code>sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb</code></li>
|
<td><code>~/.praktiKST/preferences.xml</code></td>
|
||||||
<li><strong>Fedora/RHEL</strong>: <code>sudo dnf upgrade ./KST4Contest-v<Version>-fedora-x86_64.rpm</code></li>
|
</tr>
|
||||||
<li><strong>Arch Linux (AUR)</strong>: <code>yay -S kst4contest-bin</code></li>
|
<tr>
|
||||||
<li><strong>Arch Linux (manuell)</strong>: <code>sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst</code></li>
|
<td>macOS</td>
|
||||||
<li><strong>Flatpak (Repository)</strong>: <code>flatpak update</code> – aktualisiert alle Flatpak-Apps einschließlich KST4Contest.</li>
|
<td><code>~/.praktiKST/</code></td>
|
||||||
</ul>
|
<td><code>~/.praktiKST/preferences.xml</code></td>
|
||||||
<h4 id="macos-2" tabindex="-1"><a class="header-anchor" href="#macos-2">macOS</a></h4>
|
</tr>
|
||||||
<ol>
|
</tbody>
|
||||||
<li>Neue DMG-Datei herunterladen.</li>
|
</table>
|
||||||
<li>DMG öffnen.</li>
|
<p>Beachte die Schreibweise <code>.praktiKST</code> mit großem <code>KST</code>. Unter Linux und macOS wird zwischen Groß- und Kleinschreibung unterschieden. <code>.praktikst</code> wäre dort schlicht ein anderes Verzeichnis.</p>
|
||||||
<li>Die neue <code>KST4Contest.app</code> in den <strong>Programme</strong>-Ordner ziehen und die alte Version ersetzen.</li>
|
<p>Ein Programmupdate entfernt dieses Verzeichnis nicht. Trotzdem ist es sinnvoll, vor größeren Versionswechseln oder umfangreichen Änderungen an der Konfiguration eine Sicherung davon anzulegen.</p>
|
||||||
</ol>
|
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="bekannte-probleme-beim-start" tabindex="-1"><a class="header-anchor" href="#bekannte-probleme-beim-start">Bekannte Probleme beim Start</a></h2>
|
<h2 id="updates" tabindex="-1"><a class="header-anchor" href="#updates">Updates</a></h2>
|
||||||
<h3 id="norton-360" tabindex="-1"><a class="header-anchor" href="#norton-360">Norton 360</a></h3>
|
<p>KST4Contest prüft beim Start, ob ein neueres Stable-Release verfügbar ist. Wenn eine neuere Version gefunden wird, erscheint ein Informationsfenster mit:</p>
|
||||||
<p>Norton 360 stuft <code>praktiKST.exe</code> als gefährlich ein (Fehlalarm). Es muss eine Ausnahme für die Datei eingerichtet werden:</p>
|
<ul>
|
||||||
|
<li>der installierten Version,</li>
|
||||||
|
<li>der aktuellen Stable-Version,</li>
|
||||||
|
<li>einer kurzen Übersicht wesentlicher Änderungen,</li>
|
||||||
|
<li>dem Changelog,</li>
|
||||||
|
<li>bekannten Problemen,</li>
|
||||||
|
<li>einem Link zur passenden GitHub-Release-Seite.</li>
|
||||||
|
</ul>
|
||||||
|
<p><img src="/manual/assets/update_window.png" alt="Update-Hinweis von KST4Contest"></p>
|
||||||
|
<p>Der Update-Checker installiert nichts selbst. Er informiert über die neue Version und öffnet die plattformneutrale Release-Seite. Dort muss das passende Paket für Windows, Linux oder macOS ausgewählt werden.</p>
|
||||||
|
<h3 id="windows-aktualisieren" tabindex="-1"><a class="header-anchor" href="#windows-aktualisieren">Windows aktualisieren</a></h3>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Norton 360 öffnen.</li>
|
<li>Beende KST4Contest.</li>
|
||||||
<li>Sicherheit → Verlauf → Das entsprechende Ereignis suchen.</li>
|
<li>Lade das neue Windows-ZIP herunter.</li>
|
||||||
<li>„Wiederherstellen & Ausnahme hinzufügen" wählen.</li>
|
<li>Entpacke es in einen neuen oder leeren Ordner.</li>
|
||||||
|
<li>Starte die neue Version.</li>
|
||||||
|
<li>Prüfe, ob die bisherigen Einstellungen geladen wurden.</li>
|
||||||
|
<li>Entferne den alten Programmordner erst danach.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p><em>(Gemeldet von PE0WGA, Franz van Velzen – danke!)</em></p>
|
<p>Die Einstellungen bleiben erhalten, weil sie unter <code>%USERPROFILE%\.praktiKST</code> und nicht im Programmordner gespeichert werden.</p>
|
||||||
|
<h3 id="appimage-aktualisieren" tabindex="-1"><a class="header-anchor" href="#appimage-aktualisieren">AppImage aktualisieren</a></h3>
|
||||||
|
<ol>
|
||||||
|
<li>Lade das neue AppImage herunter.</li>
|
||||||
|
<li>Mache es ausführbar.</li>
|
||||||
|
<li>Starte die neue Datei.</li>
|
||||||
|
<li>Entferne das bisherige AppImage erst, wenn die neue Version funktioniert.</li>
|
||||||
|
</ol>
|
||||||
|
<h3 id="debian-und-ubuntu-aktualisieren" tabindex="-1"><a class="header-anchor" href="#debian-und-ubuntu-aktualisieren">Debian und Ubuntu aktualisieren</a></h3>
|
||||||
|
<pre><code class="language-bash">sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="fedora-aktualisieren" tabindex="-1"><a class="header-anchor" href="#fedora-aktualisieren">Fedora aktualisieren</a></h3>
|
||||||
|
<pre><code class="language-bash">sudo dnf upgrade ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="arch-paket-aktualisieren" tabindex="-1"><a class="header-anchor" href="#arch-paket-aktualisieren">Arch-Paket aktualisieren</a></h3>
|
||||||
|
<pre><code class="language-bash">sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="aur-paket-aktualisieren" tabindex="-1"><a class="header-anchor" href="#aur-paket-aktualisieren">AUR-Paket aktualisieren</a></h3>
|
||||||
|
<p>Aktualisiere das installierte Paket über den verwendeten AUR-Helper, beispielsweise:</p>
|
||||||
|
<pre><code class="language-bash">yay -Syu
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="flatpak-aktualisieren" tabindex="-1"><a class="header-anchor" href="#flatpak-aktualisieren">Flatpak aktualisieren</a></h3>
|
||||||
|
<pre><code class="language-bash">flatpak update de.x08.KST4Contest
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="macos-aktualisieren" tabindex="-1"><a class="header-anchor" href="#macos-aktualisieren">macOS aktualisieren</a></h3>
|
||||||
|
<ol>
|
||||||
|
<li>Lade die neue DMG-Datei für die vorhandene Architektur herunter.</li>
|
||||||
|
<li>Beende KST4Contest.</li>
|
||||||
|
<li>Öffne die DMG-Datei.</li>
|
||||||
|
<li>Ersetze <code>KST4Contest.app</code> im Programme-Ordner.</li>
|
||||||
|
<li>Starte die neue Version und prüfe die vorhandenen Einstellungen.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Die Konfiguration unter <code>~/.praktiKST</code> bleibt davon unberührt.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="probleme-beim-ersten-start" tabindex="-1"><a class="header-anchor" href="#probleme-beim-ersten-start">Probleme beim ersten Start</a></h2>
|
||||||
|
<h3 id="windows-meldet-eine-unbekannte-anwendung" tabindex="-1"><a class="header-anchor" href="#windows-meldet-eine-unbekannte-anwendung">Windows meldet eine unbekannte Anwendung</a></h3>
|
||||||
|
<p>KST4Contest ist derzeit nicht mit einem kommerziellen Windows-Code-Signing-Zertifikat signiert. Windows oder ein zusätzlich installiertes Sicherheitsprodukt kann deshalb vor einer unbekannten oder selten heruntergeladenen Anwendung warnen.</p>
|
||||||
|
<p>Prüfe in diesem Fall zuerst:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Stammt die Datei aus dem <a href="https://github.com/praktimarc/kst4contest/releases/latest">offiziellen KST4Contest-Release</a>?</li>
|
||||||
|
<li>Passt der Dateiname zum veröffentlichten Release?</li>
|
||||||
|
<li>Wurde die Datei vollständig heruntergeladen?</li>
|
||||||
|
<li>Nennt das Sicherheitsprogramm einen konkreten Erkennungsnamen oder nur eine allgemeine Reputationswarnung?</li>
|
||||||
|
</ul>
|
||||||
|
<p>Ein Warnhinweis ist allein weder ein sicherer Beweis für Schadsoftware noch automatisch ein Fehlalarm. Wenn die Herkunft der Datei unklar ist, sollte sie nicht gestartet oder aus der Quarantäne wiederhergestellt werden.</p>
|
||||||
|
<p>Einige Anwender haben insbesondere Quarantäne-Meldungen von Norton 360 gemeldet. Wenn sich eine Meldung reproduzieren lässt, erstelle bitte einen <a href="https://github.com/praktimarc/kst4contest/issues">GitHub-Issue</a> und nenne:</p>
|
||||||
|
<ul>
|
||||||
|
<li>die KST4Contest-Version,</li>
|
||||||
|
<li>den vollständigen Dateinamen,</li>
|
||||||
|
<li>das verwendete Sicherheitsprodukt und dessen Version,</li>
|
||||||
|
<li>den angezeigten Erkennungsnamen,</li>
|
||||||
|
<li>möglichst einen Screenshot der Meldung.</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="das-appimage-startet-nicht" tabindex="-1"><a class="header-anchor" href="#das-appimage-startet-nicht">Das AppImage startet nicht</a></h3>
|
||||||
|
<p>Prüfe zuerst das Ausführungsrecht:</p>
|
||||||
|
<pre><code class="language-bash">chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage
|
||||||
|
</code></pre>
|
||||||
|
<p>Starte die Datei anschließend aus einem Terminal. Fehlermeldungen sind dort meist aussagekräftiger als ein Doppelklick, der lediglich nichts Sichtbares tut.</p>
|
||||||
|
<h3 id="macos-blockiert-die-anwendung" tabindex="-1"><a class="header-anchor" href="#macos-blockiert-die-anwendung">macOS blockiert die Anwendung</a></h3>
|
||||||
|
<p>Verwende die unter <a href="#installation-unter-macos">Installation unter macOS</a> beschriebene Funktion <strong>Öffnen</strong> im Kontextmenü. Prüfe vorher, ob die DMG-Datei aus dem offiziellen GitHub Release stammt.</p>
|
||||||
|
<h3 id="das-problem-bleibt-bestehen" tabindex="-1"><a class="header-anchor" href="#das-problem-bleibt-bestehen">Das Problem bleibt bestehen</a></h3>
|
||||||
|
<p>Prüfe zunächst, ob das Problem bereits unter <a href="https://github.com/praktimarc/kst4contest/issues">GitHub Issues</a> beschrieben wurde. Falls nicht, erstelle einen neuen Issue mit:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Betriebssystem und Version,</li>
|
||||||
|
<li>verwendeter KST4Contest-Version,</li>
|
||||||
|
<li>Installationsart,</li>
|
||||||
|
<li>genauer Fehlermeldung,</li>
|
||||||
|
<li>den Schritten, mit denen sich das Problem reproduzieren lässt.</li>
|
||||||
|
</ul>
|
||||||
|
<p>„Geht nicht“ beschreibt den Zustand meistens korrekt, hilft bei der Fehlersuche aber nur begrenzt.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section></main>
|
</section></main>
|
||||||
@@ -303,7 +474,7 @@ flatpak install kst4contest de.x08.KST4Contest//nightly
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="station-settings-(stationseinstellungen)" tabindex="-1"><a class="header-anchor" href="#station-settings-(stationseinstellungen)">Station Settings (Stationseinstellungen)</a></h2>
|
<h2 id="station-settings-(stationseinstellungen)" tabindex="-1"><a class="header-anchor" href="#station-settings-(stationseinstellungen)">Station Settings (Stationseinstellungen)</a></h2>
|
||||||
<p><img src="client_settings_window_station.png" alt="Stationseinstellungen"></p>
|
<p><img src="/manual/assets/client_settings_window_station.png" alt="Stationseinstellungen"></p>
|
||||||
<h3 id="login-und-chat-kategorien" tabindex="-1"><a class="header-anchor" href="#login-und-chat-kategorien">Login und Chat-Kategorien</a></h3>
|
<h3 id="login-und-chat-kategorien" tabindex="-1"><a class="header-anchor" href="#login-und-chat-kategorien">Login und Chat-Kategorien</a></h3>
|
||||||
<p>Hier werden die Zugangsdaten für den ON4KST-Chat eingetragen (Rufzeichen und Passwort).
|
<p>Hier werden die Zugangsdaten für den ON4KST-Chat eingetragen (Rufzeichen und Passwort).
|
||||||
Zudem wird die <strong>primäre Chat-Kategorie</strong> (z. B. IARU Region 1 VHF/Microwave) ausgewählt.</p>
|
Zudem wird die <strong>primäre Chat-Kategorie</strong> (z. B. IARU Region 1 VHF/Microwave) ausgewählt.</p>
|
||||||
@@ -224,7 +224,7 @@ Zudem wird die <strong>primäre Chat-Kategorie</strong> (z. B. IARU Region 1 VHF
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,14 +67,14 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
<p><a href="/manual/de/">← Back to manual overview</a></p>
|
||||||
<h1>Log Synchronisation</h1>
|
<h1>Log-Synchronisation</h1>
|
||||||
<h1 id="log-synchronisation" tabindex="-1"><a class="header-anchor" href="#log-synchronisation">Log-Synchronisation</a></h1>
|
<h1 id="log-synchronisation" tabindex="-1"><a class="header-anchor" href="#log-synchronisation">Log-Synchronisation</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 <a href="/manual/en/log-sync/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
<p>🇬🇧 <a href="/manual/en/log-sync/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>KST4Contest markiert gearbeitete Stationen automatisch in der Chat-Benutzerliste. Dafür gibt es zwei grundlegende Methoden:</p>
|
<p>KST4Contest markiert gearbeitete Stationen automatisch in der Chat-Benutzerliste. Dafür gibt es zwei grundlegende Methoden:</p>
|
||||||
<hr>
|
<hr>
|
||||||
<p><img src="client_settings_window_logsync.png" alt="Log-Synchronisation Einstellungsfenster"></p>
|
<p><img src="/manual/assets/client_settings_window_logsync.png" alt="Log-Synchronisation Einstellungsfenster"></p>
|
||||||
<h2 id="methode-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)" tabindex="-1"><a class="header-anchor" href="#methode-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)">Methode 1: Universal File Based Callsign Interpreter (Simplelogfile)</a></h2>
|
<h2 id="methode-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)" tabindex="-1"><a class="header-anchor" href="#methode-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)">Methode 1: Universal File Based Callsign Interpreter (Simplelogfile)</a></h2>
|
||||||
<p>KST4Contest liest eine Log-Datei und sucht mittels regulärem Ausdruck nach Rufzeichen-Mustern. Dabei werden auch binäre Logdateien unterstützt – unlesbarer Binärinhalt wird einfach ignoriert.</p>
|
<p>KST4Contest liest eine Log-Datei und sucht mittels regulärem Ausdruck nach Rufzeichen-Mustern. Dabei werden auch binäre Logdateien unterstützt – unlesbarer Binärinhalt wird einfach ignoriert.</p>
|
||||||
<p><strong>Vorteil</strong>: Funktioniert mit nahezu jedem Logprogramm, das eine Datei schreibt.
|
<p><strong>Vorteil</strong>: Funktioniert mit nahezu jedem Logprogramm, das eine Datei schreibt.
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<h2 id="unterst%C3%BCtzte-logprogramme" tabindex="-1"><a class="header-anchor" href="#unterst%C3%BCtzte-logprogramme">Unterstützte Logprogramme</a></h2>
|
<h2 id="unterst%C3%BCtzte-logprogramme" tabindex="-1"><a class="header-anchor" href="#unterst%C3%BCtzte-logprogramme">Unterstützte Logprogramme</a></h2>
|
||||||
<h3 id="ucxlog-(dl7ucx)" tabindex="-1"><a class="header-anchor" href="#ucxlog-(dl7ucx)">UCXLog (DL7UCX)</a></h3>
|
<h3 id="ucxlog-(dl7ucx)" tabindex="-1"><a class="header-anchor" href="#ucxlog-(dl7ucx)">UCXLog (DL7UCX)</a></h3>
|
||||||
<p><img src="ucxlog_logsync.png" alt="UCXLog Konfiguration"></p>
|
<p><img src="/manual/assets/ucxlog_logsync.png" alt="UCXLog Konfiguration"></p>
|
||||||
<p>UCXLog sendet QSO-UDP-Pakete und Transceiver-Frequenzpakete.</p>
|
<p>UCXLog sendet QSO-UDP-Pakete und Transceiver-Frequenzpakete.</p>
|
||||||
<p><strong>Einstellungen in UCXLog:</strong></p>
|
<p><strong>Einstellungen in UCXLog:</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
<p>Grün markierte Felder in den UCXLog-Einstellungen beachten: IP und Port müssen eingetragen werden.</p>
|
<p>Grün markierte Felder in den UCXLog-Einstellungen beachten: IP und Port müssen eingetragen werden.</p>
|
||||||
<p>Hinweis für Multi-Setup (2 Computer, 2 Radios, eine KST4Contest-Instanz): Beide Logprogramme müssen die QSO-Pakete an die IP des KST4Contest-Computers senden. Dann ist mindestens eine IP nicht <code>127.0.0.1</code>.</p>
|
<p>Hinweis für Multi-Setup (2 Computer, 2 Radios, eine KST4Contest-Instanz): Beide Logprogramme müssen die QSO-Pakete an die IP des KST4Contest-Computers senden. Dann ist mindestens eine IP nicht <code>127.0.0.1</code>.</p>
|
||||||
<h3 id="qartest-(ik3qar)" tabindex="-1"><a class="header-anchor" href="#qartest-(ik3qar)">QARTest (IK3QAR)</a></h3>
|
<h3 id="qartest-(ik3qar)" tabindex="-1"><a class="header-anchor" href="#qartest-(ik3qar)">QARTest (IK3QAR)</a></h3>
|
||||||
<p><img src="qartest_logsync.png" alt="QARTest Konfiguration"></p>
|
<p><img src="/manual/assets/qartest_logsync.png" alt="QARTest Konfiguration"></p>
|
||||||
<p><strong>Besonderheit</strong>: QARTest kann das <strong>vollständige Log</strong> an KST4Contest senden (Schaltfläche „Invia log completo" in den QARTest-Einstellungen). Damit werden auch QSOs erfasst, die vor dem Start von KST4Contest geloggt wurden.</p>
|
<p><strong>Besonderheit</strong>: QARTest kann das <strong>vollständige Log</strong> an KST4Contest senden (Schaltfläche „Invia log completo" in den QARTest-Einstellungen). Damit werden auch QSOs erfasst, die vor dem Start von KST4Contest geloggt wurden.</p>
|
||||||
<p><strong>Einstellungen in QARTest:</strong></p>
|
<p><strong>Einstellungen in QARTest:</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<p>Für den integrierten DX-Cluster-Server: N1MM+ als DX-Cluster-Client konfigurieren (Server: <code>127.0.0.1</code>, Port wie in KST4Contest eingestellt).</p>
|
<p>Für den integrierten DX-Cluster-Server: N1MM+ als DX-Cluster-Client konfigurieren (Server: <code>127.0.0.1</code>, Port wie in KST4Contest eingestellt).</p>
|
||||||
<h3 id="dxlog.net" tabindex="-1"><a class="header-anchor" href="#dxlog.net"><a href="http://DXLog.net">DXLog.net</a></a></h3>
|
<h3 id="dxlog.net" tabindex="-1"><a class="header-anchor" href="#dxlog.net"><a href="http://DXLog.net">DXLog.net</a></a></h3>
|
||||||
<p><img src="dxlog_net_logsync.png" alt="DXLog.net Konfiguration"></p>
|
<p><img src="/manual/assets/dxlog_net_logsync.png" alt="DXLog.net Konfiguration"></p>
|
||||||
<p><strong>Einstellungen in <a href="http://DXLog.net">DXLog.net</a>:</strong></p>
|
<p><strong>Einstellungen in <a href="http://DXLog.net">DXLog.net</a>:</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>UDP-Broadcast aktivieren</li>
|
<li>UDP-Broadcast aktivieren</li>
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<h2 id="trx-frequenz-synchronisation" tabindex="-1"><a class="header-anchor" href="#trx-frequenz-synchronisation">TRX-Frequenz-Synchronisation</a></h2>
|
<h2 id="trx-frequenz-synchronisation" tabindex="-1"><a class="header-anchor" href="#trx-frequenz-synchronisation">TRX-Frequenz-Synchronisation</a></h2>
|
||||||
<p>Neben der QSO-Synchronisation übertragen UCXLog und andere Programme auch die <strong>aktuelle Transceiverfrequenz</strong> via UDP. KST4Contest verarbeitet diese Information und stellt sie als Variable <code>MYQRG</code> bereit.</p>
|
<p>Neben der QSO-Synchronisation übertragen UCXLog und andere Programme auch die <strong>aktuelle Transceiverfrequenz</strong> via UDP. KST4Contest verarbeitet diese Information und stellt sie als Variable <code>MYQRG</code> bereit.</p>
|
||||||
<p><img src="qrg_buttons.png" alt="FrequenzButtons"></p>
|
<p><img src="/manual/assets/qrg_buttons.png" alt="FrequenzButtons"></p>
|
||||||
<p><strong>Ergebnis</strong>: Die eigene QRG muss im Chat nie mehr manuell eingegeben werden – ein Klick auf den MYQRG-Button oder die Verwendung der Variable im Beacon genügt.</p>
|
<p><strong>Ergebnis</strong>: Die eigene QRG muss im Chat nie mehr manuell eingegeben werden – ein Klick auf den MYQRG-Button oder die Verwendung der Variable im Beacon genügt.</p>
|
||||||
<p><strong>Quellen für die eigene QRG (MYQRG):</strong></p>
|
<p><strong>Quellen für die eigene QRG (MYQRG):</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -202,7 +202,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -97,8 +97,8 @@
|
|||||||
<li>Start AirScout.</li>
|
<li>Start AirScout.</li>
|
||||||
<li>Enter your OV3T feed account details (username, password, URL) in the AirScout settings.</li>
|
<li>Enter your OV3T feed account details (username, password, URL) in the AirScout settings.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p><img src="as_plane_feed_1.png" alt="AirscoutStep1">
|
<p><img src="/manual/assets/as_plane_feed_1.png" alt="AirscoutStep1">
|
||||||
<img src="as_plane_feed_2.png" alt="AirscoutStep2"></p>
|
<img src="/manual/assets/as_plane_feed_2.png" alt="AirscoutStep2"></p>
|
||||||
<ol start="3">
|
<ol start="3">
|
||||||
<li>Test the connection.</li>
|
<li>Test the connection.</li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<li>Enable AirScout communication</li>
|
<li>Enable AirScout communication</li>
|
||||||
<li>Leave IP and port at their default values (unless changed)</li>
|
<li>Leave IP and port at their default values (unless changed)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><img src="as_plane_feed_3.png" alt="AirscoutStep3">{ width=85% }</p>
|
<p><img src="/manual/assets/as_plane_feed_3.png" alt="AirscoutStep3">{ width=85% }</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="communication-between-kst4contest-and-airscout-(from-v1.263)" tabindex="-1"><a class="header-anchor" href="#communication-between-kst4contest-and-airscout-(from-v1.263)">Communication Between KST4Contest and AirScout (from v1.263)</a></h2>
|
<h2 id="communication-between-kst4contest-and-airscout-(from-v1.263)" tabindex="-1"><a class="header-anchor" href="#communication-between-kst4contest-and-airscout-(from-v1.263)">Communication Between KST4Contest and AirScout (from v1.263)</a></h2>
|
||||||
<p><strong>Improvement in v1.263</strong>: KST4Contest now only sends stations to AirScout whose QRB (distance) is less than the configured <strong>maximum QRB</strong>. The query interval has been extended from 12 seconds to <strong>60 seconds</strong>.</p>
|
<p><strong>Improvement in v1.263</strong>: KST4Contest now only sends stations to AirScout whose QRB (distance) is less than the configured <strong>maximum QRB</strong>. The query interval has been extended from 12 seconds to <strong>60 seconds</strong>.</p>
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="station-settings" tabindex="-1"><a class="header-anchor" href="#station-settings">Station Settings</a></h2>
|
<h2 id="station-settings" tabindex="-1"><a class="header-anchor" href="#station-settings">Station Settings</a></h2>
|
||||||
<p><img src="client_settings_window_station.png" alt="Station Settings"></p>
|
<p><img src="/manual/assets/client_settings_window_station.png" alt="Station Settings"></p>
|
||||||
<h3 id="login-and-chat-categories" tabindex="-1"><a class="header-anchor" href="#login-and-chat-categories">Login and Chat Categories</a></h3>
|
<h3 id="login-and-chat-categories" tabindex="-1"><a class="header-anchor" href="#login-and-chat-categories">Login and Chat Categories</a></h3>
|
||||||
<p>Enter your ON4KST chat credentials here (callsign and password).
|
<p>Enter your ON4KST chat credentials here (callsign and password).
|
||||||
Also, select the <strong>primary chat category</strong> (e.g., IARU Region 1 VHF/Microwave).</p>
|
Also, select the <strong>primary chat category</strong> (e.g., IARU Region 1 VHF/Microwave).</p>
|
||||||
@@ -224,7 +224,7 @@ Also, select the <strong>primary chat category</strong> (e.g., IARU Region 1 VHF
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/en/">← Back to manual overview</a></p>
|
<p><a href="/manual/en/">← Back to manual overview</a></p>
|
||||||
<h1>DX Cluster Server</h1>
|
<h1>Built-in DX Cluster Server</h1>
|
||||||
<h1 id="built-in-dx-cluster-server" tabindex="-1"><a class="header-anchor" href="#built-in-dx-cluster-server">Built-in DX Cluster Server</a></h1>
|
<h1 id="built-in-dx-cluster-server" tabindex="-1"><a class="header-anchor" href="#built-in-dx-cluster-server">Built-in DX Cluster Server</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/dx-cluster-server/">Deutsche Version</a></p>
|
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/dx-cluster-server/">Deutsche Version</a></p>
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,15 +67,61 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/en/">← Back to manual overview</a></p>
|
<p><a href="/manual/en/">← Back to manual overview</a></p>
|
||||||
<h1>Home</h1>
|
<h1>KST4Contest – User Manual</h1>
|
||||||
<h1 id="kst4contest-%E2%80%93-wiki" tabindex="-1"><a class="header-anchor" href="#kst4contest-%E2%80%93-wiki">KST4Contest – Wiki</a></h1>
|
<h1 id="kst4contest-%E2%80%93-user-manual" tabindex="-1"><a class="header-anchor" href="#kst4contest-%E2%80%93-user-manual">KST4Contest – User Manual</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/home/">Deutsche Version</a></p>
|
<p>You are reading the English version | <a href="/manual/de/home/">Deutsche Version</a></p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p><strong>KST4Contest</strong> (also known as <em>PraktiKST</em>) is a Java-based chat client for the <a href="http://www.on4kst.info/chat/">ON4KST Chat</a>, specifically designed for contest operation on the VHF/UHF/SHF bands (144 MHz and above).</p>
|
<p>KST4Contest is a desktop client for the <a href="https://www.on4kst.org/chat/login.php">ON4KST Chat</a>, developed for VHF, UHF and SHF contest operation. It brings chat, candidate selection, sked planning, aircraft scatter data and external station software together in a single operating interface.</p>
|
||||||
<p>Developed by <strong>DO5AMF (Marc Fröhlich)</strong>, operator at DM5M.</p>
|
<p>KST4Contest is developed by <strong>DO5AMF (Marc Fröhlich)</strong>, operator at DM5M and (since May 2025) <strong>DN9APW (Philipp Wagner)</strong>. The source code is publicly available on <a href="https://github.com/praktimarc/kst4contest">GitHub</a>.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="quick-navigation" tabindex="-1"><a class="header-anchor" href="#quick-navigation">Quick Navigation</a></h2>
|
<h2 id="why-use-a-dedicated-on4kst-client%3F" tabindex="-1"><a class="header-anchor" href="#why-use-a-dedicated-on4kst-client%3F">Why use a dedicated ON4KST client?</a></h2>
|
||||||
|
<p>During a contest, the ON4KST Chat provides a considerable amount of information: active stations, locators, frequencies, sked requests and indications of current activity. The actual problem is not seeing this data. It is turning it into the next useful contact in time.</p>
|
||||||
|
<p>KST4Contest evaluates the available information, puts it into context and presents it as part of a contest-oriented workflow. This includes antenna direction, distance, known bands and frequencies, worked status, chat activity and aircraft scatter timing.</p>
|
||||||
|
<p>The program does not decide which QSO is actually possible. Priority scores, the AP timeline and visual highlights are decision aids. The final judgement remains with the operator – not least because even a very convincing computer screen cannot complete a radio contact.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="how-kst4contest-supports-contest-operation" tabindex="-1"><a class="header-anchor" href="#how-kst4contest-supports-contest-operation">How KST4Contest supports contest operation</a></h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p><strong>Observe and organise chat activity:</strong> KST4Contest can display two ON4KST chat categories at the same time. Messages, frequency information and known band activity are assigned to the corresponding stations.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Reduce the station list:</strong> Direction, distance, worked and NOT-QRV filters help limit the user list to stations that are relevant to the current operating situation.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Prioritise candidates:</strong> The score system evaluates active chat members using several known criteria. The currently most relevant candidates are also shown in a separate priority list.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Prepare skeds and keep them visible:</strong> Sked reminders, automatic advance messages and the AP timeline help prevent scheduled contacts from disappearing somewhere between chat, logging and ongoing CQ operation.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Include aircraft scatter information:</strong> The AirScout interface brings suitable aircraft and expected reflection times into candidate evaluation and sked planning.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Connect the logger and station equipment:</strong> KST4Contest synchronises worked stations and frequency information with supported logging software. It also provides interfaces for Win-Test, PSTRotator and a built-in DX Cluster server.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Display stations and radio paths:</strong> The station map shows active chat members, locator squares, antenna directions and the path to the selected station. A terrain profile can also be calculated for selected paths.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>These functions share information. A detected frequency can indicate an active band, worked status comes from the logger, aircraft scatter data adds timing information and the resulting score affects the priority list. Missing or outdated input data can therefore affect the result as well.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="requirements" tabindex="-1"><a class="header-anchor" href="#requirements">Requirements</a></h2>
|
||||||
|
<p>A registered ON4KST account is required. Registration and login are available from the <a href="https://www.on4kst.org/chat/login.php">official ON4KST login page</a>.</p>
|
||||||
|
<p>English is the official language of the ON4KST Chat. This also applies when communicating with stations from your own country. Common amateur radio abbreviations such as <code>pse</code>, <code>agn</code>, <code>qrg</code>, <code>dir</code>, <code>rrr</code>, <code>tnx</code> and <code>73</code> are normal and usually considerably faster than carefully written prose.</p>
|
||||||
|
<p>Downloads, supported operating systems and installation methods are described in <a href="/manual/en/installation/">Installation</a>.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="manual-version" tabindex="-1"><a class="header-anchor" href="#manual-version">Manual version</a></h2>
|
||||||
|
<p>This manual describes the stable release <strong>v1.41.1</strong>.</p>
|
||||||
|
<p>Features or changes that are only available in the current development version are explicitly marked as <strong>Nightly / v1.42</strong>. If no such label is present, the description refers to the stable release.</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/praktimarc/kst4contest/releases/latest">Download the current stable release</a></li>
|
||||||
|
<li><a href="https://github.com/praktimarc/kst4contest/actions">Nightly and automated builds</a></li>
|
||||||
|
<li><a href="/manual/en/changelog/">Version history</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>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.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="quick-navigation" tabindex="-1"><a class="header-anchor" href="#quick-navigation">Quick navigation</a></h2>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -86,68 +132,67 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/installation/">Installation</a></td>
|
<td><a href="/manual/en/installation/">Installation</a></td>
|
||||||
<td>Download, Java requirements, update</td>
|
<td>ON4KST account, downloads, installation and updates</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/configuration/">Configuration</a></td>
|
<td><a href="/manual/en/configuration/">Configuration</a></td>
|
||||||
<td>All settings in detail</td>
|
<td>Login, station, bands, user interface and external connections</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/log-sync/">Log Synchronisation</a></td>
|
<td><a href="/manual/en/log-sync/">Log Synchronisation</a></td>
|
||||||
<td>UCXLog, N1MM+, QARTest, <a href="http://DXLog.net">DXLog.net</a>, WinTest</td>
|
<td>Simplelogfile, UCXLog, N1MM+, QARTest, <a href="http://DXLog.net">DXLog.net</a> and Win-Test</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/airscout-integration/">AirScout Integration</a></td>
|
<td><a href="/manual/en/airscout-integration/">AirScout Integration</a></td>
|
||||||
<td>Aircraft scatter detection</td>
|
<td>Connecting AirScout and evaluating aircraft scatter timing</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/dx-cluster-server/">DX Cluster Server</a></td>
|
<td><a href="/manual/en/dx-cluster-server/">DX Cluster Server</a></td>
|
||||||
<td>Built-in DX cluster for your logging software</td>
|
<td>Passing detected opportunities to logging software</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/features/">Features</a></td>
|
<td><a href="/manual/en/features/">Features</a></td>
|
||||||
<td>All features at a glance</td>
|
<td>Operation, reasoning and limitations of individual functions</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/macros-and-variables/">Macros and Variables</a></td>
|
<td><a href="/manual/en/macros-and-variables/">Macros and Variables</a></td>
|
||||||
<td>Text snippets, shortcuts, variables</td>
|
<td>Reusable messages, shortcuts and automatically substituted values</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/user-interface/">User Interface</a></td>
|
<td><a href="/manual/en/user-interface/">User Interface</a></td>
|
||||||
<td>UI explanation and operation</td>
|
<td>Interface layout and operation during a contest</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/manual/en/changelog/">Changelog</a></td>
|
<td><a href="/manual/en/changelog/">Changelog</a></td>
|
||||||
<td>Version history</td>
|
<td>Releases, Nightly changes and resolved issues</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="what-is-kst4contest%3F" tabindex="-1"><a class="header-anchor" href="#what-is-kst4contest%3F">What is KST4Contest?</a></h2>
|
<h2 id="contact-and-support" tabindex="-1"><a class="header-anchor" href="#contact-and-support">Contact and support</a></h2>
|
||||||
<p>The ON4KST Chat is the de-facto standard for skeds on the 144 MHz and higher bands. KST4Contest enhances the chat experience with contest-specific features:</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Worked marking</strong>: Stations already worked are highlighted visually, synchronised directly from your logging software via UDP.</li>
|
<li><strong>Download:</strong> <a href="https://github.com/praktimarc/kst4contest/releases/latest">Current stable release</a></li>
|
||||||
<li><strong>Sked direction detection</strong>: When a station calls another one from your direction, it is highlighted green and bold.</li>
|
<li><strong>Source code:</strong> <a href="https://github.com/praktimarc/kst4contest">praktimarc/kst4contest</a></li>
|
||||||
<li><strong>QRG detection</strong>: KST4Contest automatically reads frequencies from the chat traffic and shows them in the user list.</li>
|
<li><strong>Bug reports and feature requests:</strong> <a href="https://github.com/praktimarc/kst4contest/issues">GitHub Issues</a></li>
|
||||||
<li><strong>AirScout interface</strong>: Reflectable aircraft are shown directly in the user list.</li>
|
<li><strong>Email:</strong> <a href="mailto:praktimarc+kst4contest@gmail.com">praktimarc+kst4contest@gmail.com</a><br>
|
||||||
<li><strong>Built-in DX cluster server</strong>: Spots are sent directly to your logging software.</li>
|
Please use this address only for KST4Contest-related topics.</li>
|
||||||
<li><strong>Dark mode</strong> (from v1.26): Easy on the eyes during night-time operation.</li>
|
|
||||||
<li><strong>Multi-channel login</strong> (from v1.26): Simultaneously logged into two chat categories.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<hr>
|
<h3 id="reporting-a-bug" tabindex="-1"><a class="header-anchor" href="#reporting-a-bug">Reporting a bug</a></h3>
|
||||||
<h2 id="contact-%26-support" tabindex="-1"><a class="header-anchor" href="#contact-%26-support">Contact & Support</a></h2>
|
<p>A problem is considerably easier to reproduce when the report contains at least:</p>
|
||||||
<ul>
|
<ol>
|
||||||
<li><strong>Email</strong>: <a href="mailto:praktimarc+kst4contest@gmail.com">praktimarc+kst4contest@gmail.com</a> <em>(for kst4contest topics only)</em></li>
|
<li>the KST4Contest version,</li>
|
||||||
<li><strong>GitHub</strong>: <a href="https://github.com/praktimarc/kst4contest">https://github.com/praktimarc/kst4contest</a></li>
|
<li>the operating system and installation method,</li>
|
||||||
<li><strong>Download</strong>: <a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></li>
|
<li>the exact steps leading to the problem,</li>
|
||||||
</ul>
|
<li>the expected and observed behaviour,</li>
|
||||||
<h3 id="reporting-a-bug-(creating-an-issue)" tabindex="-1"><a class="header-anchor" href="#reporting-a-bug-(creating-an-issue)">Reporting a bug (creating an issue)</a></h3>
|
<li>a screenshot where appropriate,</li>
|
||||||
<p>When reporting a bug, please <strong>always attach the log file</strong>. KST4Contest automatically writes an error log (error messages only, no personal data):</p>
|
<li>the error log file.</li>
|
||||||
|
</ol>
|
||||||
|
<p>The error log is stored at:</p>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Operating system</th>
|
<th>Operating system</th>
|
||||||
<th>Log file location</th>
|
<th>Path</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -161,10 +206,12 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>When opening an issue on GitHub, a template is provided that guides you through all relevant fields.</p>
|
<p>Please inspect the file briefly before uploading it. An error log mainly contains technical information, but depending on the problem it may also include local file paths or other contextual data.</p>
|
||||||
|
<p>Some file and directory names still use the technical name <code>praktiKST</code>. They refer to the same program.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="acknowledgements" tabindex="-1"><a class="header-anchor" href="#acknowledgements">Acknowledgements</a></h2>
|
<h2 id="acknowledgements" tabindex="-1"><a class="header-anchor" href="#acknowledgements">Acknowledgements</a></h2>
|
||||||
<p>Special thanks to: Gianluca Costantino (IU3OAR), Alessandro Murador (IZ3VTH), Reczetár István (HA1FV), OM0AAO (Viliam Petrik, DX cluster idea), DC9DJ (Konrad Neitzel, project structure), DO5ALF (Andreas, webmaster <a href="http://funkerportal.de">funkerportal.de</a>), PE0WGA (Franz van Velzen, tester) and all other testers and contributors.</p>
|
<p>KST4Contest has benefited considerably from feedback gathered during actual contest operation.</p>
|
||||||
|
<p>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 <a href="http://funkerportal.de">funkerportal.de</a>), Franz van Velzen (PE0WGA, testing), and all other testers and contributors.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section></main>
|
</section></main>
|
||||||
@@ -173,7 +220,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="English user manual for KST4Contest.">
|
<meta name="twitter:description" content="English user manual for KST4Contest.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -94,71 +94,91 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/en/airscout-integration/">AirScout Integration</a></h3>
|
<h3><a href="/manual/en/home/">KST4Contest – User Manual</a></h3>
|
||||||
<p>Open the AirScout Integration manual page.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<p>KST4Contest is a desktop client for the ON4KST Chat, developed for VHF, UHF and SHF contest operation. It brings chat, candidate selection, sked planning, aircraft scatter data and external station software together in a single operating interface.</p>
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/en/changelog/">Changelog</a></h3>
|
|
||||||
<p>Open the Changelog manual page.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/en/configuration/">Configuration</a></h3>
|
|
||||||
<p>Open the Configuration manual page.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/en/dx-cluster-server/">DX Cluster Server</a></h3>
|
|
||||||
<p>Open the DX Cluster Server manual page.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/en/features/">Features</a></h3>
|
|
||||||
<p>Open the Features manual page.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<h3><a href="/manual/en/home/">Home</a></h3>
|
|
||||||
<p>Open the Home manual page.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/en/installation/">Installation</a></h3>
|
<h3><a href="/manual/en/installation/">Installation</a></h3>
|
||||||
<p>Open the Installation manual page.</p>
|
|
||||||
|
<p>KST4Contest is distributed as a ready-to-run application package for Windows, Linux and macOS. The official release packages do not require a separate Java installation: the required Java runtime is already included.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/en/log-sync/">Log Sync</a></h3>
|
<h3><a href="/manual/en/configuration/">Configuration</a></h3>
|
||||||
<p>Open the Log Sync manual page.</p>
|
|
||||||
|
<p>After the first start, the settings window opens – this is the central starting point for all configuration. It is recommended to keep the settings window open during operation (e.g. to quickly toggle the beacon on and off).</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/en/log-sync/">Log Synchronisation</a></h3>
|
||||||
|
|
||||||
|
<p>KST4Contest automatically marks worked stations in the chat user list. Two basic methods are available:</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/en/airscout-integration/">AirScout Integration</a></h3>
|
||||||
|
|
||||||
|
<p>AirScout (by DL2ALF) is a program for detecting aircraft for aircraft scatter operation. KST4Contest is tightly integrated with AirScout and shows reflectable aircraft directly in the user list.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/en/dx-cluster-server/">Built-in DX Cluster Server</a></h3>
|
||||||
|
|
||||||
|
<p>From version 1.23, KST4Contest includes a built-in DX cluster server. It sends spots directly to the logging software whenever a direction warning is triggered.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/en/features/">Features</a></h3>
|
||||||
|
|
||||||
|
<p>Overview of all main features of KST4Contest.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/en/macros-and-variables/">Macros and Variables</a></h3>
|
<h3><a href="/manual/en/macros-and-variables/">Macros and Variables</a></h3>
|
||||||
<p>Open the Macros and Variables manual page.</p>
|
|
||||||
|
<p>KST4Contest offers a flexible system of text snippets, shortcuts and built-in variables that significantly speed up the chat workflow during contests.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/en/user-interface/">User Interface</a></h3>
|
<h3><a href="/manual/en/user-interface/">User Interface</a></h3>
|
||||||
<p>Open the User Interface manual page.</p>
|
|
||||||
|
<p>The main window consists of several areas:</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h3><a href="/manual/en/changelog/">Changelog</a></h3>
|
||||||
|
|
||||||
|
<p>Version history of KST4Contest / PraktiKST.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -169,7 +189,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -72,229 +72,400 @@
|
|||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/installation/">Deutsche Version</a></p>
|
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/installation/">Deutsche Version</a></p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<h2 id="prerequisites" tabindex="-1"><a class="header-anchor" href="#prerequisites">Prerequisites</a></h2>
|
<p>KST4Contest is distributed as a ready-to-run application package for Windows, Linux and macOS. The official release packages do not require a separate Java installation: the required Java runtime is already included.</p>
|
||||||
<p>An resolution of 1200px by 720px is recommended</p>
|
<p>In practical terms, you need a supported operating system, an internet connection and an ON4KST account. That sounds manageable—and usually it is.</p>
|
||||||
<h3 id="on4kst-account" tabindex="-1"><a class="header-anchor" href="#on4kst-account">ON4KST Account</a></h3>
|
<h2 id="requirements" tabindex="-1"><a class="header-anchor" href="#requirements">Requirements</a></h2>
|
||||||
<p>To use the chat, a registered account with the ON4KST chat service is required:</p>
|
<h3 id="on4kst-account" tabindex="-1"><a class="header-anchor" href="#on4kst-account">ON4KST account</a></h3>
|
||||||
|
<p>KST4Contest is an independent client for the ON4KST chat, but it does not replace the corresponding user account.</p>
|
||||||
|
<p>If you do not have an account yet, you can create one on the official ON4KST website:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Register at: <a href="http://www.on4kst.info/chat/register.php">http://www.on4kst.info/chat/register.php</a></li>
|
<li><a href="https://www.on4kst.org/chat/login.php">ON4KST login and registration</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3 id="chat-etiquette" tabindex="-1"><a class="header-anchor" href="#chat-etiquette">Chat Etiquette</a></h3>
|
<p>ON4KST specifies English as the common language for the chat. This also applies when both stations happen to share another language. During contests, the usual amateur radio abbreviations such as <code>pse</code>, <code>agn</code>, <code>qrg</code>, <code>dir</code>, <code>rrr</code>, <code>tnx</code> and <code>73</code> are widely used.</p>
|
||||||
<p>The official language in the ON4KST Chat is <strong>English</strong>. Please use English even when communicating with stations from your own country. Common HAM abbreviations (agn, dir, pse, rrr, tnx, 73 …) are widely used and understood.</p>
|
<p>Using the chat and sending personal messages are covered in the user interface chapter. For the installation, the only thing that matters at this point is that the account works.</p>
|
||||||
<h3 id="personal-messages" tabindex="-1"><a class="header-anchor" href="#personal-messages">Personal Messages</a></h3>
|
<h3 id="screen-size" tabindex="-1"><a class="header-anchor" href="#screen-size">Screen size</a></h3>
|
||||||
<p>To send a private message to another station, always use the following format:</p>
|
<p>A usable screen area of approximately <strong>1200 × 720 pixels</strong> or more is recommended.</p>
|
||||||
<pre><code>/CQ CALLSIGN message text
|
<p>KST4Contest automatically adapts the main window to the available area of the primary screen. The application can therefore also be started on smaller displays. Less space is still less space, however: not all tables, filters and additional information can then be displayed at a useful size at the same time.</p>
|
||||||
</code></pre>
|
<h3 id="java" tabindex="-1"><a class="header-anchor" href="#java">Java</a></h3>
|
||||||
<p>Example: <code>/CQ DL5ASG pse sked 144.205?</code></p>
|
<p>The ready-made packages from the <a href="https://github.com/praktimarc/kst4contest/releases/latest">GitHub Releases</a> do not require a separate Java installation. The required runtime is distributed with KST4Contest.</p>
|
||||||
<p>During heavy chat traffic (5–6 messages per second in a contest), public messages directed at a specific callsign are easily missed. However, KST4Contest also catches such messages if they are accidentally posted publicly (see <a href="Features#catching-personal-messages">Features – PM Catching</a>).</p>
|
<p>A Java development environment is only required if you want to build KST4Contest from source. For the AUR packages <code>kst4contest</code> and <code>kst4contest-git</code>, Java 21 and Maven are handled as build dependencies by the package manager.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="download" tabindex="-1"><a class="header-anchor" href="#download">Download</a></h2>
|
<h2 id="stable%2C-beta-or-nightly%3F" tabindex="-1"><a class="header-anchor" href="#stable%2C-beta-or-nightly%3F">Stable, Beta or Nightly?</a></h2>
|
||||||
<h3 id="windows" tabindex="-1"><a class="header-anchor" href="#windows">Windows</a></h3>
|
<p>KST4Contest is distributed through three development channels:</p>
|
||||||
<p>The latest version can be downloaded as a ZIP file:</p>
|
|
||||||
<p><strong><a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></strong></p>
|
|
||||||
<p>The filename has the format <code>praktiKST-v<version_number>-windows-x64.zip</code>.</p>
|
|
||||||
<h3 id="linux" tabindex="-1"><a class="header-anchor" href="#linux">Linux</a></h3>
|
|
||||||
<p>Multiple package formats are available from the releases page:</p>
|
|
||||||
<p><strong><a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></strong></p>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Format</th>
|
|
||||||
<th>Filename</th>
|
|
||||||
<th>Suitable for</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>AppImage</td>
|
|
||||||
<td><code>KST4Contest-v<version>-linux-x86_64.AppImage</code></td>
|
|
||||||
<td>All distributions</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Debian package</td>
|
|
||||||
<td><code>KST4Contest-v<version>-debian-amd64.deb</code></td>
|
|
||||||
<td>Debian, Ubuntu, Linux Mint, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>RPM package</td>
|
|
||||||
<td><code>KST4Contest-v<version>-fedora-x86_64.rpm</code></td>
|
|
||||||
<td>Fedora, RHEL, openSUSE, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Arch package</td>
|
|
||||||
<td><code>KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst</code></td>
|
|
||||||
<td>Arch Linux, Manjaro, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>AUR</td>
|
|
||||||
<td><code>kst4contest-bin</code> / <code>kst4contest</code> / <code>kst4contest-git</code></td>
|
|
||||||
<td>Arch Linux, Manjaro, EndeavourOS, …</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Flatpak</td>
|
|
||||||
<td><code>de.x08.KST4Contest.flatpakref</code></td>
|
|
||||||
<td>All distributions with Flatpak</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<blockquote>
|
|
||||||
<p><strong>Recommended for Linux:</strong> The Flatpak installation is the easiest way to stay up to date — <code>flatpak update</code> handles all future updates automatically. The repository is GPG-signed for security.</p>
|
|
||||||
</blockquote>
|
|
||||||
<h3 id="macos" tabindex="-1"><a class="header-anchor" href="#macos">macOS</a></h3>
|
|
||||||
<blockquote>
|
|
||||||
<p>⚠️ <strong>Best-Effort Support:</strong> macOS builds are provided as a convenience but are <strong>not fully tested</strong>. We build and release macOS binaries with every release, but we cannot test every scenario on macOS. If you encounter issues, please report them – we will do our best to address them, but cannot guarantee the same level of support as for Windows and Linux.</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>The latest version can be downloaded as a DMG disk image (available for both Apple Silicon and Intel Macs):</p>
|
|
||||||
<p><strong><a href="https://github.com/praktimarc/kst4contest/releases/latest">https://github.com/praktimarc/kst4contest/releases/latest</a></strong></p>
|
|
||||||
<p>The filename has the format <code>KST4Contest-v<version_number>-macos-<arch>.dmg</code>, where <code><arch></code> is <code>arm64</code> (Apple Silicon) or <code>x86_64</code> (Intel).</p>
|
|
||||||
<hr>
|
|
||||||
<h2 id="installation-1" tabindex="-1"><a class="header-anchor" href="#installation-1">Installation</a></h2>
|
|
||||||
<h3 id="windows-1" tabindex="-1"><a class="header-anchor" href="#windows-1">Windows</a></h3>
|
|
||||||
<ol>
|
|
||||||
<li>Download the ZIP file.</li>
|
|
||||||
<li>Unzip the ZIP file into a folder of your choice.</li>
|
|
||||||
<li>Run <code>praktiKST.exe</code>.</li>
|
|
||||||
</ol>
|
|
||||||
<p>Settings are stored at <code>%USERPROFILE%\.praktikst\preferences.xml</code>.</p>
|
|
||||||
<h3 id="linux-1" tabindex="-1"><a class="header-anchor" href="#linux-1">Linux</a></h3>
|
|
||||||
<p>Settings are always stored at <code>~/.praktikst/preferences.xml</code>.</p>
|
|
||||||
<h4 id="appimage" tabindex="-1"><a class="header-anchor" href="#appimage">AppImage</a></h4>
|
|
||||||
<ol>
|
|
||||||
<li>Download the AppImage.</li>
|
|
||||||
<li>Make it executable: <code>chmod +x KST4Contest-v<version>-linux-x86_64.AppImage</code></li>
|
|
||||||
<li>Run it.</li>
|
|
||||||
</ol>
|
|
||||||
<h4 id="debian-%2F-ubuntu" tabindex="-1"><a class="header-anchor" href="#debian-%2F-ubuntu">Debian / Ubuntu</a></h4>
|
|
||||||
<pre><code class="language-bash">sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
|
||||||
</code></pre>
|
|
||||||
<p>Or double-click the <code>.deb</code> file in your file manager.</p>
|
|
||||||
<h4 id="fedora-%2F-rhel" tabindex="-1"><a class="header-anchor" href="#fedora-%2F-rhel">Fedora / RHEL</a></h4>
|
|
||||||
<pre><code class="language-bash">sudo dnf install ./KST4Contest-v<version>-fedora-x86_64.rpm
|
|
||||||
</code></pre>
|
|
||||||
<h4 id="arch-linux" tabindex="-1"><a class="header-anchor" href="#arch-linux">Arch Linux</a></h4>
|
|
||||||
<p><strong>Via AUR (recommended)</strong> — updates automatically with your system:</p>
|
|
||||||
<pre><code class="language-bash">yay -S kst4contest-bin # pre-built binary, fastest install
|
|
||||||
# or
|
|
||||||
yay -S kst4contest # build from source
|
|
||||||
# or
|
|
||||||
yay -S kst4contest-git # always latest git HEAD (1.42+)
|
|
||||||
</code></pre>
|
|
||||||
<p>Any AUR helper works (<code>paru</code>, <code>trizen</code>, etc.). <code>kst4contest-bin</code> is the easiest option since it installs the same pre-built binary as the release download.</p>
|
|
||||||
<p>Or install the release package manually:</p>
|
|
||||||
<pre><code class="language-bash">sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
|
||||||
</code></pre>
|
|
||||||
<h4 id="flatpak" tabindex="-1"><a class="header-anchor" href="#flatpak">Flatpak</a></h4>
|
|
||||||
<p>Download <code>de.x08.KST4Contest.flatpakref</code> from the <a href="https://github.com/praktimarc/kst4contest/releases/latest">latest release</a> and open it, or run:</p>
|
|
||||||
<pre><code class="language-bash">flatpak install de.x08.KST4Contest.flatpakref
|
|
||||||
</code></pre>
|
|
||||||
<p>Or add the remote manually (recommended for nightly/beta access):</p>
|
|
||||||
<pre><code class="language-bash">flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
|
||||||
</code></pre>
|
|
||||||
<h4 id="flatpak-channels-(nightly-%2F-beta-%2F-stable)" tabindex="-1"><a class="header-anchor" href="#flatpak-channels-(nightly-%2F-beta-%2F-stable)">Flatpak Channels (nightly / beta / stable)</a></h4>
|
|
||||||
<p>The Flatpak repository provides three channels, all served from the same remote:</p>
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Channel</th>
|
<th>Channel</th>
|
||||||
<th>Content</th>
|
<th>Intended use</th>
|
||||||
<th>Built on</th>
|
<th>Classification</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>stable</code></td>
|
<td><strong>Stable</strong></td>
|
||||||
<td>Current stable version</td>
|
<td>Normal contest operation</td>
|
||||||
<td>Every normal release tag</td>
|
<td>Published version intended for regular use</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>beta</code></td>
|
<td><strong>Beta</strong></td>
|
||||||
<td>Pre-release version</td>
|
<td>Focused testing before a Stable release</td>
|
||||||
<td>Tags prefixed with <code>beta-</code></td>
|
<td>Pre-release version with a largely defined feature set</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>nightly</code></td>
|
<td><strong>Nightly</strong></td>
|
||||||
<td>Development build (main branch)</td>
|
<td>Early testing of new features</td>
|
||||||
<td>Every push to main / daily</td>
|
<td>Current development state from the <code>main</code> branch</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Add the remote once, then install the channel you want:</p>
|
<p>The <strong>Stable version</strong> is recommended for normal operation.</p>
|
||||||
<pre><code class="language-bash">flatpak remote-add --if-not-exists kst4contest https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
<p>Beta and Nightly builds may contain features that are not yet available in the Stable release. They may also contain unfinished workflows, changed settings or new defects. That is not an unusual failure of the release process; it is the purpose of a development channel.</p>
|
||||||
|
<p>If a function in this manual is explicitly marked as <strong>Nightly</strong>, it is not necessarily part of the current Stable release yet.</p>
|
||||||
# Stable (default)
|
<hr>
|
||||||
flatpak install kst4contest de.x08.KST4Contest
|
<h2 id="download" tabindex="-1"><a class="header-anchor" href="#download">Download</a></h2>
|
||||||
|
<p>The current Stable version is available here:</p>
|
||||||
# Beta
|
<ul>
|
||||||
flatpak install kst4contest de.x08.KST4Contest//beta
|
<li><a href="https://github.com/praktimarc/kst4contest/releases/latest">Latest KST4Contest release</a></li>
|
||||||
|
<li><a href="https://github.com/praktimarc/kst4contest/releases">All published releases</a></li>
|
||||||
# Nightly
|
</ul>
|
||||||
|
<p>The release page contains the application packages as well as the English and German PDF manuals.</p>
|
||||||
|
<h3 id="which-package-do-i-need%3F" tabindex="-1"><a class="header-anchor" href="#which-package-do-i-need%3F">Which package do I need?</a></h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Operating system</th>
|
||||||
|
<th>Package</th>
|
||||||
|
<th>Typical filename</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Windows x64</td>
|
||||||
|
<td>ZIP package</td>
|
||||||
|
<td><code>praktiKST-v<version>-windows-x64.zip</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Linux x86_64</td>
|
||||||
|
<td>AppImage</td>
|
||||||
|
<td><code>KST4Contest-v<version>-linux-x86_64.AppImage</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Debian/Ubuntu amd64</td>
|
||||||
|
<td>DEB package</td>
|
||||||
|
<td><code>KST4Contest-v<version>-debian-amd64.deb</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Fedora/RPM x86_64</td>
|
||||||
|
<td>RPM package</td>
|
||||||
|
<td><code>KST4Contest-v<version>-fedora-x86_64.rpm</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Arch Linux x86_64</td>
|
||||||
|
<td>Arch package</td>
|
||||||
|
<td><code>KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Linux with Flatpak</td>
|
||||||
|
<td>Flatpak reference</td>
|
||||||
|
<td><code>de.x08.KST4Contest.flatpakref</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>macOS Apple Silicon</td>
|
||||||
|
<td>DMG for ARM64</td>
|
||||||
|
<td><code>KST4Contest-v<version>-macos-arm64.dmg</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>macOS Intel</td>
|
||||||
|
<td>DMG for x86_64</td>
|
||||||
|
<td><code>KST4Contest-v<version>-macos-x86_64.dmg</code></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>Only download application packages from the official GitHub Releases, the KST4Contest Flatpak repository or the linked AUR packages. Files from other sources may have been built differently, may be outdated or may have been modified.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="installing-on-windows" tabindex="-1"><a class="header-anchor" href="#installing-on-windows">Installing on Windows</a></h2>
|
||||||
|
<p>KST4Contest is distributed as a ZIP package for Windows. A conventional installer is not required.</p>
|
||||||
|
<ol>
|
||||||
|
<li>Download <code>praktiKST-v<version>-windows-x64.zip</code> from the latest release.</li>
|
||||||
|
<li>Extract the ZIP file completely into a dedicated folder.</li>
|
||||||
|
<li>Open the extracted folder.</li>
|
||||||
|
<li>Start <code>praktiKST.exe</code>.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Do not start the application directly from the compressed ZIP file. KST4Contest consists of several files and a bundled runtime. Windows can only use this structure reliably after the archive has been extracted completely.</p>
|
||||||
|
<p>The application settings are not stored in the extracted program directory. They are stored in your user profile:</p>
|
||||||
|
<pre><code class="language-text">%USERPROFILE%\.praktiKST\preferences.xml
|
||||||
|
</code></pre>
|
||||||
|
<p>This allows a new application version to be extracted into a different directory without losing the existing settings.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="installing-on-linux" tabindex="-1"><a class="header-anchor" href="#installing-on-linux">Installing on Linux</a></h2>
|
||||||
|
<p>Several Linux package formats are available. The appropriate choice depends less on KST4Contest itself than on your distribution and the way you prefer to manage updates.</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Installation method</th>
|
||||||
|
<th>Useful when …</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><strong>Flatpak</strong></td>
|
||||||
|
<td>updates should be managed centrally and Flatpak is already in use</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>AppImage</strong></td>
|
||||||
|
<td>KST4Contest should run as a portable file without package installation</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>DEB/RPM</strong></td>
|
||||||
|
<td>the distribution’s native package manager should be used</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><strong>Arch package/AUR</strong></td>
|
||||||
|
<td>Arch Linux, Manjaro or EndeavourOS is being used</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<h3 id="flatpak" tabindex="-1"><a class="header-anchor" href="#flatpak">Flatpak</a></h3>
|
||||||
|
<p>For most Linux users, Flatpak is the simplest way to keep KST4Contest installed and manageable through the system’s update tools. The KST4Contest repository is GPG-signed and contains the Stable, Beta and Nightly channels.</p>
|
||||||
|
<h4 id="installing-stable-from-the-release-file" tabindex="-1"><a class="header-anchor" href="#installing-stable-from-the-release-file">Installing Stable from the release file</a></h4>
|
||||||
|
<p>Download <code>de.x08.KST4Contest.flatpakref</code> from the latest release and open it with the software manager provided by your desktop environment.</p>
|
||||||
|
<p>Alternatively, install it from a terminal:</p>
|
||||||
|
<pre><code class="language-bash">flatpak install ./de.x08.KST4Contest.flatpakref
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="adding-the-kst4contest-repository" tabindex="-1"><a class="header-anchor" href="#adding-the-kst4contest-repository">Adding the KST4Contest repository</a></h4>
|
||||||
|
<p>The repository only needs to be added once:</p>
|
||||||
|
<pre><code class="language-bash">flatpak remote-add --if-not-exists kst4contest \
|
||||||
|
https://praktimarc.github.io/kst4contest/kst4contest.flatpakrepo
|
||||||
|
</code></pre>
|
||||||
|
<p>You can then install the Stable version:</p>
|
||||||
|
<pre><code class="language-bash">flatpak install kst4contest de.x08.KST4Contest//stable
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="installing-beta" tabindex="-1"><a class="header-anchor" href="#installing-beta">Installing Beta</a></h4>
|
||||||
|
<pre><code class="language-bash">flatpak install kst4contest de.x08.KST4Contest//beta
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="installing-nightly" tabindex="-1"><a class="header-anchor" href="#installing-nightly">Installing Nightly</a></h4>
|
||||||
|
<pre><code class="language-bash">flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
|
</code></pre>
|
||||||
|
<p>All three KST4Contest channels use the same application ID. Installing multiple KST4Contest channels in parallel is therefore not supported.</p>
|
||||||
|
<p>For example, to switch from Stable to Nightly:</p>
|
||||||
|
<pre><code class="language-bash">flatpak uninstall de.x08.KST4Contest//stable
|
||||||
flatpak install kst4contest de.x08.KST4Contest//nightly
|
flatpak install kst4contest de.x08.KST4Contest//nightly
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
<p>This does not automatically remove the personal settings stored in <code>~/.praktiKST</code>.</p>
|
||||||
|
<p>Installed Flatpak applications can be updated with:</p>
|
||||||
|
<pre><code class="language-bash">flatpak update de.x08.KST4Contest
|
||||||
|
</code></pre>
|
||||||
|
<p>Depending on the desktop environment, the graphical software manager may also display or automatically install available Flatpak updates. The <code>flatpak update</code> command itself performs an update; it does not promise to turn up and run by itself one day.</p>
|
||||||
|
<h3 id="appimage" tabindex="-1"><a class="header-anchor" href="#appimage">AppImage</a></h3>
|
||||||
|
<p>The AppImage does not require a conventional installation.</p>
|
||||||
|
<ol>
|
||||||
|
<li>Download <code>KST4Contest-v<version>-linux-x86_64.AppImage</code>.</li>
|
||||||
|
<li>Open a terminal in the download directory.</li>
|
||||||
|
<li>Make the file executable:</li>
|
||||||
|
</ol>
|
||||||
|
<pre><code class="language-bash">chmod +x KST4Contest-v<version>-linux-x86_64.AppImage
|
||||||
|
</code></pre>
|
||||||
|
<ol start="4">
|
||||||
|
<li>Start KST4Contest:</li>
|
||||||
|
</ol>
|
||||||
|
<pre><code class="language-bash">./KST4Contest-v<version>-linux-x86_64.AppImage
|
||||||
|
</code></pre>
|
||||||
|
<p>The AppImage can then be moved to another location, such as <code>~/Applications</code>.</p>
|
||||||
|
<h3 id="debian-and-ubuntu" tabindex="-1"><a class="header-anchor" href="#debian-and-ubuntu">Debian and Ubuntu</a></h3>
|
||||||
|
<p>Install the DEB package with:</p>
|
||||||
|
<pre><code class="language-bash">sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
||||||
|
</code></pre>
|
||||||
|
<p>Alternatively, open the file with a graphical package manager.</p>
|
||||||
|
<h3 id="fedora-and-compatible-rpm-systems" tabindex="-1"><a class="header-anchor" href="#fedora-and-compatible-rpm-systems">Fedora and compatible RPM systems</a></h3>
|
||||||
|
<p>Install the RPM package with:</p>
|
||||||
|
<pre><code class="language-bash">sudo dnf install ./KST4Contest-v<version>-fedora-x86_64.rpm
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="arch-linux%3A-installing-the-release-package" tabindex="-1"><a class="header-anchor" href="#arch-linux%3A-installing-the-release-package">Arch Linux: installing the release package</a></h3>
|
||||||
|
<p>The Arch package downloaded from the GitHub Release can be installed directly:</p>
|
||||||
|
<pre><code class="language-bash">sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="arch-linux%3A-installing-from-the-aur" tabindex="-1"><a class="header-anchor" href="#arch-linux%3A-installing-from-the-aur">Arch Linux: installing from the AUR</a></h3>
|
||||||
|
<p>Three variants are available in the AUR:</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Package</th>
|
||||||
|
<th>Content</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://aur.archlinux.org/packages/kst4contest-bin"><code>kst4contest-bin</code></a></td>
|
||||||
|
<td>Pre-built package from the current Stable release</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://aur.archlinux.org/packages/kst4contest"><code>kst4contest</code></a></td>
|
||||||
|
<td>Stable release built locally from source</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://aur.archlinux.org/packages/kst4contest-git"><code>kst4contest-git</code></a></td>
|
||||||
|
<td>Current development state from the <code>main</code> branch</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>For most users, <code>kst4contest-bin</code> is the straightforward option:</p>
|
||||||
|
<pre><code class="language-bash">yay -S kst4contest-bin
|
||||||
|
</code></pre>
|
||||||
|
<p>To build the Stable release from source:</p>
|
||||||
|
<pre><code class="language-bash">yay -S kst4contest
|
||||||
|
</code></pre>
|
||||||
|
<p>To build the current development state:</p>
|
||||||
|
<pre><code class="language-bash">yay -S kst4contest-git
|
||||||
|
</code></pre>
|
||||||
|
<p>All three packages provide the same application and are therefore defined as conflicting with one another. Install only one variant at a time.</p>
|
||||||
|
<p>AUR updates are included when the selected AUR helper checks for package updates, for example:</p>
|
||||||
|
<pre><code class="language-bash">yay -Syu
|
||||||
|
</code></pre>
|
||||||
|
<p>They do not happen automatically merely because the package came from the AUR.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="installing-on-macos" tabindex="-1"><a class="header-anchor" href="#installing-on-macos">Installing on macOS</a></h2>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p><strong>Note:</strong> Flatpak only allows one installed version per App-ID at a time. To switch channels, uninstall the current version first:</p>
|
<p><strong>Best-effort support:</strong> The macOS packages are built together with the other releases, but they are not tested to the same extent as the Windows and Linux versions. Feedback is welcome; fully tested support for every macOS version and hardware variant cannot currently be guaranteed.</p>
|
||||||
<pre><code class="language-bash">flatpak uninstall de.x08.KST4Contest
|
|
||||||
flatpak install kst4contest de.x08.KST4Contest//nightly
|
|
||||||
</code></pre>
|
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>Updates work as usual with <code>flatpak update</code>.</p>
|
<p>Apple Silicon Macs require the package marked <code>arm64</code>. Intel Macs require the package marked <code>x86_64</code>.</p>
|
||||||
<p>The <code>flatpakref</code> files for beta and stable are attached to their respective <a href="https://github.com/praktimarc/kst4contest/releases">GitHub Releases</a>. The nightly <code>flatpakref</code> (<code>de.x08.KST4Contest.nightly.flatpakref</code>) is available as an artifact on the <a href="https://github.com/praktimarc/kst4contest/actions">GitHub Actions</a> tab (kept for 14 days) — for nightly builds, the manual remote approach above is usually more convenient.</p>
|
|
||||||
<h3 id="macos-1" tabindex="-1"><a class="header-anchor" href="#macos-1">macOS</a></h3>
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Download the DMG file for your architecture (Apple Silicon or Intel).</li>
|
<li>Download the appropriate DMG file.</li>
|
||||||
<li>Open the DMG file.</li>
|
<li>Open the DMG file.</li>
|
||||||
<li>Drag <code>KST4Contest.app</code> into your <strong>Applications</strong> folder.</li>
|
<li>Drag <code>KST4Contest.app</code> into the <strong>Applications</strong> folder.</li>
|
||||||
<li>On first launch, macOS may show a warning because the app is not notarised. To open it:
|
<li>Start KST4Contest from the Applications folder or Launchpad.</li>
|
||||||
<ul>
|
|
||||||
<li>Right-click (or Control-click) on <code>KST4Contest.app</code> in Finder and choose <strong>Open</strong>.</li>
|
|
||||||
<li>Alternatively, go to <strong>System Settings → Privacy & Security</strong> and click <strong>Open Anyway</strong>.</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>Run KST4Contest from your Applications folder or Launchpad.</li>
|
|
||||||
</ol>
|
</ol>
|
||||||
<p>Settings are stored at <code>~/.praktikst/preferences.xml</code>.</p>
|
<p>The application is not currently notarized by Apple. macOS may therefore block the first launch.</p>
|
||||||
|
<p>If the application came from the official GitHub Release:</p>
|
||||||
|
<ol>
|
||||||
|
<li>Open the Applications folder in Finder.</li>
|
||||||
|
<li>Right-click or Control-click <code>KST4Contest.app</code>.</li>
|
||||||
|
<li>Select <strong>Open</strong>.</li>
|
||||||
|
<li>Confirm the launch in the dialog that appears.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Alternatively, macOS may provide an <strong>Open Anyway</strong> button under <strong>System Settings → Privacy & Security</strong>.</p>
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="updating" tabindex="-1"><a class="header-anchor" href="#updating">Updating</a></h2>
|
<h2 id="where-are-the-settings-stored%3F" tabindex="-1"><a class="header-anchor" href="#where-are-the-settings-stored%3F">Where are the settings stored?</a></h2>
|
||||||
<p>KST4Contest includes an <strong>automatic update notification service</strong>: as soon as a new version is available, a window will appear at startup with:</p>
|
<p>KST4Contest stores its settings and other local working files in the user’s home directory. The application directory and the data directory are separate.</p>
|
||||||
<ul>
|
<table>
|
||||||
<li>information that a new version is available,</li>
|
<thead>
|
||||||
<li>a changelog,</li>
|
<tr>
|
||||||
<li>the download link for the new version.</li>
|
<th>Operating system</th>
|
||||||
</ul>
|
<th>Data directory</th>
|
||||||
<p><img src="update_window.png" alt="Example Update Window"></p>
|
<th>Settings file</th>
|
||||||
<h3 id="update-process" tabindex="-1"><a class="header-anchor" href="#update-process">Update Process</a></h3>
|
</tr>
|
||||||
<h4 id="windows-2" tabindex="-1"><a class="header-anchor" href="#windows-2">Windows</a></h4>
|
</thead>
|
||||||
<p>Currently, there is only one way to update:</p>
|
<tbody>
|
||||||
<ol>
|
<tr>
|
||||||
<li>Delete the old folder.</li>
|
<td>Windows</td>
|
||||||
<li>Unzip the new ZIP file.</li>
|
<td><code>%USERPROFILE%\.praktiKST\</code></td>
|
||||||
</ol>
|
<td><code>%USERPROFILE%\.praktiKST\preferences.xml</code></td>
|
||||||
<p>The settings file (<code>preferences.xml</code>) is preserved because it is stored in the user folder, not the program folder.</p>
|
</tr>
|
||||||
<h4 id="linux-2" tabindex="-1"><a class="header-anchor" href="#linux-2">Linux</a></h4>
|
<tr>
|
||||||
<ul>
|
<td>Linux</td>
|
||||||
<li><strong>AppImage</strong>: Download the new AppImage, make it executable (<code>chmod +x</code>), optionally delete the old one.</li>
|
<td><code>~/.praktiKST/</code></td>
|
||||||
<li><strong>Debian/Ubuntu</strong>: <code>sudo apt install ./KST4Contest-v<version>-debian-amd64.deb</code></li>
|
<td><code>~/.praktiKST/preferences.xml</code></td>
|
||||||
<li><strong>Fedora/RHEL</strong>: <code>sudo dnf upgrade ./KST4Contest-v<version>-fedora-x86_64.rpm</code></li>
|
</tr>
|
||||||
<li><strong>Arch Linux (AUR)</strong>: <code>yay -S kst4contest-bin</code></li>
|
<tr>
|
||||||
<li><strong>Arch Linux (manual)</strong>: <code>sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst</code></li>
|
<td>macOS</td>
|
||||||
<li><strong>Flatpak (repository)</strong>: <code>flatpak update</code> – updates all Flatpak apps including KST4Contest.</li>
|
<td><code>~/.praktiKST/</code></td>
|
||||||
</ul>
|
<td><code>~/.praktiKST/preferences.xml</code></td>
|
||||||
<h4 id="macos-2" tabindex="-1"><a class="header-anchor" href="#macos-2">macOS</a></h4>
|
</tr>
|
||||||
<ol>
|
</tbody>
|
||||||
<li>Download the new DMG file.</li>
|
</table>
|
||||||
<li>Open the DMG.</li>
|
<p>Note the spelling <code>.praktiKST</code> with an uppercase <code>KST</code>. Linux and macOS distinguish between uppercase and lowercase letters. <code>.praktikst</code> would simply be a different directory.</p>
|
||||||
<li>Drag the new <code>KST4Contest.app</code> into your <strong>Applications</strong> folder, replacing the old version.</li>
|
<p>An application update does not remove this directory. Even so, creating a backup before a major version change or extensive configuration work is sensible.</p>
|
||||||
</ol>
|
|
||||||
<hr>
|
<hr>
|
||||||
<h2 id="known-issues-at-startup" tabindex="-1"><a class="header-anchor" href="#known-issues-at-startup">Known Issues at Startup</a></h2>
|
<h2 id="updates" tabindex="-1"><a class="header-anchor" href="#updates">Updates</a></h2>
|
||||||
<h3 id="norton-360" tabindex="-1"><a class="header-anchor" href="#norton-360">Norton 360</a></h3>
|
<p>When KST4Contest starts, it checks whether a newer Stable release is available. If it finds one, it displays an information window containing:</p>
|
||||||
<p>Norton 360 classifies <code>praktiKST.exe</code> as dangerous (false positive). An exception must be created for the file:</p>
|
<ul>
|
||||||
|
<li>the installed version,</li>
|
||||||
|
<li>the latest Stable version,</li>
|
||||||
|
<li>a short overview of the main changes,</li>
|
||||||
|
<li>the changelog,</li>
|
||||||
|
<li>known issues,</li>
|
||||||
|
<li>a link to the corresponding GitHub Release page.</li>
|
||||||
|
</ul>
|
||||||
|
<p><img src="/manual/assets/update_window.png" alt="KST4Contest update notification"></p>
|
||||||
|
<p>The update checker does not install anything. It reports the new version and opens the platform-neutral release page. From there, you must select the appropriate package for Windows, Linux or macOS.</p>
|
||||||
|
<h3 id="updating-windows" tabindex="-1"><a class="header-anchor" href="#updating-windows">Updating Windows</a></h3>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Open Norton 360.</li>
|
<li>Close KST4Contest.</li>
|
||||||
<li>Security → History → Find the corresponding event.</li>
|
<li>Download the new Windows ZIP package.</li>
|
||||||
<li>Select “Restore & Add Exception”.</li>
|
<li>Extract it into a new or empty directory.</li>
|
||||||
|
<li>Start the new version.</li>
|
||||||
|
<li>Check that the existing settings have been loaded.</li>
|
||||||
|
<li>Remove the old application directory only after that.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p><em>(Reported by PE0WGA, Franz van Velzen – thank you!)</em></p>
|
<p>The settings are preserved because they are stored under <code>%USERPROFILE%\.praktiKST</code>, not in the application directory.</p>
|
||||||
|
<h3 id="updating-an-appimage" tabindex="-1"><a class="header-anchor" href="#updating-an-appimage">Updating an AppImage</a></h3>
|
||||||
|
<ol>
|
||||||
|
<li>Download the new AppImage.</li>
|
||||||
|
<li>Make it executable.</li>
|
||||||
|
<li>Start the new file.</li>
|
||||||
|
<li>Remove the previous AppImage only after the new version works.</li>
|
||||||
|
</ol>
|
||||||
|
<h3 id="updating-debian-and-ubuntu" tabindex="-1"><a class="header-anchor" href="#updating-debian-and-ubuntu">Updating Debian and Ubuntu</a></h3>
|
||||||
|
<pre><code class="language-bash">sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="updating-fedora" tabindex="-1"><a class="header-anchor" href="#updating-fedora">Updating Fedora</a></h3>
|
||||||
|
<pre><code class="language-bash">sudo dnf upgrade ./KST4Contest-v<version>-fedora-x86_64.rpm
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="updating-the-arch-package" tabindex="-1"><a class="header-anchor" href="#updating-the-arch-package">Updating the Arch package</a></h3>
|
||||||
|
<pre><code class="language-bash">sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="updating-an-aur-package" tabindex="-1"><a class="header-anchor" href="#updating-an-aur-package">Updating an AUR package</a></h3>
|
||||||
|
<p>Update the installed package through the selected AUR helper, for example:</p>
|
||||||
|
<pre><code class="language-bash">yay -Syu
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="updating-flatpak" tabindex="-1"><a class="header-anchor" href="#updating-flatpak">Updating Flatpak</a></h3>
|
||||||
|
<pre><code class="language-bash">flatpak update de.x08.KST4Contest
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="updating-macos" tabindex="-1"><a class="header-anchor" href="#updating-macos">Updating macOS</a></h3>
|
||||||
|
<ol>
|
||||||
|
<li>Download the new DMG file for the appropriate architecture.</li>
|
||||||
|
<li>Close KST4Contest.</li>
|
||||||
|
<li>Open the DMG file.</li>
|
||||||
|
<li>Replace <code>KST4Contest.app</code> in the Applications folder.</li>
|
||||||
|
<li>Start the new version and check the existing settings.</li>
|
||||||
|
</ol>
|
||||||
|
<p>The configuration under <code>~/.praktiKST</code> is not affected.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="problems-during-the-first-launch" tabindex="-1"><a class="header-anchor" href="#problems-during-the-first-launch">Problems during the first launch</a></h2>
|
||||||
|
<h3 id="windows-reports-an-unknown-application" tabindex="-1"><a class="header-anchor" href="#windows-reports-an-unknown-application">Windows reports an unknown application</a></h3>
|
||||||
|
<p>KST4Contest is not currently signed with a commercial Windows code-signing certificate. Windows or an additional security product may therefore warn about an unknown or rarely downloaded application.</p>
|
||||||
|
<p>Check the following first:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Did the file come from the <a href="https://github.com/praktimarc/kst4contest/releases/latest">official KST4Contest release</a>?</li>
|
||||||
|
<li>Does the filename match the published release?</li>
|
||||||
|
<li>Was the file downloaded completely?</li>
|
||||||
|
<li>Does the security product report a specific detection name or only a general reputation warning?</li>
|
||||||
|
</ul>
|
||||||
|
<p>A warning alone is neither reliable proof of malware nor automatically a false positive. If the origin of the file is unclear, do not run it or restore it from quarantine.</p>
|
||||||
|
<p>Some users have reported quarantine messages from Norton 360 in particular. If the warning can be reproduced, please create a <a href="https://github.com/praktimarc/kst4contest/issues">GitHub issue</a> and include:</p>
|
||||||
|
<ul>
|
||||||
|
<li>the KST4Contest version,</li>
|
||||||
|
<li>the complete filename,</li>
|
||||||
|
<li>the security product and its version,</li>
|
||||||
|
<li>the reported detection name,</li>
|
||||||
|
<li>a screenshot of the warning, if possible.</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="the-appimage-does-not-start" tabindex="-1"><a class="header-anchor" href="#the-appimage-does-not-start">The AppImage does not start</a></h3>
|
||||||
|
<p>Check the executable permission first:</p>
|
||||||
|
<pre><code class="language-bash">chmod +x KST4Contest-v<version>-linux-x86_64.AppImage
|
||||||
|
</code></pre>
|
||||||
|
<p>Then start the file from a terminal. Error messages shown there are usually more useful than a double-click that simply produces no visible result.</p>
|
||||||
|
<h3 id="macos-blocks-the-application" tabindex="-1"><a class="header-anchor" href="#macos-blocks-the-application">macOS blocks the application</a></h3>
|
||||||
|
<p>Use the <strong>Open</strong> function described under <a href="#installing-on-macos">Installing on macOS</a>. Before doing so, verify that the DMG file came from the official GitHub Release.</p>
|
||||||
|
<h3 id="the-problem-remains" tabindex="-1"><a class="header-anchor" href="#the-problem-remains">The problem remains</a></h3>
|
||||||
|
<p>First check whether the problem has already been reported under <a href="https://github.com/praktimarc/kst4contest/issues">GitHub Issues</a>. If it has not, create a new issue containing:</p>
|
||||||
|
<ul>
|
||||||
|
<li>the operating system and version,</li>
|
||||||
|
<li>the KST4Contest version,</li>
|
||||||
|
<li>the installation method,</li>
|
||||||
|
<li>the exact error message,</li>
|
||||||
|
<li>the steps required to reproduce the problem.</li>
|
||||||
|
</ul>
|
||||||
|
<p>“It does not work” usually describes the situation accurately, but it is of limited value during diagnosis.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section></main>
|
</section></main>
|
||||||
@@ -303,7 +474,7 @@ flatpak install kst4contest de.x08.KST4Contest//nightly
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -67,14 +67,14 @@
|
|||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="card manual-content">
|
<div class="card manual-content">
|
||||||
<p><a href="/manual/en/">← Back to manual overview</a></p>
|
<p><a href="/manual/en/">← Back to manual overview</a></p>
|
||||||
<h1>Log Sync</h1>
|
<h1>Log Synchronisation</h1>
|
||||||
<h1 id="log-synchronisation" tabindex="-1"><a class="header-anchor" href="#log-synchronisation">Log Synchronisation</a></h1>
|
<h1 id="log-synchronisation" tabindex="-1"><a class="header-anchor" href="#log-synchronisation">Log Synchronisation</a></h1>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/log-synchronisation/">Deutsche Version</a></p>
|
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/log-synchronisation/">Deutsche Version</a></p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>KST4Contest automatically marks worked stations in the chat user list. Two basic methods are available:</p>
|
<p>KST4Contest automatically marks worked stations in the chat user list. Two basic methods are available:</p>
|
||||||
<hr>
|
<hr>
|
||||||
<p><img src="client_settings_window_logsync.png" alt="Log Sync Settings Window"></p>
|
<p><img src="/manual/assets/client_settings_window_logsync.png" alt="Log Sync Settings Window"></p>
|
||||||
<h2 id="method-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)" tabindex="-1"><a class="header-anchor" href="#method-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)">Method 1: Universal File Based Callsign Interpreter (Simplelogfile)</a></h2>
|
<h2 id="method-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)" tabindex="-1"><a class="header-anchor" href="#method-1%3A-universal-file-based-callsign-interpreter-(simplelogfile)">Method 1: Universal File Based Callsign Interpreter (Simplelogfile)</a></h2>
|
||||||
<p>KST4Contest reads a log file and searches for callsign patterns using a regular expression. Binary log files are also supported – unreadable binary content is simply ignored.</p>
|
<p>KST4Contest reads a log file and searches for callsign patterns using a regular expression. Binary log files are also supported – unreadable binary content is simply ignored.</p>
|
||||||
<p><strong>Advantage</strong>: Works with almost any logging program that writes a file.
|
<p><strong>Advantage</strong>: Works with almost any logging program that writes a file.
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<h2 id="supported-logging-software" tabindex="-1"><a class="header-anchor" href="#supported-logging-software">Supported Logging Software</a></h2>
|
<h2 id="supported-logging-software" tabindex="-1"><a class="header-anchor" href="#supported-logging-software">Supported Logging Software</a></h2>
|
||||||
<h3 id="ucxlog-(dl7ucx)" tabindex="-1"><a class="header-anchor" href="#ucxlog-(dl7ucx)">UCXLog (DL7UCX)</a></h3>
|
<h3 id="ucxlog-(dl7ucx)" tabindex="-1"><a class="header-anchor" href="#ucxlog-(dl7ucx)">UCXLog (DL7UCX)</a></h3>
|
||||||
<p><img src="ucxlog_logsync.png" alt="UCXLog Configuration"></p>
|
<p><img src="/manual/assets/ucxlog_logsync.png" alt="UCXLog Configuration"></p>
|
||||||
<p>UCXLog sends QSO UDP packets and transceiver frequency packets.</p>
|
<p>UCXLog sends QSO UDP packets and transceiver frequency packets.</p>
|
||||||
<p><strong>Settings in UCXLog:</strong></p>
|
<p><strong>Settings in UCXLog:</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
<p>Note the green-highlighted fields in the UCXLog settings: IP and port must be filled in.</p>
|
<p>Note the green-highlighted fields in the UCXLog settings: IP and port must be filled in.</p>
|
||||||
<p>Note for multi-setup (2 computers, 2 radios, one KST4Contest instance): Both logging programs must send QSO packets to the IP of the KST4Contest computer. In this case, at least one IP is not <code>127.0.0.1</code>.</p>
|
<p>Note for multi-setup (2 computers, 2 radios, one KST4Contest instance): Both logging programs must send QSO packets to the IP of the KST4Contest computer. In this case, at least one IP is not <code>127.0.0.1</code>.</p>
|
||||||
<h3 id="qartest-(ik3qar)" tabindex="-1"><a class="header-anchor" href="#qartest-(ik3qar)">QARTest (IK3QAR)</a></h3>
|
<h3 id="qartest-(ik3qar)" tabindex="-1"><a class="header-anchor" href="#qartest-(ik3qar)">QARTest (IK3QAR)</a></h3>
|
||||||
<p><img src="qartest_logsync.png" alt="QARTest Configuration"></p>
|
<p><img src="/manual/assets/qartest_logsync.png" alt="QARTest Configuration"></p>
|
||||||
<p><strong>Special feature</strong>: QARTest can send the <strong>complete log</strong> to KST4Contest (button “Invia log completo” in the QARTest settings). This means QSOs logged before KST4Contest was started are also captured.</p>
|
<p><strong>Special feature</strong>: QARTest can send the <strong>complete log</strong> to KST4Contest (button “Invia log completo” in the QARTest settings). This means QSOs logged before KST4Contest was started are also captured.</p>
|
||||||
<p><strong>Settings in QARTest:</strong></p>
|
<p><strong>Settings in QARTest:</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<p>For the built-in DX cluster server: configure N1MM+ as a DX cluster client (server: <code>127.0.0.1</code>, port as set in KST4Contest).</p>
|
<p>For the built-in DX cluster server: configure N1MM+ as a DX cluster client (server: <code>127.0.0.1</code>, port as set in KST4Contest).</p>
|
||||||
<h3 id="dxlog.net" tabindex="-1"><a class="header-anchor" href="#dxlog.net"><a href="http://DXLog.net">DXLog.net</a></a></h3>
|
<h3 id="dxlog.net" tabindex="-1"><a class="header-anchor" href="#dxlog.net"><a href="http://DXLog.net">DXLog.net</a></a></h3>
|
||||||
<p><img src="dxlog_net_logsync.png" alt="DXLog.net Configuration"></p>
|
<p><img src="/manual/assets/dxlog_net_logsync.png" alt="DXLog.net Configuration"></p>
|
||||||
<p><strong>Settings in <a href="http://DXLog.net">DXLog.net</a>:</strong></p>
|
<p><strong>Settings in <a href="http://DXLog.net">DXLog.net</a>:</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Enable UDP broadcast</li>
|
<li>Enable UDP broadcast</li>
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<h2 id="trx-frequency-synchronisation" tabindex="-1"><a class="header-anchor" href="#trx-frequency-synchronisation">TRX Frequency Synchronisation</a></h2>
|
<h2 id="trx-frequency-synchronisation" tabindex="-1"><a class="header-anchor" href="#trx-frequency-synchronisation">TRX Frequency Synchronisation</a></h2>
|
||||||
<p>In addition to QSO synchronisation, UCXLog and other programs also transmit the <strong>current transceiver frequency</strong> via UDP. KST4Contest processes this information and makes it available as the <code>MYQRG</code> variable.</p>
|
<p>In addition to QSO synchronisation, UCXLog and other programs also transmit the <strong>current transceiver frequency</strong> via UDP. KST4Contest processes this information and makes it available as the <code>MYQRG</code> variable.</p>
|
||||||
<p><img src="qrg_buttons.png" alt="Frequency Buttons"></p>
|
<p><img src="/manual/assets/qrg_buttons.png" alt="Frequency Buttons"></p>
|
||||||
<p><strong>Result</strong>: Your own QRG never needs to be typed manually in the chat – clicking the MYQRG button or using the variable in the beacon is sufficient.</p>
|
<p><strong>Result</strong>: Your own QRG never needs to be typed manually in the chat – clicking the MYQRG button or using the variable in the beacon is sufficient.</p>
|
||||||
<p><strong>Sources for your own QRG (MYQRG):</strong></p>
|
<p><strong>Sources for your own QRG (MYQRG):</strong></p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -202,7 +202,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Online manual for KST4Contest, the contest-optimized ON4KST chat client.">
|
<meta name="twitter:description" content="Online manual for KST4Contest, the contest-optimized ON4KST chat client.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>Hotfix Version 1.41.1</title>
|
<title>Hotfix Version 1.41.1</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest is a contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta name="description" content="KST4Contest connects ON4KST chat, candidate selection, sked planning and station software for VHF, UHF and SHF contest operation.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-08-hotfix-version-1-41-1/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-08-hotfix-version-1-41-1/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="Hotfix Version 1.41.1">
|
<meta property="og:title" content="Hotfix Version 1.41.1">
|
||||||
<meta property="og:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta property="og:description" content="ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-08-hotfix-version-1-41-1/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-08-hotfix-version-1-41-1/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Hotfix Version 1.41.1">
|
<meta name="twitter:title" content="Hotfix Version 1.41.1">
|
||||||
<meta name="twitter:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta name="twitter:description" content="ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>AUR Packages now live of kst4contest</title>
|
<title>AUR Packages now live of kst4contest</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest is a contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta name="description" content="KST4Contest connects ON4KST chat, candidate selection, sked planning and station software for VHF, UHF and SHF contest operation.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-15-AUR-Packages/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-15-AUR-Packages/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="AUR Packages now live of kst4contest">
|
<meta property="og:title" content="AUR Packages now live of kst4contest">
|
||||||
<meta property="og:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta property="og:description" content="ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-15-AUR-Packages/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-15-AUR-Packages/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="AUR Packages now live of kst4contest">
|
<meta name="twitter:title" content="AUR Packages now live of kst4contest">
|
||||||
<meta name="twitter:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta name="twitter:description" content="ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>KST4Contest Website Launch</title>
|
<title>KST4Contest Website Launch</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="KST4Contest is a contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta name="description" content="KST4Contest connects ON4KST chat, candidate selection, sked planning and station software for VHF, UHF and SHF contest operation.">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-website-launch/">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-website-launch/">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="KST4Contest Website Launch">
|
<meta property="og:title" content="KST4Contest Website Launch">
|
||||||
<meta property="og:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta property="og:description" content="ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-website-launch/">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-website-launch/">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="KST4Contest Website Launch">
|
<meta name="twitter:title" content="KST4Contest Website Launch">
|
||||||
<meta name="twitter:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
|
<meta name="twitter:description" content="ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="News, release updates and development notes for KST4Contest.">
|
<meta name="twitter:description" content="News, release updates and development notes for KST4Contest.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Privacy policy for the KST4Contest website.">
|
<meta name="twitter:description" content="Privacy policy for the KST4Contest website.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Planned enhancements for upcoming KST4Contest versions, generated from GitHub milestones and issues.">
|
<meta name="twitter:description" content="Planned enhancements for upcoming KST4Contest versions, generated from GitHub milestones and issues.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -86,6 +86,14 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/praktimarc/kst4contest/issues/66">[REFACTORING] B+ opportunity</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/praktimarc/kst4contest/issues/65">[FEATURE] Priority boost on B+</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/praktimarc/kst4contest/issues/52">[FEATURE] center horizontal slider</a>
|
<a href="https://github.com/praktimarc/kst4contest/issues/52">[FEATURE] center horizontal slider</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -153,14 +161,6 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="https://github.com/praktimarc/kst4contest/issues/66">[REFACTORING] B+ opportunity</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="https://github.com/praktimarc/kst4contest/issues/65">[FEATURE] Priority boost on B+</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/praktimarc/kst4contest/issues/62">Organizational enhacement: Test coverage for all features</a>
|
<a href="https://github.com/praktimarc/kst4contest/issues/62">Organizational enhacement: Test coverage for all features</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -241,7 +241,7 @@ href="/support/">
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Screenshots of KST4Contest, the contest-optimized ON4KST chat client for VHF, UHF and SHF operators.">
|
<meta name="twitter:description" content="Screenshots of KST4Contest, the contest-optimized ON4KST chat client for VHF, UHF and SHF operators.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -14,94 +14,94 @@
|
|||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/about/</loc>
|
<loc>https://kst4contest.hamradioonline.de/about/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/contact/</loc>
|
<loc>https://kst4contest.hamradioonline.de/contact/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/download/</loc>
|
<loc>https://kst4contest.hamradioonline.de/download/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/faq/</loc>
|
<loc>https://kst4contest.hamradioonline.de/faq/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/airscout/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/airscout/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/dual-chat/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/dual-chat/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/dx-cluster/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/dx-cluster/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/log-sync/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/log-sync/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/macros/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/macros/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/priority-score/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/priority-score/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/sked-reminder/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/sked-reminder/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/features/timeline/</loc>
|
<loc>https://kst4contest.hamradioonline.de/features/timeline/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/</loc>
|
<loc>https://kst4contest.hamradioonline.de/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/legal-notice/</loc>
|
<loc>https://kst4contest.hamradioonline.de/legal-notice/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/manual/de/airscout-integration/</loc>
|
<loc>https://kst4contest.hamradioonline.de/manual/de/home/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/manual/de/</loc>
|
<loc>https://kst4contest.hamradioonline.de/manual/de/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/manual/en/</loc>
|
<loc>https://kst4contest.hamradioonline.de/manual/en/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/manual/</loc>
|
<loc>https://kst4contest.hamradioonline.de/manual/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/privacy/</loc>
|
<loc>https://kst4contest.hamradioonline.de/privacy/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/roadmap/</loc>
|
<loc>https://kst4contest.hamradioonline.de/roadmap/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/screenshots/</loc>
|
<loc>https://kst4contest.hamradioonline.de/screenshots/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://kst4contest.hamradioonline.de/support/</loc>
|
<loc>https://kst4contest.hamradioonline.de/support/</loc>
|
||||||
<lastmod>2026-07-16</lastmod>
|
<lastmod>2026-07-21</lastmod>
|
||||||
</url>
|
</url>
|
||||||
</urlset>
|
</urlset>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<meta name="twitter:description" content="Help support the ongoing development of KST4Contest.">
|
<meta name="twitter:description" content="Help support the ongoing development of KST4Contest.">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=1784239128010">
|
<link rel="stylesheet" href="/assets/css/main.css?v=1784595000789">
|
||||||
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -239,7 +239,7 @@ rel="noopener">
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -1,31 +1,69 @@
|
|||||||
const REPO = "praktimarc/kst4contest";
|
const REPO = "praktimarc/kst4contest";
|
||||||
const API = `https://api.github.com/repos/${REPO}`;
|
const API = `https://api.github.com/repos/${REPO}`;
|
||||||
const FALLBACK_TAG = "v1.41.1";
|
const LATEST_RELEASE_URL = `https://github.com/${REPO}/releases/latest`;
|
||||||
|
|
||||||
async function fetchLatestReleaseTag() {
|
async function fetchLatestReleaseTag() {
|
||||||
const headers = { Accept: "application/vnd.github+json" };
|
const headers = { Accept: "application/vnd.github+json" };
|
||||||
|
|
||||||
if (process.env.GITHUB_TOKEN) {
|
if (process.env.GITHUB_TOKEN) {
|
||||||
headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`;
|
headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`${API}/releases/latest`, { headers });
|
const res = await fetch(`${API}/releases/latest`, { headers });
|
||||||
|
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
throw new Error(`GitHub API /releases/latest failed: ${res.status}`);
|
throw new Error(
|
||||||
|
`GitHub API /releases/latest failed: ${res.status}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const release = await res.json();
|
const release = await res.json();
|
||||||
return release.tag_name || FALLBACK_TAG;
|
|
||||||
|
if (!release.tag_name) {
|
||||||
|
throw new Error(
|
||||||
|
"GitHub API response did not contain a release tag"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return release.tag_name;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn(`[downloads] Could not load latest release tag, falling back to ${FALLBACK_TAG}: ${err.message}`);
|
console.warn(
|
||||||
return FALLBACK_TAG;
|
`[downloads] Could not load the latest release tag. ` +
|
||||||
|
`Download buttons will open the latest release page instead: ${err.message}`
|
||||||
|
);
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Builds the download list from the latest GitHub release tag so it never
|
/**
|
||||||
// drifts out of sync with what tagged-release.yml actually published.
|
* Creates a direct link to an asset from the latest Stable release.
|
||||||
|
*
|
||||||
|
* If the GitHub API was unavailable during the build, the function deliberately
|
||||||
|
* returns the generic latest-release page instead of using a hard-coded and
|
||||||
|
* increasingly outdated fallback version.
|
||||||
|
*/
|
||||||
|
function createAssetUrl(latestTag, filenameTemplate) {
|
||||||
|
if (!latestTag) {
|
||||||
|
return LATEST_RELEASE_URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const filename = filenameTemplate.replace(/\{tag\}/g, latestTag);
|
||||||
|
|
||||||
|
return `https://github.com/${REPO}/releases/download/${latestTag}/${filename}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the download list from the latest Stable GitHub release.
|
||||||
|
*
|
||||||
|
* The filenames must remain aligned with the artifacts produced by
|
||||||
|
* .github/workflows/tagged-release.yml.
|
||||||
|
*/
|
||||||
module.exports = async function () {
|
module.exports = async function () {
|
||||||
const latestTag = await fetchLatestReleaseTag();
|
const latestTag = await fetchLatestReleaseTag();
|
||||||
const base = `https://github.com/${REPO}/releases/download/${latestTag}`;
|
const assetUrl = (filenameTemplate) =>
|
||||||
|
createAssetUrl(latestTag, filenameTemplate);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
@@ -33,80 +71,82 @@ module.exports = async function () {
|
|||||||
format: "ZIP x64",
|
format: "ZIP x64",
|
||||||
icon: "🪟",
|
icon: "🪟",
|
||||||
recommended: true,
|
recommended: true,
|
||||||
note: "Best choice for most Windows users.",
|
note: "Extract the complete archive, then start praktiKST.exe. No separate Java installation is required.",
|
||||||
url: `${base}/praktiKST-${latestTag}-windows-x64.zip`
|
url: assetUrl("praktiKST-{tag}-windows-x64.zip")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Linux",
|
os: "Linux",
|
||||||
format: "Flatpak (.flatpakref)",
|
format: "Flatpak (.flatpakref)",
|
||||||
icon: "🐧",
|
icon: "🐧",
|
||||||
recommended: true,
|
recommended: true,
|
||||||
note: "Recommended for most Linux users. Open the file with GNOME Software / Discover, or run: flatpak install de.x08.KST4Contest.flatpakref",
|
note: "Installs through Flatpak and can be updated through Flatpak or the desktop software centre.",
|
||||||
url: `${base}/de.x08.KST4Contest.flatpakref`
|
url: assetUrl("de.x08.KST4Contest.flatpakref")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Linux",
|
os: "Linux",
|
||||||
format: "AppImage x86_64",
|
format: "AppImage x86_64",
|
||||||
icon: "🐧",
|
icon: "🐧",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "Portable Linux build without package installation.",
|
note: "Portable build without package installation. Make the downloaded file executable before the first launch.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-linux-x86_64.AppImage`
|
url: assetUrl("KST4Contest-{tag}-linux-x86_64.AppImage")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Debian / Ubuntu",
|
os: "Debian / Ubuntu",
|
||||||
format: "DEB amd64",
|
format: "DEB amd64",
|
||||||
icon: "📦",
|
icon: "📦",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "Native package for Debian and Ubuntu based systems.",
|
note: "Native package for Debian, Ubuntu and distributions based on them.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-debian-amd64.deb`
|
url: assetUrl("KST4Contest-{tag}-debian-amd64.deb")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Fedora",
|
os: "Fedora",
|
||||||
format: "RPM x86_64",
|
format: "RPM x86_64",
|
||||||
icon: "📦",
|
icon: "📦",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "Native package for Fedora/RPM based systems.",
|
note: "Native package built for Fedora and compatible RPM-based systems.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-fedora-x86_64.rpm`
|
url: assetUrl("KST4Contest-{tag}-fedora-x86_64.rpm")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Arch Linux",
|
os: "Arch Linux",
|
||||||
format: "pkg.tar.zst",
|
format: "pkg.tar.zst",
|
||||||
icon: "📦",
|
icon: "📦",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "Package build for Arch Linux users.",
|
note: "Release package for direct installation with pacman. AUR alternatives are described in the installation guide.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-archlinux-x86_64.pkg.tar.zst`
|
url: assetUrl(
|
||||||
|
"KST4Contest-{tag}-archlinux-x86_64.pkg.tar.zst"
|
||||||
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "macOS Apple Silicon",
|
os: "macOS Apple Silicon",
|
||||||
format: "DMG arm64",
|
format: "DMG arm64",
|
||||||
icon: "🍎",
|
icon: "🍎",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "For Apple Silicon Macs.",
|
note: "Best-effort build for Apple Silicon Macs. The application is not currently notarized by Apple.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-macos-arm64.dmg`
|
url: assetUrl("KST4Contest-{tag}-macos-arm64.dmg")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "macOS Intel",
|
os: "macOS Intel",
|
||||||
format: "DMG x86_64",
|
format: "DMG x86_64",
|
||||||
icon: "🍎",
|
icon: "🍎",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "For Intel-based Macs.",
|
note: "Best-effort build for Intel Macs. The application is not currently notarized by Apple.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-macos-x86_64.dmg`
|
url: assetUrl("KST4Contest-{tag}-macos-x86_64.dmg")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Manual English",
|
os: "Manual English",
|
||||||
format: "PDF",
|
format: "PDF",
|
||||||
icon: "📘",
|
icon: "📘",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "English PDF manual.",
|
note: "English PDF manual included with the Stable release.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-manual-en.pdf`
|
url: assetUrl("KST4Contest-{tag}-manual-en.pdf")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
os: "Manual German",
|
os: "Manual German",
|
||||||
format: "PDF",
|
format: "PDF",
|
||||||
icon: "📘",
|
icon: "📘",
|
||||||
recommended: false,
|
recommended: false,
|
||||||
note: "German PDF manual.",
|
note: "German PDF manual included with the Stable release.",
|
||||||
url: `${base}/KST4Contest-${latestTag}-manual-de.pdf`
|
url: assetUrl("KST4Contest-{tag}-manual-de.pdf")
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -30,6 +30,13 @@ function toAppVersionNumber(tag) {
|
|||||||
return /^0*$/.test(patch) ? `${major}.${minor}` : `${major}.${minor}${patch}`;
|
return /^0*$/.test(patch) ? `${major}.${minor}` : `${major}.${minor}${patch}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toSemanticVersion(tag) {
|
||||||
|
return tag
|
||||||
|
.replace(/^v/, "")
|
||||||
|
.split("-")[0]
|
||||||
|
.split("+")[0];
|
||||||
|
}
|
||||||
|
|
||||||
function escapeXml(value) {
|
function escapeXml(value) {
|
||||||
return String(value ?? "")
|
return String(value ?? "")
|
||||||
.replace(/&/g, "&")
|
.replace(/&/g, "&")
|
||||||
@@ -126,16 +133,34 @@ module.exports = async function () {
|
|||||||
parts.push("<praktiKST>");
|
parts.push("<praktiKST>");
|
||||||
|
|
||||||
const latestTag = stable ? stable.tagName : null;
|
const latestTag = stable ? stable.tagName : null;
|
||||||
const winFilename = latestTag ? `praktiKST-${latestTag}-windows-x64.zip` : "";
|
|
||||||
|
|
||||||
parts.push(" <latestVersion>");
|
parts.push(" <latestVersion>");
|
||||||
if (stable) {
|
if (stable) {
|
||||||
const latestIssues = await getIssuesForRelease("1970-01-01T00:00:00Z", stable.publishedAt);
|
const latestIssues = await getIssuesForRelease(
|
||||||
parts.push(` <versionNumber>${escapeXml(toAppVersionNumber(latestTag))}</versionNumber>`);
|
"1970-01-01T00:00:00Z",
|
||||||
parts.push(" <adminMessage></adminMessage>");
|
stable.publishedAt
|
||||||
parts.push(` <majorChanges>${escapeXml(latestIssues.added.slice(0, 300))}</majorChanges>`);
|
);
|
||||||
|
|
||||||
|
// Kept for application versions that still expect the old numeric format.
|
||||||
parts.push(
|
parts.push(
|
||||||
` <latestVersionPathOnWebserver>https://github.com/${REPO}/releases/download/${latestTag}/${winFilename}</latestVersionPathOnWebserver>`
|
` <versionNumber>${escapeXml(toAppVersionNumber(latestTag))}</versionNumber>`
|
||||||
|
);
|
||||||
|
|
||||||
|
// Used by current application versions for correct semantic comparison
|
||||||
|
// and display, for example 1.41.1 instead of 1.411.
|
||||||
|
parts.push(
|
||||||
|
` <semanticVersion>${escapeXml(toSemanticVersion(latestTag))}</semanticVersion>`
|
||||||
|
);
|
||||||
|
|
||||||
|
parts.push(" <adminMessage></adminMessage>");
|
||||||
|
parts.push(
|
||||||
|
` <majorChanges>${escapeXml(latestIssues.added.slice(0, 300))}</majorChanges>`
|
||||||
|
);
|
||||||
|
|
||||||
|
// The release page is deliberately platform-neutral. The application
|
||||||
|
// cannot know whether the user needs Windows, Linux or macOS packages.
|
||||||
|
parts.push(
|
||||||
|
` <latestVersionPathOnWebserver>https://github.com/${REPO}/releases/tag/${latestTag}</latestVersionPathOnWebserver>`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
parts.push(" </latestVersion>");
|
parts.push(" </latestVersion>");
|
||||||
@@ -158,7 +183,8 @@ module.exports = async function () {
|
|||||||
const issues = await getIssuesForRelease(since, until);
|
const issues = await getIssuesForRelease(since, until);
|
||||||
|
|
||||||
parts.push(" <changeLog>");
|
parts.push(" <changeLog>");
|
||||||
parts.push(` <changedVersionNumber>${escapeXml(toAppVersionNumber(rel.tagName))}</changedVersionNumber>`);
|
|
||||||
|
parts.push(` <changedVersionNumber>${escapeXml(toSemanticVersion(rel.tagName))}</changedVersionNumber>`);
|
||||||
parts.push(` <date>${escapeXml(until.slice(0, 10))}</date>`);
|
parts.push(` <date>${escapeXml(until.slice(0, 10))}</date>`);
|
||||||
parts.push(` <description>${escapeXml(rel.name)}</description>`);
|
parts.push(` <description>${escapeXml(rel.name)}</description>`);
|
||||||
parts.push(` <added>${escapeXml(issues.added)}</added>`);
|
parts.push(` <added>${escapeXml(issues.added)}</added>`);
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<title>{{ title or "KST4Contest" }}</title>
|
<title>{{ title or "KST4Contest" }}</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#08110b">
|
<meta name="theme-color" content="#08110b">
|
||||||
<meta name="description" content="{{ description or 'KST4Contest is a contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.' }}">
|
<meta name="description" content="{{ description or 'KST4Contest connects ON4KST chat, candidate selection, sked planning and station software for VHF, UHF and SHF contest operation.' }}">
|
||||||
<link rel="canonical" href="https://kst4contest.hamradioonline.de{{ page.url }}">
|
<link rel="canonical" href="https://kst4contest.hamradioonline.de{{ page.url }}">
|
||||||
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:title" content="{{ title or 'KST4Contest' }}">
|
<meta property="og:title" content="{{ title or 'KST4Contest' }}">
|
||||||
<meta property="og:description" content="{{ description or 'Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.' }}">
|
<meta property="og:description" content="{{ description or 'ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.' }}">
|
||||||
<meta property="og:url" content="https://kst4contest.hamradioonline.de{{ page.url }}">
|
<meta property="og:url" content="https://kst4contest.hamradioonline.de{{ page.url }}">
|
||||||
<meta property="og:site_name" content="KST4Contest">
|
<meta property="og:site_name" content="KST4Contest">
|
||||||
<meta property="og:locale" content="en_GB">
|
<meta property="og:locale" content="en_GB">
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="{{ title or 'KST4Contest' }}">
|
<meta name="twitter:title" content="{{ title or 'KST4Contest' }}">
|
||||||
<meta name="twitter:description" content="{{ description or 'Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.' }}">
|
<meta name="twitter:description" content="{{ description or 'ON4KST chat, candidate selection, sked planning and station software in one VHF, UHF and SHF contest workflow.' }}">
|
||||||
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v={{ build.version }}">
|
<link rel="stylesheet" href="/assets/css/main.css?v={{ build.version }}">
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<div class="footer-grid">
|
<div class="footer-grid">
|
||||||
<div>
|
<div>
|
||||||
<strong>KST4Contest</strong>
|
<strong>KST4Contest</strong>
|
||||||
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
|
<p>ON4KST chat, candidate selection and sked planning for VHF, UHF and SHF contest operation.</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<strong>Project</strong>
|
<strong>Project</strong>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
---
|
---
|
||||||
layout: base.njk
|
layout: base.njk
|
||||||
title: Download KST4Contest
|
title: Download KST4Contest
|
||||||
description: Download KST4Contest releases for Windows, Linux and macOS.
|
description: Download the latest stable KST4Contest packages for Windows, Linux and macOS. The required Java runtime is included.
|
||||||
---
|
---
|
||||||
|
|
||||||
<section class="hero">
|
<section class="hero">
|
||||||
<p class="badge">Download</p>
|
<p class="badge">Stable release</p>
|
||||||
<h1>Get KST4Contest</h1>
|
<h1>Download KST4Contest</h1>
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
Choose the package for your operating system. Official builds are published through GitHub Releases.
|
Choose the package for your operating system. Official builds are published through GitHub Releases,
|
||||||
|
and the required Java runtime is already included.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
@@ -19,8 +20,8 @@ description: Download KST4Contest releases for Windows, Linux and macOS.
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="eyebrow">Recommended downloads</p>
|
<p class="eyebrow">Packages by platform</p>
|
||||||
<h2>Pick your platform</h2>
|
<h2>Choose the format that fits your system</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
@@ -29,7 +30,7 @@ description: Download KST4Contest releases for Windows, Linux and macOS.
|
|||||||
<div class="feature-icon">{{ item.icon }}</div>
|
<div class="feature-icon">{{ item.icon }}</div>
|
||||||
|
|
||||||
{% if item.recommended %}
|
{% if item.recommended %}
|
||||||
<p class="badge">Recommended</p>
|
<p class="badge">Default choice</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h3>{{ item.os }}</h3>
|
<h3>{{ item.os }}</h3>
|
||||||
@@ -44,44 +45,36 @@ description: Download KST4Contest releases for Windows, Linux and macOS.
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="cta-panel">
|
<div class="cta-panel">
|
||||||
<p class="eyebrow">Not sure?</p>
|
<p class="eyebrow">Choosing a package</p>
|
||||||
<h2>Which file should I use?</h2>
|
<h2>Which file should I use?</h2>
|
||||||
<p>
|
<p>
|
||||||
Windows users usually want the ZIP package. Linux users are best served by the Flatpak,
|
Windows users normally need the x64 ZIP package. On Linux, Flatpak is the practical choice when
|
||||||
which auto-updates and works across distributions; the AppImage or a native DEB/RPM/Arch
|
updates should be managed through the desktop software centre or the Flatpak command line. The
|
||||||
package are alternatives if preferred. The PDF manuals are attached to the same GitHub release.
|
AppImage is useful when a portable file is preferred, while DEB, RPM and Arch packages integrate
|
||||||
|
with their respective package managers.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
macOS packages are provided for Apple Silicon and Intel systems on a best-effort basis. They are
|
||||||
|
not currently notarized by Apple. The installation guide covers the first launch, updates, the
|
||||||
|
Stable, Beta and Nightly channels, and the location of the settings directory.
|
||||||
</p>
|
</p>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<a class="button" href="/manual/en/installation/">Installation guide</a>
|
<a class="button" href="/manual/en/installation/">Read the installation guide</a>
|
||||||
<a class="button secondary" href="/faq/">FAQ</a>
|
<a class="button secondary" href="/faq/">Open the FAQ</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
|
<div class="card content-card">
|
||||||
<div class="card content-card">
|
<h2>Development and infrastructure</h2>
|
||||||
|
<p>
|
||||||
<h2>Enjoying KST4Contest?</h2>
|
KST4Contest is developed independently. If it is useful in your contest workflow and you want to
|
||||||
|
help cover continued development, testing and infrastructure costs, the support page explains
|
||||||
<p>
|
what project contributions are used for.
|
||||||
|
</p>
|
||||||
If KST4Contest makes contesting easier for you,
|
<div class="actions">
|
||||||
please consider supporting future development.
|
<a class="button" href="/support/">Support the project</a>
|
||||||
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="actions">
|
|
||||||
|
|
||||||
<a class="button"
|
|
||||||
href="/support/">
|
|
||||||
|
|
||||||
❤️ Support Development
|
|
||||||
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -3,8 +3,8 @@ title: AirScout Integration
|
|||||||
icon: ✈️
|
icon: ✈️
|
||||||
category: Aircraft Scatter
|
category: Aircraft Scatter
|
||||||
since: "1.26"
|
since: "1.26"
|
||||||
summary: Use aircraft scatter awareness directly inside your ON4KST contest workflow.
|
summary: Use AirScout AP predictions in candidate evaluation, the timeline and sked planning.
|
||||||
description: AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.
|
description: KST4Contest receives aircraft scatter information from AirScout and relates AP timing to active ON4KST stations.
|
||||||
tagsList:
|
tagsList:
|
||||||
- AirScout
|
- AirScout
|
||||||
- airplane scatter
|
- airplane scatter
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: Dual Chat Categories
|
|||||||
icon: 💬
|
icon: 💬
|
||||||
category: ON4KST Chat
|
category: ON4KST Chat
|
||||||
since: "1.26"
|
since: "1.26"
|
||||||
summary: Operate in two ON4KST categories at once, for example VHF/UHF and microwave.
|
summary: Log in to two ON4KST categories and handle both message streams in one station list and interface.
|
||||||
description: Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.
|
description: KST4Contest combines two ON4KST chat categories while retaining the category required for messages and station context.
|
||||||
tagsList:
|
tagsList:
|
||||||
- ON4KST
|
- ON4KST
|
||||||
- dual chat
|
- dual chat
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: DXCluster Server
|
|||||||
icon: 📡
|
icon: 📡
|
||||||
category: Radio Workflow
|
category: Radio Workflow
|
||||||
since: "1.23"
|
since: "1.23"
|
||||||
summary: Use DXCluster information as part of the wider contest operating workflow.
|
summary: Send direction warnings as DX Cluster spots to compatible logging software when a usable QRG is known.
|
||||||
description: KST4Contest includes DXCluster functionality to support situational awareness during contest operation.
|
description: The built-in DX Cluster server forwards KST4Contest direction warnings and known frequency information to compatible contest loggers.
|
||||||
tagsList:
|
tagsList:
|
||||||
- DXCluster
|
- DXCluster
|
||||||
- ham radio
|
- ham radio
|
||||||
@@ -14,6 +14,7 @@ related:
|
|||||||
- priority-score
|
- priority-score
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
## More situational awareness
|
## More situational awareness
|
||||||
|
|
||||||
DXCluster information can support contest operators by adding another source of activity information.
|
DXCluster information can support contest operators by adding another source of activity information.
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: Log Synchronization
|
|||||||
icon: 🔄
|
icon: 🔄
|
||||||
category: Logger Integration
|
category: Logger Integration
|
||||||
since: "1.31"
|
since: "1.31"
|
||||||
summary: Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.
|
summary: Import worked stations and current frequencies from supported contest loggers so filters and band information follow the log.
|
||||||
description: Log synchronization helps KST4Contest understand worked stations, active bands and contest context.
|
description: KST4Contest receives worked-station and, where supported, frequency data from UCXLog, N1MM+, QARTest, DXLog.net and Win-Test through file and UDP interfaces.
|
||||||
tagsList:
|
tagsList:
|
||||||
- Win-Test
|
- Win-Test
|
||||||
- UCXLog
|
- UCXLog
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: Macros and Variables
|
|||||||
icon: ⚡
|
icon: ⚡
|
||||||
category: Operator Speed
|
category: Operator Speed
|
||||||
since: "1.0"
|
since: "1.0"
|
||||||
summary: Send recurring contest messages faster with configurable macros and variables.
|
summary: Build recurring chat messages from configurable text blocks and variables such as the current QRG or locator.
|
||||||
description: Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.
|
description: KST4Contest macros combine reusable message text with values taken from the current station, frequency and operating context.
|
||||||
tagsList:
|
tagsList:
|
||||||
- macros
|
- macros
|
||||||
- ON4KST
|
- ON4KST
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: Priority Score System
|
|||||||
icon: 🎯
|
icon: 🎯
|
||||||
category: Contest Workflow
|
category: Contest Workflow
|
||||||
since: "1.40"
|
since: "1.40"
|
||||||
summary: Find the most promising stations faster using contest-aware candidate scoring.
|
summary: Rank active stations from known context such as direction, activity, band, QRG, AP and sked information.
|
||||||
description: KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.
|
description: The Priority Score System combines available contest information to populate a separate list of currently relevant candidates.
|
||||||
tagsList:
|
tagsList:
|
||||||
- ON4KST
|
- ON4KST
|
||||||
- VHF
|
- VHF
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: Sked Reminder
|
|||||||
icon: 🔔
|
icon: 🔔
|
||||||
category: Sked Management
|
category: Sked Management
|
||||||
since: "1.40"
|
since: "1.40"
|
||||||
summary: Keep scheduled contacts visible and avoid missing time-critical skeds.
|
summary: Store planned contacts and issue configurable chat messages plus local alerts before the agreed time.
|
||||||
description: KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.
|
description: Sked Reminder keeps scheduled contacts visible and provides automatic advance messages together with acoustic and visual operator alerts.
|
||||||
tagsList:
|
tagsList:
|
||||||
- sked
|
- sked
|
||||||
- ON4KST
|
- ON4KST
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ title: Timeline View
|
|||||||
icon: ⏱️
|
icon: ⏱️
|
||||||
category: Contest Awareness
|
category: Contest Awareness
|
||||||
since: "1.40"
|
since: "1.40"
|
||||||
summary: See upcoming AP windows and candidate timing in a compact contest timeline.
|
summary: Show AP-based priority candidates and scheduled contacts on a shared timeline.
|
||||||
description: The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.
|
description: The Timeline View places upcoming aircraft scatter candidates and planned skeds into a common time-based overview.
|
||||||
tagsList:
|
tagsList:
|
||||||
- timeline
|
- timeline
|
||||||
- AP windows
|
- AP windows
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: base.njk
|
layout: base.njk
|
||||||
title: KST4Contest – Contest-Optimized ON4KST Chat Client
|
title: KST4Contest – ON4KST Contest Client for VHF, UHF and SHF
|
||||||
description: KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.
|
description: KST4Contest combines ON4KST chat, candidate prioritisation, sked planning, AirScout data and logger integration in one desktop client.
|
||||||
heroFx: true
|
heroFx: true
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -10,25 +10,32 @@ heroFx: true
|
|||||||
<div class="hero-fx-vignette" aria-hidden="true"></div>
|
<div class="hero-fx-vignette" aria-hidden="true"></div>
|
||||||
|
|
||||||
<div class="hero-copy">
|
<div class="hero-copy">
|
||||||
<p class="badge">The contest-optimized ON4KST client</p>
|
<p class="badge">ON4KST contest workflow for 144 MHz and above</p>
|
||||||
<h1>KST4Contest</h1>
|
<h1>KST4Contest</h1>
|
||||||
|
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
Work smarter. Make more QSOs. KST4Contest brings priority candidates,
|
ON4KST shows you the traffic. KST4Contest helps turn it into an operating
|
||||||
AirScout workflow, sked reminders, dual chat categories and log synchronization
|
decision by combining chat, candidate prioritisation, sked planning,
|
||||||
into one contest-focused ON4KST client.
|
AirScout data and logger integration in one desktop client.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The available information is filtered, related to active stations and
|
||||||
|
presented in a contest-oriented workflow. The final decision still
|
||||||
|
belongs to the operator.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<a class="button" href="/download/">Download KST4Contest</a>
|
<a class="button" href="/download/">Download KST4Contest</a>
|
||||||
<a class="button secondary" href="https://github.com/praktimarc/kst4contest">View on GitHub</a>
|
<a class="button secondary" href="/manual/">Read the manual</a>
|
||||||
<a class="button ghost" href="/manual/">Read manual</a>
|
<a class="button ghost" href="https://github.com/praktimarc/kst4contest">View source code</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="hero-panel">
|
<div class="hero-panel">
|
||||||
<div class="terminal-bar">
|
<div class="terminal-bar">
|
||||||
<span></span><span></span><span></span>
|
<span></span><span></span><span></span>
|
||||||
<strong>KST4Contest workflow</strong>
|
<strong>Functions sharing the same station context</strong>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mock-grid">
|
<div class="mock-grid">
|
||||||
@@ -46,21 +53,63 @@ heroFx: true
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="eyebrow">Powerful features</p>
|
<p class="eyebrow">The operating problem</p>
|
||||||
<h2>Everything you need for contest success</h2>
|
<h2>The useful station is rarely the only station in the chat</h2>
|
||||||
<p>
|
<p>
|
||||||
Every feature is designed to reduce operator workload and improve decision speed during real contest operation.
|
During an active contest, messages, sked requests, frequency information
|
||||||
|
and band changes arrive continuously. The task is to identify which part
|
||||||
|
of that traffic matters now, which candidate should be monitored and
|
||||||
|
which contact is better scheduled for later.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
{% for feature in collections.features %}
|
<article class="card">
|
||||||
|
<h3>Observe</h3>
|
||||||
|
<p>
|
||||||
|
Messages, locators, detected frequencies and known band activity are
|
||||||
|
assigned to stations across as many as two ON4KST chat categories.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<article class="card">
|
||||||
|
<h3>Evaluate</h3>
|
||||||
|
<p>
|
||||||
|
Direction, distance, worked status, NOT-QRV information, chat activity,
|
||||||
|
sked context and aircraft scatter data feed filters and candidate scores.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<article class="card">
|
||||||
|
<h3>Act</h3>
|
||||||
|
<p>
|
||||||
|
Candidates can be contacted, scheduled or monitored. Skeds remain
|
||||||
|
visible, while supported loggers and station interfaces receive the
|
||||||
|
information required for the next operating step.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section">
|
||||||
|
<div class="section-heading">
|
||||||
|
<p class="eyebrow">Functions</p>
|
||||||
|
<h2>One workflow, shared context</h2>
|
||||||
|
<p>
|
||||||
|
The individual functions are not isolated tools. They use the same
|
||||||
|
station, message, band and timing information, so that a change in one
|
||||||
|
part of the workflow can also affect filters, priorities and reminders.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
{% for feature in collections.sortedFeatures %}
|
||||||
<article class="card feature-card">
|
<article class="card feature-card">
|
||||||
<div class="feature-icon">{{ feature.data.icon }}</div>
|
<div class="feature-icon">{{ feature.data.icon }}</div>
|
||||||
<p class="eyebrow">{{ feature.data.category }}</p>
|
<p class="eyebrow">{{ feature.data.category }}</p>
|
||||||
<h3><a href="{{ feature.url }}">{{ feature.data.title }}</a></h3>
|
<h3><a href="{{ feature.url }}">{{ feature.data.title }}</a></h3>
|
||||||
<p>{{ feature.data.summary }}</p>
|
<p>{{ feature.data.summary }}</p>
|
||||||
<a href="{{ feature.url }}">Learn more →</a>
|
<a href="{{ feature.url }}">Read how it works →</a>
|
||||||
</article>
|
</article>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
@@ -68,29 +117,52 @@ heroFx: true
|
|||||||
|
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="cta-panel">
|
<div class="cta-panel">
|
||||||
<p class="eyebrow">Open Source</p>
|
<p class="eyebrow">Limits</p>
|
||||||
<h2>Built by contesters for contesters.</h2>
|
<h2>A priority score is not a propagation forecast</h2>
|
||||||
<p>
|
<p>
|
||||||
KST4Contest is developed around real VHF/UHF/SHF contest workflows:
|
KST4Contest can only evaluate the information it knows. Scores, AP
|
||||||
ON4KST chat, aircraft scatter, skeds, logging and fast operator decisions.
|
windows, filters and path profiles support the operator's decision; they
|
||||||
|
do not guarantee a contact. If the input data is incomplete or outdated,
|
||||||
|
the result can be incomplete or outdated as well.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<a class="button" href="/download/">Download KST4Contest</a>
|
<a class="button" href="/features/">Explore the functions</a>
|
||||||
<a class="button secondary" href="/features/">Explore features</a>
|
<a class="button secondary" href="/manual/">Read the technical details</a>
|
||||||
<a class="button ghost" href="/support/">❤️ Support development</a>
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section">
|
||||||
|
<div class="cta-panel">
|
||||||
|
<p class="eyebrow">Project status</p>
|
||||||
|
<h2>Stable for operation, Nightly for testing</h2>
|
||||||
|
<p>
|
||||||
|
KST4Contest is open-source software. The current stable release is the
|
||||||
|
normal choice for contest operation. Nightly builds follow ongoing
|
||||||
|
development and are useful when a particular fix or feature needs
|
||||||
|
testing. A few minutes before a contest is not the ideal time to discover
|
||||||
|
what changed.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="actions">
|
||||||
|
<a class="button" href="/download/">Download the stable release</a>
|
||||||
|
<a class="button secondary" href="/roadmap/">Development status</a>
|
||||||
|
<a class="button ghost" href="/support/">Support development</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">
|
||||||
{
|
{
|
||||||
"@context":"https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type":"SoftwareApplication",
|
"@type": "SoftwareApplication",
|
||||||
"name":"KST4Contest",
|
"name": "KST4Contest",
|
||||||
"applicationCategory":"CommunicationApplication",
|
"applicationCategory": "CommunicationApplication",
|
||||||
"operatingSystem":"Windows, Linux, macOS",
|
"operatingSystem": "Windows, Linux, macOS",
|
||||||
"url":"https://kst4contest.hamradioonline.de",
|
"url": "https://kst4contest.hamradioonline.de/",
|
||||||
"downloadUrl":"https://github.com/praktimarc/kst4contest/releases",
|
"downloadUrl": "https://github.com/praktimarc/kst4contest/releases/latest",
|
||||||
"description":"Contest-optimized ON4KST client for VHF, UHF and SHF amateur radio contests."
|
"description": "KST4Contest combines ON4KST chat, candidate prioritisation, sked planning, AirScout data and logger integration for VHF, UHF and SHF contest operation.",
|
||||||
|
"license": "https://github.com/praktimarc/kst4contest/blob/main/LICENSE"
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -15,7 +15,9 @@ description: Deutsches Benutzerhandbuch für KST4Contest.
|
|||||||
{% if manual.lang == "de" %}
|
{% if manual.lang == "de" %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/de/{{ manual.slug }}/">{{ manual.title }}</a></h3>
|
<h3><a href="/manual/de/{{ manual.slug }}/">{{ manual.title }}</a></h3>
|
||||||
<p>Handbuchseite „{{ manual.title }}“ öffnen.</p>
|
{% if manual.summary %}
|
||||||
|
<p>{{ manual.summary }}</p>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ description: English user manual for KST4Contest.
|
|||||||
{% if manual.lang == "en" %}
|
{% if manual.lang == "en" %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3><a href="/manual/en/{{ manual.slug }}/">{{ manual.title }}</a></h3>
|
<h3><a href="/manual/en/{{ manual.slug }}/">{{ manual.title }}</a></h3>
|
||||||
<p>Open the {{ manual.title }} manual page.</p>
|
{% if manual.summary %}
|
||||||
|
<p>{{ manual.summary }}</p>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||