Harden beacon sessions and mark automatic messages

This commit is contained in:
Marc Froehlich committed 2026-11-14 19:18:25 +01:00
1 parent 19bcdb428d
commit f13fe54fde
63 files changed
+1905 -252

No files matched your search

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 53 KiB

+2 -2
View File
@@ -565,7 +565,7 @@ Bei einer ungünstigen Aufteilung sollten zuerst die Divider und Spaltenbreiten
## Tipps zur Bedienung
- **Beacon schnell schalten**: Die Aktivierung ist im geöffneten Einstellungsfenster je Kategorie möglich. Ein Klick auf den Status-Chip **MyBeacon** schaltet alle derzeit nutzbaren Beacons gemeinsam ein oder aus.
- **Beacon schnell schalten**: Die Aktivierung ist im geöffneten Einstellungsfenster je Kategorie möglich. Ein Klick auf den Status-Chip **MyBeacon** schaltet alle derzeit nutzbaren Beacons gemeinsam ein oder aus. **off** hat rote Schrift, **1/2** und **on** sind grün, bei gemeldeter Aktivität blitzt der Chip orange. **FAILED** bleibt rot mit weißer Schrift. Der Tooltip nennt den Zustand oder letzten Abschaltgrund je Kategorie.
- **Rechtsklick in der Benutzerliste**: Öffnet das Snippet-Menü und weitere Aktionen (QRZ.com-Profil, NOT-QRV-Tags setzen).
- **Enter aus dem Chat heraus**: Wenn im Sendfeld Text steht, sendet Enter direkt – auch wenn der Fokus woanders liegt.
- **Beacon stoppen**: Beim Scannen von Frequenzen den Beacon ausschalten, damit der Chat nicht mit Meldungen überflutet wird.
- **Beacon nach dem Start prüfen**: Nach einem Programmstart oder Profilwechsel sind beide Beacons ausgeschaltet. Ein normaler ON4KST-Reconnect innerhalb derselben Programmsitzung verändert ihren Zustand nicht.
+4
View File
@@ -40,6 +40,10 @@ Mehrere Operateure an einem Rechner können jetzt eigene Rufzeichen, Locators un
### Geändert
- **Automatische Chatmeldungen eindeutig markiert:** Allgemeine und QRG-bezogene Autoantworten, `//VER`-Antworten sowie beide Beacons enden jetzt mit ` *a*`. Das bestehende Präfix `[KST4C Automsg]` der Autoantworten bleibt erhalten. Der aufgelöste Beacon-Inhalt bleibt auf 120 Zeichen begrenzt; mit dem festen Suffix kann die gesendete Nachricht 124 Zeichen lang sein.
- **Beacon mit Sitzungs- und QRG-Sicherung:** Beacons starten nach jedem Programmstart und Profilwechsel ausgeschaltet, bleiben bei einem normalen ON4KST-Reconnect aber aktiv. Das Mindestintervall beträgt fünf Minuten. Jeder aktive Beacon überwacht die QRG seiner eigenen Kategorie: Manuelle Änderungen verschieben die Referenz, ein automatischer Sprung durch UCXLog oder Win-Test von mehr als 5 kHz schaltet nur den betroffenen Beacon aus. Der **MyBeacon**-Chip zeigt `off`, `1/2`, `on` und `FAILED` mit eindeutigen Verkehrsfarben; sein Tooltip nennt den Zustand oder letzten Abschaltgrund je Kategorie.
- **Neues Zuhause auf GitHub:** Das Projekt ist vom Konto `praktimarc` in die GitHub-Organisation [HamRadioOnline](https://github.com/HamRadioOnline) umgezogen und liegt jetzt unter [HamRadioOnline/kst4contest](https://github.com/HamRadioOnline/kst4contest). Alte Links auf das Repository, die Releases, die Issues und das Wiki leiten auf die neue Adresse weiter. Auch das Flatpak-Repository ist umgezogen und liegt jetzt unter `https://hamradioonline.github.io/kst4contest/`; bestehende Flatpak-Installationen aktualisieren über die Weiterleitung der alten Adresse weiter, neue Einrichtungen verwenden die neue Adresse aus der Installationsanleitung. Die AUR-Pakete zeigen ebenfalls auf die neue Adresse.
- **Zwischenspeicher der Geländeprofile getrennt:** Berechnete Geländeprofile liegen jetzt in der eigenen, gemeinsam genutzten Datei `terrainprofilecache.db` und werden nach Besitzer getrennt gespeichert. Bisher wurde der gesamte Zwischenspeicher gelöscht, sobald sich Rufzeichen oder Locator änderten; bei einem Profilwechsel wäre damit jedes berechnete Profil verloren gegangen.
+2 -2
View File
@@ -93,9 +93,9 @@ KST4Contest hält die benötigten Informationen zwischen diesen Schritten zusamm
Bei einer weitgehend festen CQ-QRG sollten `MYQRG` beziehungsweise `SECONDQRG` den tatsächlich verwendeten Frequenzen entsprechen. Eine aktivierte und tatsächlich liefernde TRX-Synchronisation kann `MYQRG` automatisch aktualisieren. Die Aktivierung allein reicht nicht: Vor dem Contest sollte mit einer realen Frequenzänderung geprüft werden, ob gültige Pakete ankommen. Ohne funktionierende automatische Quelle muss der Wert von Hand gepflegt werden.
Der Beacon kann die aktuelle QRG, den Locator und die Antennenrichtung regelmäßig im Chat veröffentlichen. Seine Variablen werden bei jedem Sendedurchlauf erneut ausgewertet.
Der Beacon kann die aktuelle QRG, den Locator und die Antennenrichtung regelmäßig im Chat veröffentlichen. Er muss nach jedem Programmstart oder Profilwechsel bewusst aktiviert werden. Eine manuell geänderte QRG wird zur neuen Referenz; meldet UCXLog oder Win-Test danach einen Sprung von mehr als 5 kHz, wird der betroffene Beacon automatisch ausgeschaltet.
Wird während des CQ-Betriebs über mehrere Frequenzen gescannt, sollte der Beacon deaktiviert werden. Eine automatisch veröffentlichte QRG ist nur hilfreich, solange sie noch stimmt.
Beim Scannen über mehrere Frequenzen verhindert diese Sicherung eine unbeabsichtigte Aussendung mit einer neuen Logger-QRG. Der Status-Tooltip zeigt, welche Kategorie abgeschaltet wurde und warum.
Shortcuts und Snippets sollten die regelmäßig benötigten Nachrichten abdecken, beispielsweise:
+5 -5
View File
@@ -301,7 +301,7 @@ Bei zwei gleichzeitig geöffneten Chat-Kategorien bleibt der Zusammenhang erhalt
Fehlt die QRG der betreffenden Kategorie, sendet KST4Contest keine inhaltslose Auskunft. Auch ein leerer oder protokollwidriger allgemeiner Antworttext wird nicht in die Sendequeue übernommen.
Automatische Antworten benötigen Grenzen. KST4Contest versieht sie daher mit `[KST4C Automsg]`, ignoriert entsprechend gekennzeichnete Nachrichten und begrenzt weitere Antworten an dasselbe vollständige Rufzeichen in derselben Kategorie auf eine Nachricht innerhalb von zwei Minuten. Der Schutz gilt gemeinsam für die allgemeine und die QRG-bezogene Antwort.
Automatische Antworten benötigen Grenzen. KST4Contest versieht sie daher mit `[KST4C Automsg]`, ignoriert entsprechend gekennzeichnete Nachrichten und begrenzt weitere Antworten an dasselbe vollständige Rufzeichen in derselben Kategorie auf eine Nachricht innerhalb von zwei Minuten. Der Schutz gilt gemeinsam für die allgemeine und die QRG-bezogene Antwort. Zusätzlich endet jede automatisch erzeugte Chatmeldung einschließlich `//VER`-Antworten und Beacons mit ` *a*`.
Die Sperrzeit wird nur nach einer vollständigen und lokal gültigen Antwort gestartet. Eine fehlende QRG oder ein verworfener Antworttext verhindert daher keine spätere gültige Antwort.
@@ -798,13 +798,13 @@ Die Timeline ist eine Vorschau. AirScout-Daten können sich ändern, und ein ein
KST4Contest kann wiederkehrende CQ-Nachrichten in den öffentlichen Chat senden. Der Beacon ist für längeres CQ-Rufen auf einer festen Frequenz gedacht: Die eigene QRG wird regelmäßig veröffentlicht, ohne dass derselbe Text von Hand wiederholt werden muss.
Beide Chat-Kategorien verwenden ein gemeinsames Intervall, besitzen aber jeweils einen eigenen Aktivierungsschalter und Nachrichtentext. Der zweite Beacon wird nur gesendet, wenn die zweite Kategorie in derselben ON4KST-Sitzung aktiviert und vollständig synchronisiert ist.
Beide Chat-Kategorien verwenden ein gemeinsames Intervall von mindestens fünf Minuten, besitzen aber jeweils einen eigenen Aktivierungsschalter und Nachrichtentext. Die Aktivierung gilt nur für die laufende Programmsitzung und muss nach einem Programmstart oder Profilwechsel erneut erfolgen. Ein ON4KST-Reconnect ändert sie nicht. Der zweite Beacon wird nur gesendet, wenn die zweite Kategorie in derselben ON4KST-Sitzung aktiviert und vollständig synchronisiert ist.
Globale Variablen wie `MYQRG`, `SECONDQRG`, `MYLOCATOR` oder `MYQTF` werden unmittelbar vor jeder Aussendung neu aufgelöst. Eine zwischenzeitlich vom Logprogramm aktualisierte QRG kann dadurch bereits im nächsten Beacon erscheinen.
Globale Variablen wie `MYQRG`, `SECONDQRG`, `MYLOCATOR` oder `MYQTF` werden unmittelbar vor jeder Aussendung neu aufgelöst. Jeder aktive Beacon überwacht dabei die QRG seiner eigenen Kategorie. Eine manuelle Änderung verschiebt die Referenz; ein automatischer Sprung durch UCXLog oder Win-Test von mehr als 5 kHz schaltet den betroffenen Beacon aus.
Vor dem Versand prüft KST4Contest den vollständig aufgelösten Nachrichtentext. Leere Nachrichten, Zeilenumbrüche, das Protokoll-Trennzeichen `|` und Texte mit mehr als 120 Zeichen werden nicht gesendet.
Vor dem Versand prüft KST4Contest den vollständig aufgelösten Beacon-Inhalt. Leere Inhalte, Zeilenumbrüche, das Protokoll-Trennzeichen `|` und Inhalte mit mehr als 120 Zeichen werden nicht gesendet. Danach wird ` *a*` angehängt; die gesendete Nachricht kann damit bis zu 124 Zeichen lang sein.
Beim Absuchen oder häufigen Wechseln der QRG sollte der Beacon ausgeschaltet werden. Eine automatisch verbreitete Frequenz ist nur dann hilfreich, wenn dort tatsächlich jemand hört und ruft.
Der farbige **MyBeacon**-Chip zeigt aktive, teilweise aktive, ausgeschaltete und fehlgeschlagene Zustände. Sein Tooltip nennt den Zustand oder letzten Abschaltgrund je Kategorie.
Konfiguration, Timer-Verhalten und verfügbare Variablen: [Konfiguration – Beacon Settings](de-Konfiguration#beacon-settings-automatischer-beacon).
+25 -19
View File
@@ -135,7 +135,7 @@ Dedizierter Netzwerk-Erkenner für Win-Test. KST4Contest empfängt und verarbeit
## TRX-Sync-Einstellungen
Die TRX-Synchronisation übernimmt die aktuelle Frequenz aus dem Logprogramm und stellt sie in KST4Contest als eigene QRG der ersten Chat-Kategorie bereit. QSO- und Frequenzsynchronisation verwenden teilweise denselben UDP-Empfänger, sind funktional aber voneinander getrennt: Ein empfangenes `RadioInfo`-Paket markiert keine Station als gearbeitet, und ein QSO-Paket ändert nicht automatisch die eigene QRG.
Die TRX-Synchronisation übernimmt die aktuelle Frequenz aus dem Logprogramm und stellt sie in KST4Contest als eigene QRG bereit. Ohne SO2R ist das `MYQRG` der ersten Chat-Kategorie; mit SO2R kann Gerät 2 getrennt `SECONDQRG` aktualisieren. QSO- und Frequenzsynchronisation verwenden teilweise denselben UDP-Empfänger, sind funktional aber voneinander getrennt: Ein empfangenes `RadioInfo`-Paket markiert keine Station als gearbeitet, und ein QSO-Paket ändert nicht automatisch die eigene QRG.
![Einstellungen für die TRX-Synchronisation](client_settings_window_trxsync.png)
@@ -153,11 +153,11 @@ Wird der gemeinsame UDP-Port geändert, muss KST4Contest neu gestartet werden. E
### Welche QRG wird aktualisiert?
Beide automatischen Quellen aktualisieren ausschließlich `MYQRG`. Das ist die eigene QRG der ersten beziehungsweise primären Chat-Kategorie.
Ohne SO2R aktualisieren beide automatischen Quellen ausschließlich `MYQRG`. Das ist die eigene QRG der ersten beziehungsweise primären Chat-Kategorie; `SECONDQRG` bleibt unabhängig und kann von Hand eingetragen werden.
Bei aktiviertem zweiten Chat bleibt dessen QRG davon unabhängig. Sie wird nicht aus den empfangenen TRX-Paketen abgeleitet und steht als `SECONDQRG` zur Verfügung. Dadurch kann beispielsweise die erste Kategorie automatisch der Frequenz des Logprogramms folgen, während für die zweite Kategorie eine eigene QRG von Hand eingetragen wird.
Mit SO2R ordnet KST4Contest die Pakete einem Gerät zu: Gerät 1 aktualisiert `MYQRG`, Gerät 2 `SECONDQRG`. Die genaue Zuordnung steht unter [SO2R: zwei Funkgeräte getrennt führen](#so2r-zwei-funkgeräte-getrennt-führen).
Sobald mindestens eine automatische QRG-Quelle aktiviert ist und einen gültigen Wert liefert, folgt das QRG-Feld der ersten Kategorie im Hauptfenster der empfangenen Frequenz. Bleiben die erwarteten Pakete aus, sollte die Schnittstelle vor dem Contest geprüft werden. Eine manuelle Eingabe in dieses Feld ist möglich, wenn sowohl der allgemeine RadioInfo-Listener als auch die Win-Test-STATUS-Synchronisation deaktiviert sind.
Sobald mindestens eine automatische QRG-Quelle aktiviert ist und einen gültigen Wert liefert, folgt das zugeordnete QRG-Feld im Hauptfenster der empfangenen Frequenz. Bleiben die erwarteten Pakete aus, sollte die Schnittstelle vor dem Contest geprüft werden. Eine manuelle Eingabe bleibt möglich und gilt für die Beacon-Sicherung als bewusste neue Referenz; ein späteres Logger-Paket wird gegen diesen Wert geprüft.
### Haupt- oder Pass-Frequenz aus Win-Test
@@ -176,7 +176,7 @@ Die Frequenzen werden einheitlich im KST4Contest-Format dargestellt, beispielswe
10368.100.00
```
Die Werte werden erst beim Auflösen des Nachrichtentextes eingesetzt. Ändert das Logprogramm zwischen zwei Beacon-Läufen die Frequenz, verwendet die nächste Nachricht bereits den aktualisierten Wert.
Die Werte werden erst beim Auflösen des Nachrichtentextes eingesetzt. Bei normalen Nachrichten steht eine Logger-Änderung sofort zur Verfügung. Ein aktiver Beacon verwendet dagegen seine QRG-Referenz: Ein automatischer Sprung um mehr als 5 kHz schaltet den betroffenen Beacon aus. Einzelheiten stehen unter [Beacon Settings](#beacon-settings-automatischer-beacon).
Die eigene QRG kann außerdem als Fallback für die Übergabe eines Skeds an Win-Test verwendet werden. Das geschieht nur, wenn die QRG auswertbar ist und zum ausdrücklich ausgewählten Sked-Band gehört. Einzelheiten stehen unter [Log-Synchronisation](de-Log-Synchronisation#skeds-an-win-test-übergeben).
@@ -603,13 +603,13 @@ KST4Contest verwendet einen gemeinsamen Timer für beide Chat-Kategorien. Aktivi
Sind beide Beacons aktiviert, werden sie beim selben Timer-Lauf nacheinander in ihren jeweiligen Kategorien gesendet. Der zweite Beacon wird nur berücksichtigt, wenn die zweite Kategorie in derselben ON4KST-Sitzung aktiviert und vollständig synchronisiert ist.
Die beiden Aktivierungsschalter wirken sofort auf den laufenden Timer. Sie starten weder den Countdown neu noch senden sie unmittelbar eine Nachricht; der nächste reguläre Timer-Lauf prüft den aktuellen Zustand. Erst **Save Settings** speichert die Aktivierung für den nächsten Programmstart. Nachrichtentexte und Intervall folgen weiterhin der normalen Apply-/Save-Logik.
Die beiden Aktivierungsschalter wirken sofort auf den laufenden Timer. Sie starten weder den Countdown neu noch senden sie unmittelbar eine Nachricht; der nächste reguläre Timer-Lauf prüft den aktuellen Zustand. Die Aktivierung gilt bewusst nur für die laufende Programmsitzung: Nach jedem Programmstart und Profilwechsel sind beide Beacons ausgeschaltet. Ein normaler ON4KST-Reconnect innerhalb derselben Programmsitzung lässt den Zustand dagegen unverändert. Nachrichtentexte und Intervall folgen weiterhin der normalen Apply-/Save-Logik.
Der Status-Chip **MyBeacon** im Hauptfenster fasst beide nutzbaren Kategorien zusammen: **off** bedeutet kein aktiver Beacon, **1/2** genau eine von zwei aktiven Kategorien und **on** alle derzeit nutzbaren Kategorien. Ein Klick auf den Chip schaltet alle nutzbaren Beacons gemeinsam ein oder aus. Ist der zweite Chat deaktiviert, ändert der Chip nur den Beacon der Hauptkategorie und lässt die gespeicherte Einstellung des zweiten Beacons unverändert.
Der Status-Chip **MyBeacon** im Hauptfenster fasst beide nutzbaren Kategorien zusammen: **off** bedeutet kein aktiver Beacon, **1/2** genau eine von zwei aktiven Kategorien und **on** alle derzeit nutzbaren Kategorien. Ein Klick auf den Chip schaltet alle nutzbaren Beacons gemeinsam ein oder aus. Ist der zweite Chat deaktiviert, ändert der Chip nur den Beacon der Hauptkategorie. **off** erscheint mit roter Schrift, **1/2** und **on** dauerhaft grün. Bei gemeldeter Aktivität blitzt der aktive Chip kurz orange auf. **FAILED** überschreibt diese Anzeige dauerhaft mit rotem Hintergrund und weißer Schrift; der orange Aktivitätsblitz wird dann unterdrückt. Der Tooltip nennt für jede Kategorie den aktuellen Zustand oder den letzten allgemeinen Abschaltgrund.
### Intervall und Timer-Verhalten
Das Intervall wird in ganzen Minuten angegeben. Der kleinste zulässige Wert ist eine Minute.
Das Intervall wird in ganzen Minuten angegeben. Der kleinste zulässige Wert beträgt fünf Minuten. Kleinere Werte aus einer älteren Konfiguration werden beim Laden auf fünf Minuten angehoben.
Nach dem Aufbau der Chat-Verbindung prüft KST4Contest die Beacons erstmals nach ungefähr zehn Sekunden. Anschließend gilt das eingestellte Intervall.
@@ -635,15 +635,19 @@ Eine mögliche Nachricht für die erste Chat-Kategorie ist:
calling cq at MYQRGSHORT, ant MYQTF deg, loc MYLOCATOR
```
KST4Contest hängt an jede gesendete Beacon-Nachricht automatisch das feste Suffix ` *a*` an. Es gehört deshalb nicht in das konfigurierte Template.
Für den zweiten Chat muss `SECONDQRG` verwendet werden, wenn dessen Frequenz von der ersten Kategorie abweicht:
```text
calling cq at SECONDQRG, ant MYQTF deg, loc MYLOCATOR
```
Die Variablen werden bei jedem Timer-Lauf neu aufgelöst. Ändert die Logsoftware zwischenzeitlich die in `MYQRG` gespeicherte Frequenz, verwendet bereits der nächste Beacon den aktualisierten Wert. Das Template selbst muss dafür nicht geändert werden.
Die Variablen werden bei jedem Timer-Lauf neu aufgelöst. `MYQRG` und `MYQRGSHORT` benötigen immer eine gültige QRG der ersten Chat-Kategorie, `SECONDQRG` immer eine gültige QRG der zweiten Kategorie. Diese Zuordnung gilt unabhängig davon, in welchem der beiden Beacon-Texte die Variable steht.
`MYQRG` und `MYQRGSHORT` beziehen sich immer auf die erste Chat-Kategorie. Die Auswahl oder Aktivierung des zweiten Chats ändert diese Zuordnung nicht.
Enthält ein Beacon-Text eine solche QRG-Variable, kann der betreffende Beacon nur mit gültigem zugeordnetem QRG-Wert aktiviert bleiben. Fehlt der Wert oder ist er ungültig, bleibt nur dieser Beacon ausgeschaltet beziehungsweise wird ausgeschaltet; der Tooltip nennt den Grund. Ein Beacon-Text ohne QRG-Variable darf dagegen auch ohne vorhandene QRG aktiviert werden.
Beim Einschalten merkt sich jeder Beacon die gültige QRG seiner eigenen Kategorie als Referenz. Ist noch keine gültige eigene QRG vorhanden und enthält der Text keine QRG-Variable, wird die erste später manuell oder vom Logger gemeldete gültige Frequenz zur Referenz. Eine manuelle QRG-Änderung gilt als bewusste Bedienung und verschiebt die Referenz auf den neuen Wert. Ändert UCXLog oder Win-Test die zugeordnete QRG später um mehr als 5 kHz gegenüber dieser Referenz, schaltet KST4Contest den betreffenden Beacon automatisch aus. Genau 5 kHz sind noch zulässig. Ohne SO2R betrifft eine automatische Logger-QRG nur den Beacon der Hauptkategorie; mit SO2R wird die zweite QRG und damit der zweite Beacon getrennt behandelt.
Stationsbezogene Variablen wie `QRZNAME`, `FIRSTAP` oder `SECONDAP` benötigen eine ausgewählte Gegenstation. Da ein öffentlicher Beacon keine bestimmte Station adressiert, werden diese Variablen im Beacon nicht aufgelöst.
@@ -651,16 +655,16 @@ Stationsbezogene Variablen wie `QRZNAME`, `FIRSTAP` oder `SECONDAP` benötigen e
KST4Contest prüft sowohl das eingetragene Template als auch den nach der Variablenauflösung tatsächlich zu sendenden Text.
Für Beacon-Nachrichten gelten folgende Bedingungen:
Für den aufgelösten Beacon-Inhalt vor dem festen Suffix gelten folgende Bedingungen:
- Der endgültige Nachrichtentext darf nicht leer sein.
- Er darf nicht leer sein.
- Er darf höchstens 120 Zeichen enthalten.
- Das Protokoll-Trennzeichen `|` ist nicht zulässig.
- Zeilenumbrüche sind nicht zulässig.
Eine ungültige Eingabe wird nicht als neue Beacon-Konfiguration übernommen. Wird ein Template erst durch eine spätere Variablenauflösung ungültig, beispielsweise weil der aufgelöste Text länger als 120 Zeichen ist, wird dieser Beacon-Lauf ausgelassen.
KST4Contest hängt anschließend ` *a*` an. Die tatsächlich gesendete Beacon-Nachricht darf damit höchstens 124 Zeichen lang sein. Eine ungültige Eingabe wird nicht als neue Beacon-Konfiguration übernommen. Wird ein Template erst durch eine spätere Variablenauflösung ungültig, beispielsweise weil der aufgelöste Inhalt länger als 120 Zeichen ist, wird dieser Beacon-Lauf ausgelassen.
Ein Template, das ausschließlich aus einer momentan noch leeren globalen Variable besteht, kann gespeichert werden. Das ist beispielsweise beim Start möglich, bevor die erste QRG vom Logprogramm empfangen wurde. Solange die Variable keinen verwendbaren Inhalt liefert, sendet KST4Contest jedoch keine leere Nachricht.
Ein Template mit einer QRG-Variable kann gespeichert werden, bevor eine passende QRG vorhanden ist; der betroffene Beacon lässt sich dann aber nicht aktivieren. Wird eine benötigte QRG später ungültig, wird ein bereits aktiver Beacon ausgeschaltet. Enthält das Template keine QRG-Variable, löscht eine ungültige eigene QRG lediglich die Referenz und der Beacon bleibt aktiv.
### Wann sollte der Beacon ausgeschaltet werden?
@@ -668,7 +672,7 @@ Der Beacon ist nur dann hilfreich, wenn seine QRG-Angabe zum tatsächlichen Betr
Im Klartext: Solange auf einer festen QRG CQ gerufen wird, spart der Beacon Arbeit. Beim „Schleichen“ über das Band sollte er ausgeschaltet werden.
Änderungen wirken während der laufenden Verbindung. Damit Aktivierung, Texte und Intervall auch nach dem nächsten Programmstart erhalten bleiben, anschließend **Save Settings** verwenden.
Änderungen wirken während der laufenden Verbindung. **Save Settings** speichert Texte und Intervall für den nächsten Programmstart. Die Aktivierung wird absichtlich nicht gespeichert und muss in jeder Programmsitzung erneut erfolgen.
---
@@ -690,12 +694,12 @@ Eine zweckmäßige Nachricht ist beispielsweise:
Sri, I am not taking part in this contest. No skeds.
```
Das Präfix `[KST4C Automsg]` muss nicht in das Eingabefeld geschrieben werden. KST4Contest ergänzt es automatisch.
Das Präfix `[KST4C Automsg]` und das feste Suffix ` *a*` müssen nicht in das Eingabefeld geschrieben werden. KST4Contest ergänzt beides automatisch.
Die beim Empfänger sichtbare Nachricht lautet daher beispielsweise:
```text
[KST4C Automsg] Sri, I am not taking part in this contest. No skeds.
[KST4C Automsg] Sri, I am not taking part in this contest. No skeds. *a*
```
Die eingegangene Privatnachricht bleibt sichtbar. Die Funktion blockiert oder verwirft keine Anfrage, sondern erspart lediglich die wiederholte manuelle Antwort.
@@ -726,7 +730,7 @@ Die Antwort enthält ausschließlich die QRG der Kategorie, in der die Anfrage e
Eine mögliche Antwort lautet:
```text
[KST4C Automsg] QRG is: 144.300.00
[KST4C Automsg] QRG is: 144.300.00 *a*
```
Die Werte stammen aus denselben QRG-Feldern, die auch von `MYQRG` und `SECONDQRG` verwendet werden. Die Haupt-QRG kann manuell eingetragen oder durch die [TRX-Synchronisation](#trx-sync-einstellungen) aktualisiert werden. Für die zweite Kategorie wird der dort konfigurierte beziehungsweise manuell eingetragene Wert verwendet; mit SO2R schreibt Funkgerät 2 dieses Feld (`SECONDQRG`).
@@ -762,7 +766,7 @@ Das vorhandene Bild `client_settings_window_messagehandling.png` zeigt die neue
### Schutz vor wiederholten Antworten
Jede automatisch erzeugte Nachricht trägt das feste Präfix:
Jede automatische Antwort trägt das feste Präfix:
```text
[KST4C Automsg]
@@ -770,6 +774,8 @@ Jede automatisch erzeugte Nachricht trägt das feste Präfix:
Die allgemeine und die QRG-bezogene Antwort reagieren nicht auf Nachrichten, die dieses Präfix bereits enthalten. Dadurch beantworten sich zwei entsprechend arbeitende Clients nicht gegenseitig in einer Schleife.
Zusätzlich endet jede von KST4Contest automatisch erzeugte Chatmeldung mit ` *a*`. Das gilt für allgemeine und QRG-bezogene Antworten, `//VER`-Antworten sowie beide Beacons. Das Suffix wird immer angehängt, auch wenn der konfigurierte Text bereits damit endet. Manuell gesendete Nachrichten und interne ON4KST-Steuerframes bleiben unverändert.
Zusätzlich gilt eine gemeinsame Sperrzeit von zwei Minuten für beide Antwortarten. Die Sperre wird getrennt nach vollständigem Rufzeichen und Chat-Kategorie geführt.
Daraus folgt:
+7 -3
View File
@@ -305,16 +305,20 @@ Verwendet die zweite Chat-Kategorie eine andere QRG, muss deren Vorlage `SECONDQ
calling cq at SECONDQRG, ant MYQTF deg, loc MYLOCATOR
```
Die globalen Variablen werden bei jedem Timer-Lauf erneut ausgewertet. Eine inzwischen vom Logprogramm aktualisierte QRG kann dadurch bereits in der nächsten Beacon-Nachricht erscheinen.
Die globalen Variablen werden bei jedem Timer-Lauf erneut ausgewertet. `MYQRG` und `MYQRGSHORT` benötigen immer eine gültige QRG der Hauptkategorie, `SECONDQRG` immer eine gültige QRG der zweiten Kategorie – unabhängig davon, in welcher Beacon-Vorlage sie stehen. Fehlt eine benötigte QRG, lässt sich nur der betroffene Beacon nicht aktivieren beziehungsweise wird ausgeschaltet. Eine Vorlage ohne QRG-Variable darf auch ohne vorhandene QRG aktiviert werden.
Der vollständig aufgelöste Beacon-Text:
Beim Einschalten merkt sich jeder Beacon die QRG seiner eigenen Kategorie. Eine manuelle QRG-Änderung verschiebt diese Referenz. Ändert UCXLog oder Win-Test die zugeordnete QRG später um mehr als 5 kHz, schaltet KST4Contest den betreffenden Beacon automatisch aus, statt die neue Frequenz unbemerkt in die nächste Aussendung zu übernehmen. Ist beim Einschalten noch keine eigene QRG vorhanden, wird die erste später gültig eingegebene oder empfangene Frequenz zur Referenz.
Der vollständig aufgelöste Beacon-Inhalt vor dem festen Suffix ` *a*`:
- muss mindestens ein gültiges Zeichen enthalten,
- darf höchstens 120 Zeichen lang sein,
- darf das Protokoll-Trennzeichen `|` nicht enthalten und
- darf keine Zeilenumbrüche enthalten.
Ist der Text beim vorgesehenen Versand leer oder ungültig, wird der betreffende Beacon-Lauf ausgelassen.
KST4Contest hängt das Suffix anschließend automatisch an. Die tatsächlich gesendete Beacon-Nachricht kann deshalb bis zu 124 Zeichen lang sein.
Ist der aufgelöste Text beim vorgesehenen Versand aus einem anderen Grund leer oder ungültig, wird der betreffende Beacon-Lauf ausgelassen und der Status-Chip zeigt **FAILED**.
Intervall, Aktivierung und Verhalten beider Kategorien sind unter [Konfiguration – Beacon Settings](de-Konfiguration#beacon-settings-automatischer-beacon) beschrieben.
+4
View File
@@ -40,6 +40,10 @@ Several operators sharing one computer can now use their own callsigns, locators
### Changed
- **Automatic chat messages marked consistently:** general and QRG-specific automatic replies, `//VER` replies and both beacons now end with ` *a*`. Automatic replies keep their existing `[KST4C Automsg]` prefix. Resolved beacon content remains limited to 120 characters; including the fixed suffix, the transmitted message may contain 124 characters.
- **Beacon session and QRG safeguards:** beacons start off after every program start and profile switch, but remain active across a normal ON4KST reconnect. The minimum interval is five minutes. Each active beacon monitors the QRG of its own category: manual changes move the reference, while an automatic UCXLog or Win-Test jump of more than 5 kHz disables only the affected beacon. The **MyBeacon** chip shows `off`, `1/2`, `on` and `FAILED` with clear traffic-light colours; its tooltip lists the state or last deactivation reason for each category.
- **New home on GitHub:** the project moved from the `praktimarc` account to the [HamRadioOnline](https://github.com/HamRadioOnline) GitHub organisation and now lives at [HamRadioOnline/kst4contest](https://github.com/HamRadioOnline/kst4contest). Old links to the repository, the releases, the issues and the wiki redirect to the new address. The Flatpak repository moved as well and now lives at `https://hamradioonline.github.io/kst4contest/`; existing Flatpak installations keep updating through the redirect of the old address, new setups use the new address from the installation manual. The AUR packages point to the new address too.
- **The terrain profile cache is separate:** computed terrain profiles now live in their own shared file `terrainprofilecache.db` and are stored per owner. Previously the whole cache was dropped whenever the callsign or locator changed, which would have discarded every computed profile on each profile switch.
+25 -19
View File
@@ -154,7 +154,7 @@ Configuration of the individual logging applications, band and locator handling,
## TRX Sync Settings
TRX synchronisation imports the current frequency from the logging application and makes it available in KST4Contest as the local QRG of the first chat category. QSO and frequency synchronisation may use the same UDP receiver, but they remain separate functions: receiving a `RadioInfo` packet does not mark a station as worked, and receiving a QSO packet does not automatically change the local QRG.
TRX synchronisation imports the current frequency from the logging application and makes it available as a local QRG in KST4Contest. Without SO2R this is `MYQRG` for the first chat category; with SO2R, radio 2 can update `SECONDQRG` separately. QSO and frequency synchronisation may use the same UDP receiver, but they remain separate functions: receiving a `RadioInfo` packet does not mark a station as worked, and receiving a QSO packet does not automatically change the local QRG.
![TRX synchronisation settings](client_settings_window_trxsync.png)
@@ -172,11 +172,11 @@ Restart KST4Contest after changing the shared UDP port. Changes to the two QRG-s
### Which QRG Is Updated?
Both automatic sources update `MYQRG` only. This is the local QRG of the first or primary chat category.
Without SO2R, both automatic sources update `MYQRG` only. This is the local QRG of the first or primary chat category; `SECONDQRG` remains independent and can be entered manually.
If a second chat is enabled, its QRG remains independent. It is not derived from incoming TRX packets and is available through `SECONDQRG`. The first category can therefore follow the logging application's frequency automatically while a separate QRG is entered manually for the second category.
With SO2R, KST4Contest assigns packets to a radio: radio 1 updates `MYQRG`, while radio 2 updates `SECONDQRG`. The exact assignment is described under [SO2R: Keeping Two Radios Apart](#so2r-keeping-two-radios-apart).
When at least one automatic QRG source is enabled and supplies a valid value, the first category's QRG field in the main window follows the received frequency. If the expected packets do not arrive, verify the interface before the contest. Manual entry is available when both the general RadioInfo listener and Win-Test STATUS synchronisation are disabled.
When at least one automatic QRG source is enabled and supplies a valid value, the assigned QRG field in the main window follows the received frequency. If the expected packets do not arrive, verify the interface before the contest. Manual entry remains possible and is treated as the deliberate new reference for beacon safety; a later logger packet is compared with that value.
### Main or Pass Frequency from Win-Test
@@ -220,7 +220,7 @@ The synchronised QRG can be used in every text processed by the common KST4Conte
- snippets, and
- automatic beacons.
`MYQRG` contains the complete QRG of the first chat category. `MYQRGSHORT` uses only its first seven characters. `SECONDQRG` contains the separately entered QRG of the second chat category.
`MYQRG` contains the complete QRG of the first chat category. `MYQRGSHORT` uses only its first seven characters. `SECONDQRG` contains the QRG of the second chat category, whether it was entered manually or supplied by radio 2 with SO2R enabled.
Examples:
@@ -603,13 +603,13 @@ KST4Contest uses one shared timer for both chat categories. Each category nevert
When both beacons are enabled, they are sent one after the other in their respective categories during the same timer run. The second beacon is only considered while the second category is enabled and fully synchronised in the same ON4KST session.
Both enable settings affect the running timer immediately. They neither restart the countdown nor send a message straight away; the next regular timer run checks the current state. Only **Save Settings** stores the enable state for the next program start. Message templates and the interval continue to follow the normal Apply/Save workflow.
Both enable settings affect the running timer immediately. They neither restart the countdown nor send a message straight away; the next regular timer run checks the current state. Activation deliberately lasts only for the current program session: both beacons are off after every program start and profile switch. A normal ON4KST reconnect within the same program session preserves their state. Message templates and the interval continue to follow the normal Apply/Save workflow.
The **MyBeacon** status chip in the main window combines the currently usable categories: **off** means that no beacon is enabled, **1/2** that one of two categories is enabled, and **on** that every usable category is enabled. Clicking the chip enables or disables all usable beacons together. If the second chat is disabled, the chip changes only the primary-category beacon and leaves the stored secondary-beacon setting untouched.
The **MyBeacon** status chip in the main window combines the currently usable categories: **off** means that no beacon is enabled, **1/2** that one of two categories is enabled, and **on** that every usable category is enabled. Clicking the chip enables or disables all usable beacons together. If the second chat is disabled, the chip changes only the primary-category beacon. **off** uses red text, while **1/2** and **on** remain green. The active chip briefly flashes orange when activity is reported. **FAILED** overrides this with a persistent red background and white text; no orange activity flash is shown then. The tooltip lists the current state or last general deactivation reason for each category.
### Interval and timer behaviour
The interval is entered in whole minutes. The minimum permitted value is one minute.
The interval is entered in whole minutes. The minimum permitted value is five minutes. Smaller values from an older configuration are raised to five minutes when loaded.
After the chat connection has been established, KST4Contest performs the first beacon check after approximately ten seconds. The configured interval applies after that initial check.
@@ -635,15 +635,19 @@ A suitable message for the primary chat category is:
calling cq at MYQRGSHORT, ant MYQTF deg, loc MYLOCATOR
```
KST4Contest automatically appends the fixed suffix ` *a*` to every transmitted beacon message. It therefore does not belong in the configured template.
Use `SECONDQRG` for the second chat if it operates on a different frequency:
```text
calling cq at SECONDQRG, ant MYQTF deg, loc MYLOCATOR
```
Variables are resolved again on every timer run. If the logging software changes the QRG stored in `MYQRG`, the next beacon can already contain the updated value. The message template does not have to be edited.
Variables are resolved again on every timer run. `MYQRG` and `MYQRGSHORT` always require a valid primary-category QRG, while `SECONDQRG` always requires a valid secondary-category QRG. This assignment is independent of which beacon template contains the variable.
`MYQRG` and `MYQRGSHORT` always refer to the primary chat category. Enabling or selecting the second chat does not change this assignment.
If a beacon template contains one of these QRG variables, that beacon can remain enabled only while the assigned QRG is valid. If the value is missing or invalid, only that beacon remains off or is disabled, and its tooltip states the reason. A template without a QRG variable may still be enabled when no QRG is available.
When enabled, each beacon remembers the valid QRG of its own category as its reference. If no valid own QRG exists yet and the template has no QRG variable, the first valid frequency reported later by the user or logger becomes the reference. A manual QRG change is treated as intentional and moves the reference to the new value. If UCXLog or Win-Test later changes the assigned QRG by more than 5 kHz from that reference, KST4Contest disables the affected beacon automatically. Exactly 5 kHz is still permitted. Without SO2R, an automatic logger QRG affects only the primary beacon; with SO2R, the secondary QRG and beacon are handled separately.
Station-specific variables such as `QRZNAME`, `FIRSTAP` and `SECONDAP` require a selected remote station. A public beacon has no such destination, so these variables are not resolved in beacon messages.
@@ -651,16 +655,16 @@ Station-specific variables such as `QRZNAME`, `FIRSTAP` and `SECONDAP` require a
KST4Contest validates both the configured template and the message which remains after all variables have been resolved.
The following restrictions apply:
The following restrictions apply to the resolved beacon content before the fixed suffix:
- The final message must not be empty.
- It must not be empty.
- It must not exceed 120 characters.
- The protocol separator `|` is not permitted.
- Line breaks are not permitted.
An invalid entry is not accepted as the new beacon configuration. If a template becomes invalid only after resolving its variables, for example because the resulting text exceeds 120 characters, that beacon run is skipped.
KST4Contest then appends ` *a*`, so the transmitted beacon message may contain up to 124 characters. An invalid entry is not accepted as the new beacon configuration. If a template becomes invalid only after resolving its variables, for example because the resolved content exceeds 120 characters, that beacon run is skipped.
A template which consists only of a temporarily empty global variable may still be stored. This can happen during startup before the first QRG has been received from the logger. KST4Contest does not send an empty message while the variable has no usable value.
A template containing a QRG variable may be stored before a matching QRG is available, but the affected beacon cannot then be enabled. If a required QRG becomes invalid later, an active beacon is disabled. If the template contains no QRG variable, an invalid own QRG only clears the reference and the beacon remains enabled.
### When should the beacon be disabled?
@@ -668,7 +672,7 @@ The beacon is useful only while its QRG matches the actual operation. Leaving it
In plain terms: the beacon saves work while calling CQ on a fixed QRG. It should be disabled while moving around the band.
Changes take effect during the current connection. Use **Save Settings** afterwards to retain the enable settings, message templates and interval for the next program start.
Changes take effect during the current connection. **Save Settings** stores the message templates and interval for the next program start. Activation is deliberately not stored and must be performed again in every program session.
---
@@ -690,12 +694,12 @@ A suitable message is:
Sri, I am not taking part in this contest. No skeds.
```
Do not add the `[KST4C Automsg]` prefix to the configured text. KST4Contest inserts it automatically.
Do not add the `[KST4C Automsg]` prefix or the fixed ` *a*` suffix to the configured text. KST4Contest inserts both automatically.
The message received by the remote station may therefore be:
```text
[KST4C Automsg] Sri, I am not taking part in this contest. No skeds.
[KST4C Automsg] Sri, I am not taking part in this contest. No skeds. *a*
```
The incoming private message remains visible. The function neither blocks nor discards the request; it merely avoids entering the same answer repeatedly.
@@ -726,7 +730,7 @@ The answer contains only the QRG belonging to the category in which the request
A possible reply is:
```text
[KST4C Automsg] QRG is: 144.300.00
[KST4C Automsg] QRG is: 144.300.00 *a*
```
The values come from the same QRG fields used by `MYQRG` and `SECONDQRG`. The primary QRG may be entered manually or updated through [TRX synchronisation](#trx-sync-settings). The second category uses the value configured or entered for that category; with SO2R, radio 2 writes this field (`SECONDQRG`).
@@ -762,7 +766,7 @@ The existing `client_settings_window_messagehandling.png` screenshot does not ye
### Protection against repeated replies
Every automatically generated reply contains the fixed prefix:
Every automatic reply contains the fixed prefix:
```text
[KST4C Automsg]
@@ -770,6 +774,8 @@ Every automatically generated reply contains the fixed prefix:
The general and QRG-specific functions ignore messages which already contain this prefix. This prevents two clients with automatic replies enabled from answering each other indefinitely.
In addition, every chat message generated automatically by KST4Contest ends with ` *a*`. This applies to general and QRG-specific replies, `//VER` replies and both beacons. The suffix is always appended, even if the configured text already ends with it. Manually sent messages and internal ON4KST control frames remain unchanged.
A common two-minute cooldown additionally applies to both reply types. The cooldown is tracked separately for each complete callsign and chat category.
This means:
+2 -2
View File
@@ -93,9 +93,9 @@ KST4Contest keeps the required information together between these steps. Changin
During operation on a mainly fixed CQ frequency, `MYQRG` and `SECONDQRG` should match the frequencies actually in use. TRX synchronisation can update `MYQRG` automatically only when it is enabled and actually supplies valid packets. Before the contest, verify this with a real frequency change. Without a working automatic source, the value must be maintained manually.
The beacon can publish the current QRG, locator and antenna direction in the chat at regular intervals. Its variables are evaluated again for every transmission.
The beacon can publish the current QRG, locator and antenna direction in the chat at regular intervals. It must be enabled deliberately after every program start or profile switch. A manually changed QRG becomes the new reference; if UCXLog or Win-Test later reports a jump of more than 5 kHz, the affected beacon is disabled automatically.
Disable the beacon while scanning across several frequencies. An automatically published QRG is useful only while it is still correct.
While scanning across several frequencies, this safeguard prevents an unintended transmission with a new logger QRG. The status tooltip shows which category was disabled and why.
Shortcuts and snippets should cover the messages required regularly, for example:
+5 -5
View File
@@ -300,7 +300,7 @@ When two chat categories are connected, the original context is retained. The re
If the required QRG is missing, KST4Contest sends no incomplete answer. Empty or locally invalid general reply texts are rejected as well.
Automatic replies need limits. KST4Contest adds the fixed prefix `[KST4C Automsg]`, ignores incoming messages which already contain that prefix and permits only one automatic reply to the same complete callsign in the same category within two minutes. The cooldown is shared by the general and QRG-specific reply functions.
Automatic replies need limits. KST4Contest adds the fixed prefix `[KST4C Automsg]`, ignores incoming messages which already contain that prefix and permits only one automatic reply to the same complete callsign in the same category within two minutes. The cooldown is shared by the general and QRG-specific reply functions. In addition, every automatically generated chat message, including `//VER` replies and beacons, ends with ` *a*`.
A rejected reply does not start the cooldown. After entering the missing QRG or correcting the configured text, KST4Contest can therefore answer the next request immediately.
@@ -796,13 +796,13 @@ The timeline is a preview. AirScout data can change, and a stored sked guarantee
KST4Contest can send recurring CQ messages to the public chat. The beacon is intended for longer periods of calling CQ on a fixed frequency: it publishes the local QRG regularly without requiring the operator to enter the same text again.
Both chat categories use one shared interval, but each category has its own enable setting and message template. The second beacon is only sent while the second category is enabled and fully synchronised in the shared ON4KST session.
Both chat categories use one shared interval of at least five minutes, but each category has its own enable setting and message template. Activation lasts only for the current program session and must be repeated after a program start or profile switch. An ON4KST reconnect does not change it. The second beacon is only sent while the second category is enabled and fully synchronised in the shared ON4KST session.
Global variables such as `MYQRG`, `SECONDQRG`, `MYLOCATOR` and `MYQTF` are resolved immediately before every transmission. A QRG updated by the logging software can therefore appear in the next beacon.
Global variables such as `MYQRG`, `SECONDQRG`, `MYLOCATOR` and `MYQTF` are resolved immediately before every transmission. Each active beacon also monitors the QRG of its own category. A manual change moves the reference; an automatic jump of more than 5 kHz from UCXLog or Win-Test disables the affected beacon.
Before transmission, KST4Contest validates the completely resolved message. Empty messages, line breaks, the protocol separator `|` and messages exceeding 120 characters are not sent.
Before transmission, KST4Contest validates the completely resolved beacon content. Empty content, line breaks, the protocol separator `|` and content exceeding 120 characters are not sent. It then appends ` *a*`, so the transmitted message may contain up to 124 characters.
Disable the beacon while searching the band or changing QRG frequently. An automatically published frequency is useful only while somebody is actually listening and calling there.
The coloured **MyBeacon** chip shows active, partially active, off and failed states. Its tooltip lists the state or last deactivation reason for each category.
Configuration, timer behaviour and available variables: [Configuration – Beacon Settings](en-Configuration#beacon-settings).
+7 -3
View File
@@ -307,16 +307,20 @@ If the second chat category uses a different QRG, its template must contain `SEC
calling cq at SECONDQRG, ant MYQTF deg, loc MYLOCATOR
```
Global variables are evaluated again on every timer run. A QRG updated by the logging software can therefore already appear in the next beacon message.
Global variables are evaluated again on every timer run. `MYQRG` and `MYQRGSHORT` always require a valid primary-category QRG, while `SECONDQRG` always requires a valid secondary-category QRG, regardless of which beacon template contains them. If a required QRG is unavailable, only the affected beacon cannot be enabled or is disabled. A template without a QRG variable may still be enabled without an available QRG.
The fully resolved beacon text:
When enabled, each beacon remembers the QRG of its own category. A manual QRG change moves this reference. If UCXLog or Win-Test later changes the assigned QRG by more than 5 kHz, KST4Contest disables the affected beacon instead of silently including the new frequency in its next transmission. If no own QRG exists when the beacon is enabled, the first valid frequency entered or received later becomes the reference.
The fully resolved beacon content before the fixed ` *a*` suffix:
- must contain at least one valid character,
- must not exceed 120 characters,
- must not contain the protocol separator `|`, and
- must not contain line breaks.
If the text is empty or invalid when transmission is due, that beacon run is skipped.
KST4Contest appends the suffix automatically afterwards. The transmitted beacon message may therefore contain up to 124 characters.
If the resolved text is empty or invalid for another reason when transmission is due, that beacon run is skipped and the status chip shows **FAILED**.
The interval, activation and behaviour of both categories are described under [Configuration – Beacon Settings](en-Configuration#beacon-settings).
+2 -2
View File
@@ -570,7 +570,7 @@ If the layout has become inconvenient, first move the dividers and column widths
## Operating Tips
- **Toggle beacons quickly**: Keep the settings window open to control each category separately. Click the **MyBeacon** status chip to enable or disable all currently usable beacons together.
- **Toggle beacons quickly**: Keep the settings window open to control each category separately. Click the **MyBeacon** status chip to enable or disable all currently usable beacons together. **off** uses red text, **1/2** and **on** are green, and the chip flashes orange when activity is reported. **FAILED** stays red with white text. The tooltip lists the state or last deactivation reason for each category.
- **Right-click in the user list**: Opens the snippet menu and additional actions, including QRZ.com profiles and NOT-QRV marks.
- **Press Enter while working in the chat**: If the send field contains text, Enter sends it directly even when another control has focus.
- **Stop the beacon while scanning**: Disable the beacon while moving through frequencies to avoid flooding the chat with unnecessary messages.
- **Check the beacon after startup**: Both beacons are off after a program start or profile switch. A normal ON4KST reconnect within the same program session does not change their state.