mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-11-11 23:42:27 +01:00
fix: make beacons session-only, slower and QSY-aware (#171)
Forgotten beacons kept filling the chat while nobody was at the station. - The two enable switches are session state now: they start off, are never read from preferences.xml and are always stored as "false", so neither a stored switch nor an older release reading a newer file can start a beacon. The in-code default was "on" and started a beacon whenever the file was unreadable or had no <beaconCQ> block. - The minimum interval rises from 1 to 5 minutes; the bundled template ships 10 instead of 1. Smaller stored values are raised when the timer is scheduled. - BeaconFrequencyGuard switches a beacon off once a logger-reported transceiver frequency lies more than 2 kHz from the one reported when the beacon was switched on. UCXLog RadioInfo and Win-Test STATUS feed it wherever they already set MYQRG/SECONDQRG. Without SO2R the single radio stands for both categories, with SO2R each radio for its own. Manual (DE/EN), changelog, website and PROJECT_CONTEXT updated. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NJ1tUJVmWChD9V5Pg7uH8X
This commit is contained in:
25 files changed
+600
-39
No files matched your search
@@ -52,6 +52,8 @@ Mehrere Operateure an einem Rechner können jetzt eigene Rufzeichen, Locators un
|
||||
|
||||
- **Einstellungen wirken erst mit Übernehmen:** Änderungen im Einstellungsfenster wirken nicht mehr während der Eingabe, sondern erst mit **Übernehmen/Schließen** oder **Einstellungen speichern**; **Verbinden** übernimmt sie ebenfalls vorher. Das gilt auch während einer laufenden Sitzung. Wer mit offenen Änderungen das Fenster schließt, das Profil wechselt oder das Programm beendet, wird zuerst gefragt, ob sie übernommen oder verworfen werden sollen, oder kann zurück. Farben, Sprache und die Anmeldedaten im Reiter **Station** wirken wie bisher sofort.
|
||||
|
||||
- **Beacon nur noch bewusst und seltener:** Vergessene Beacons haben den Chat gefüllt, während niemand am Gerät saß ([Issue #171](https://github.com/HamRadioOnline/kst4contest/issues/171)). Drei Dinge ändern sich deshalb. Die Aktivierung gilt nur noch für die laufende Programmsitzung: Nach jedem Programmstart und jedem Profilwechsel sind beide Beacons aus, und **Einstellungen speichern** speichert die Schalter nicht mehr. Das Mindestintervall steigt von einer auf fünf Minuten, eine neue Installation beginnt mit zehn. Und KST4Contest schaltet den Beacon selbst ab, sobald das Logprogramm eine Frequenz meldet, die mehr als 2 kHz von der Frequenz beim Einschalten abweicht; ohne SO2R betrifft das beide Kategorien, mit SO2R nur die Kategorie des jeweiligen Funkgeräts. Der Status-Chip **MyBeacon** zeigt die Abschaltung, sein Tooltip nennt den Grund.
|
||||
|
||||
- **Fenster öffnen auf dem Bildschirm des Hauptfensters:** Stationskarte, Monitor, Einstellungen, Update-Fenster, Top-Kandidaten und die Hinweisdialoge öffneten bisher auf dem primären Bildschirm, auch wenn das Hauptfenster auf einem anderen lag oder der primäre Bildschirm ausgeschaltet war. Sie öffnen jetzt zentriert auf dem Bildschirm, auf dem das Hauptfenster gerade steht. Ein Fenster, das in der laufenden Sitzung verschoben wurde, öffnet beim nächsten Mal wieder dort, sofern seine Titelleiste noch auf einem angeschlossenen Bildschirm erreichbar ist. Mit der neuen Option **Fenster nach einem Neustart dort öffnen, wohin sie zuletzt geschoben wurden** im Reiter **GUI** (standardmäßig aus) behalten das Hauptfenster und alle anderen Fenster ihre Position auch über einen Neustart; eine gespeicherte Position wird nur verwendet, wenn genau derselbe Bildschirm (gleiche Lage und Auflösung) wieder angeschlossen ist. Ist ein Fenster größer als der Bildschirm, wird es auf dessen nutzbare Fläche verkleinert, auch wenn es später auf einen kleineren Bildschirm geschoben wird, etwa einen 640×480-Monitor; die gespeicherte Fenstergröße bleibt dabei unverändert. Das behebt [Issue #59](https://github.com/HamRadioOnline/kst4contest/issues/59).
|
||||
|
||||
### Behoben
|
||||
@@ -86,6 +88,7 @@ Mehrere Operateure an einem Rechner können jetzt eigene Rufzeichen, Locators un
|
||||
- Eine Profil-Registry entsteht erst beim Anlegen des zweiten Profils. Wer nur ein Profil benutzt, merkt von der Änderung nichts.
|
||||
- Eine Rückkehr zu einer älteren KST4Contest-Version bleibt möglich; sie findet ihre Dateien unverändert vor.
|
||||
- Passwörter stehen weiterhin im Klartext in der `preferences.xml` des jeweiligen Profils. Profile trennen die Konfiguration, sie sind kein Zugriffsschutz.
|
||||
- Ein in einer früheren Version gespeicherter, eingeschalteter Beacon startet nicht mehr von selbst; er muss nach dem Programmstart neu eingeschaltet werden. Ein gespeichertes Beacon-Intervall unter fünf Minuten wird auf fünf Minuten angehoben. Texte und größere Intervalle bleiben unverändert.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ Bei einer weitgehend festen CQ-QRG sollten `MYQRG` beziehungsweise `SECONDQRG` d
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
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. Liefert das Logprogramm die Frequenz, schaltet KST4Contest den Beacon bei einer Abweichung von mehr als 2 kHz [selbst ab](de-Konfiguration#automatische-abschaltung-beim-frequenzwechsel). Nach jedem Programmstart ist der Beacon aus und muss neu eingeschaltet werden.
|
||||
|
||||
Shortcuts und Snippets sollten die regelmäßig benötigten Nachrichten abdecken, beispielsweise:
|
||||
|
||||
|
||||
@@ -603,13 +603,15 @@ 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. 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.
|
||||
Die Aktivierung gilt nur für die laufende Programmsitzung. Nach jedem Programmstart und nach jedem Profilwechsel sind beide Beacons ausgeschaltet und müssen bewusst wieder eingeschaltet werden. **Save Settings** speichert Nachrichtentexte und Intervall, aber nicht die Aktivierung. Ein Beacon kann dadurch nicht mehr unbemerkt aus einer früheren Sitzung weiterlaufen.
|
||||
|
||||
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 den Schalter des zweiten Beacons unverändert.
|
||||
|
||||
### 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 sind fünf Minuten; eine neue Installation beginnt mit zehn Minuten. Ein kleinerer Wert aus einer früheren Version wird beim Start des Timers 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.
|
||||
|
||||
@@ -668,7 +670,18 @@ 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.
|
||||
### Automatische Abschaltung beim Frequenzwechsel
|
||||
|
||||
Meldet das Logprogramm die Frequenz des Transceivers, schaltet KST4Contest den Beacon selbst ab, sobald sich das Funkgerät um mehr als 2 kHz von der Frequenz entfernt hat, auf der der Beacon eingeschaltet wurde. Verglichen wird mit der Frequenz beim Einschalten, nicht mit der vorherigen Meldung. Langsames Drehen über das Band löst die Abschaltung deshalb ebenso aus wie ein Sprung.
|
||||
|
||||
- Ausgewertet werden die Meldungen, die auch `MYQRG` und `SECONDQRG` füllen: UCXLog-`RadioInfo` bei eingeschaltetem TRX-Abgleich und Win-Test-`STATUS` bei eingeschalteter QRG-Übernahme. Ohne diese Kopplung bleibt der Beacon an, bis er von Hand ausgeschaltet wird.
|
||||
- Eine von Hand in das QRG-Feld eingetragene Frequenz schaltet nichts ab.
|
||||
- Ohne **SO2R** steht das eine gemeldete Funkgerät für beide Kategorien: Beide Beacons werden abgeschaltet.
|
||||
- Mit **SO2R** schaltet Funkgerät 1 nur den Beacon der Hauptkategorie ab und Funkgerät 2 nur den der zweiten Kategorie.
|
||||
|
||||
Nach der Abschaltung zeigt der Status-Chip **MyBeacon** den neuen Zustand, sein Tooltip nennt den Grund. Wird der Beacon wieder eingeschaltet, gilt die dann gemeldete Frequenz als neuer Bezug.
|
||||
|
||||
Änderungen wirken während der laufenden Verbindung. Damit Texte und Intervall auch nach dem nächsten Programmstart erhalten bleiben, anschließend **Save Settings** verwenden. Die Aktivierung wird nicht gespeichert.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -52,6 +52,8 @@ Several operators sharing one computer can now use their own callsigns, locators
|
||||
|
||||
- **Settings take effect with Apply:** changes in the settings window no longer take effect while they are typed, but with **Apply/Close prefs** or **Save settings**; **Connect** applies them first as well. This also works during a running session. Closing the window, switching the operator profile or exiting with changes pending first asks whether to apply or discard them, or to go back. Colours, language and the login data on the **Station** tab still take effect immediately.
|
||||
|
||||
- **Beacons only deliberately and less often:** forgotten beacons filled the chat while nobody was at the station ([Issue #171](https://github.com/HamRadioOnline/kst4contest/issues/171)). Three things change because of that. The enable state now applies to the running program session only: after every program start and every profile switch both beacons are off, and **Save settings** no longer stores the switches. The minimum interval rises from one to five minutes, and a new installation starts with ten. And KST4Contest switches the beacon off by itself as soon as the logger reports a frequency more than 2 kHz away from the one at the time of enabling; without SO2R this concerns both categories, with SO2R only the category of the respective radio. The **MyBeacon** status chip shows the switch-off and its tooltip names the reason.
|
||||
|
||||
- **Windows open on the main window's screen:** the station map, monitor, settings, update window, top candidates and the notice dialogs used to open on the primary screen, even when the main window was on another one or the primary screen was switched off. They now open centred on the screen the main window is currently on. A window that was moved during the running session reopens there next time, as long as its title bar can still be reached on a connected screen. With the new option **Reopen windows across restarts where they were last moved to** on the **GUI** tab (off by default), the main window and all other windows also keep their position across restarts; a stored position is only used when the very same screen (same place and resolution) is connected again. A window larger than the screen is reduced to its usable area, also when it is moved onto a smaller screen later, for example a 640x480 monitor; the stored window size stays unchanged. This fixes [Issue #59](https://github.com/HamRadioOnline/kst4contest/issues/59).
|
||||
|
||||
### Fixed
|
||||
@@ -86,6 +88,7 @@ Several operators sharing one computer can now use their own callsigns, locators
|
||||
- A profile registry only appears when the second profile is created. Anyone using a single profile will not notice the change.
|
||||
- Going back to an older KST4Contest release stays possible; it finds its files unchanged.
|
||||
- Passwords are still stored in clear text in each profile's `preferences.xml`. Profiles separate configuration; they are not an access control mechanism.
|
||||
- A beacon that was stored as enabled by an earlier version no longer starts by itself; it has to be enabled again after the program start. A stored beacon interval below five minutes is raised to five minutes. Message texts and longer intervals stay unchanged.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -603,13 +603,15 @@ 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. 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 enable state applies to the running program session only. After every program start and after every profile switch both beacons are off and have to be enabled again deliberately. **Save Settings** stores the message templates and the interval, but not the enable state. A beacon can therefore no longer keep running unnoticed from an earlier session.
|
||||
|
||||
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 secondary-beacon switch untouched.
|
||||
|
||||
### 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; a new installation starts with ten minutes. A smaller value from an earlier version is raised to five minutes when the timer starts.
|
||||
|
||||
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.
|
||||
|
||||
@@ -668,7 +670,18 @@ 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.
|
||||
### Automatic switch-off after a frequency change
|
||||
|
||||
When the logger reports the transceiver frequency, KST4Contest switches the beacon off by itself as soon as the radio has moved more than 2 kHz away from the frequency on which the beacon was enabled. The comparison is made with the frequency at the time of enabling, not with the previous report. Tuning slowly across the band therefore triggers the switch-off just as a jump does.
|
||||
|
||||
- The reports evaluated are those which also fill `MYQRG` and `SECONDQRG`: UCXLog `RadioInfo` while TRX synchronisation is enabled, and Win-Test `STATUS` while QRG synchronisation is enabled. Without this coupling the beacon stays on until it is disabled by hand.
|
||||
- A frequency typed into the QRG field by hand switches nothing off.
|
||||
- Without **SO2R** the one reported radio stands for both categories: both beacons are switched off.
|
||||
- With **SO2R**, radio 1 switches off only the primary-category beacon and radio 2 only the secondary-category beacon.
|
||||
|
||||
After the switch-off the **MyBeacon** status chip shows the new state and its tooltip names the reason. When the beacon is enabled again, the frequency reported at that time becomes the new reference.
|
||||
|
||||
Changes take effect during the current connection. Use **Save Settings** afterwards to retain the message templates and interval for the next program start. The enable state is not stored.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ During operation on a mainly fixed CQ frequency, `MYQRG` and `SECONDQRG` should
|
||||
|
||||
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.
|
||||
|
||||
Disable the beacon while scanning across several frequencies. An automatically published QRG is useful only while it is still correct.
|
||||
Disable the beacon while scanning across several frequencies. An automatically published QRG is useful only while it is still correct. When the logger supplies the frequency, KST4Contest switches the beacon off [by itself](en-Configuration#automatic-switch-off-after-a-frequency-change) once the radio has moved by more than 2 kHz. After every program start the beacon is off and has to be enabled again.
|
||||
|
||||
Shortcuts and snippets should cover the messages required regularly, for example:
|
||||
|
||||
|
||||
Reference in new issue
Block a user