diff --git a/github_docs/client_settings_window_shortcuts.png b/github_docs/client_settings_window_shortcuts.png new file mode 100644 index 0000000..0afd1b2 Binary files /dev/null and b/github_docs/client_settings_window_shortcuts.png differ diff --git a/github_docs/de-DX-Cluster-Server.md b/github_docs/de-DX-Cluster-Server.md index 7376747..3d54c32 100644 --- a/github_docs/de-DX-Cluster-Server.md +++ b/github_docs/de-DX-Cluster-Server.md @@ -143,15 +143,17 @@ Mehrere DX-Cluster-Clients können gleichzeitig verbunden werden. Ein erzeugter ## Verbindung testen -Die Schaltfläche **Send test spot** erzeugt einen neutralen Testeintrag: +Die Schaltfläche **Send test spot** erzeugt folgenden Testeintrag: ```text Spotted callsign: DO5AMF -Comment: KST4CONTEST TEST +Comment: Testing DXC-Spot: Congrats, you donated $100! Frequency: .300 des konfigurierten Fallback-Bandes ``` -Bei einem Fallback-Band von `144` erscheint der Spot daher auf ungefähr `144.300 MHz`. +Bei einem Fallback-Band von `144 MHz` erscheint der Spot daher auf ungefähr `144.300 MHz`. + +Der Kommentar ist ein bewusst beibehaltenes Easteregg. Er dient ausschließlich dazu, den Testspot im Logprogramm eindeutig wiederzuerkennen. Eine tatsächliche Spende oder sonstige externe Aktion wird dadurch selbstverständlich nicht ausgelöst. Vor dem Test müssen drei Bedingungen erfüllt sein: diff --git a/github_docs/de-Konfiguration.md b/github_docs/de-Konfiguration.md index ad5e4d3..8011e80 100644 --- a/github_docs/de-Konfiguration.md +++ b/github_docs/de-Konfiguration.md @@ -370,11 +370,28 @@ Folgende Einstellungen und Schaltflächen gehören zur lokalen DX-Cluster-Ausgab - **TCP port**: Port, auf dem KST4Contest Verbindungen von DX-Cluster-Clients annimmt. Der Standardwert ist `8000`. Wird der Port während einer laufenden Verbindung geändert, startet KST4Contest den Server auf dem neuen Port neu. Der Logger muss sich anschließend ebenfalls mit dem neuen Port verbinden. - **Fallback band for relative QRG detection**: Das oben beschriebene globale Fallback-Band. Der Testspot verwendet `.300` dieses Bandes. Reale Spots verwenden dagegen die für den jeweiligen Absender erkannte QRG. - **Spotter callsign**: Rufzeichen, das im erzeugten DX-Cluster-Spot als Spotter erscheint. Hier sollte ein anderes Rufzeichen als das im Contest verwendete Stationsrufzeichen eingetragen werden. Einige Logprogramme filtern Spots des eigenen Rufzeichens oder behandeln sie anders als fremde Spots. -- **Send test spot**: Sendet einen Testspot für `DL0TEST` auf `.300` des ausgewählten Fallback-Bandes. Der Test funktioniert nur, wenn KST4Contest mit dem Chat verbunden, der lokale DX-Cluster-Server aktiviert und mindestens ein DX-Cluster-Client verbunden ist. +- **Send test spot**: Sendet den folgenden Testspot an alle aktuell verbundenen DX-Cluster-Clients: -KST4Contest erzeugt nicht bei jeder im Chat gefundenen Frequenz automatisch einen Spot. Ein Spot entsteht nur dann, wenn eine gerichtete Nachricht zwischen zwei Stationen auf eine für die eigene Station interessante Antennenrichtung schließen lässt und für den Absender eine nutzbare Frequenz bekannt ist. +```text +Spotted callsign: DO5AMF +Comment: Testing DXC-Spot: Congrats, you donated $100! +Frequency: .300 des ausgewählten Fallback-Bandes +``` + +Bei einem Fallback-Band von `144 MHz` wird daraus beispielsweise eine Frequenz von ungefähr `144.300 MHz`. + +Der Kommentar des Testspots ist ein bewusst beibehaltenes Easteregg. Er hat keine technische Bedeutung und löst – trotz seiner erfreulich konkreten Formulierung – keine Zahlung aus. Entscheidend ist, dass der Spot im verbundenen Logprogramm erscheint. + +Der Test funktioniert nur, wenn + +1. KST4Contest mit dem ON4KST-Chat verbunden ist, +2. der lokale DX-Cluster-Server aktiviert ist und +3. mindestens ein DX-Cluster-Client mit KST4Contest verbunden ist. + +KST4Contest erzeugt nicht bei jeder im Chat gefundenen Frequenz automatisch einen Spot. Ein realer Spot entsteht nur dann, wenn eine gerichtete Nachricht zwischen zwei Stationen auf eine für die eigene Station interessante Antennenrichtung schließen lässt und für den Absender eine nutzbare Frequenz bekannt ist. Die vollständige Herleitung und die Einrichtung des Logprogramms sind im Kapitel [Integrierter DX-Cluster-Server](de-DX-Cluster-Server) beschrieben. + ### Band-Upgrade-Hinweis nach einem Logeintrag Nach einem über UCXLog oder Win-Test empfangenen Logeintrag kann KST4Contest prüfen, ob die gerade gearbeitete Station noch ein weiteres gemeinsames, aber bisher nicht gearbeitetes Band anbietet. @@ -432,21 +449,83 @@ Doppelte oder syntaktisch ungültige Rufzeichen werden nicht übernommen. Die Li ## Shortcut Settings (Schnellzugriff-Schaltflächen) -Konfiguration von Schnellzugriff-Schaltflächen, die direkt im Hauptfenster erscheinen. Ein Klick auf eine Schaltfläche fügt den konfigurierten Text in das Sendfeld ein. Alle [Variablen](de-Makros-und-Variablen#variablen) können verwendet werden. +![Konfiguration der Shortcut-Schaltflächen und Text-Snippets](client_settings_window_shortcuts.png) + +Jeder Eintrag im oberen Bereich des Reiters **Shortcuts** erzeugt eine Schaltfläche oberhalb des Nachrichteneingabefeldes im Hauptfenster. Ein Klick hängt den konfigurierten Text an den bereits vorhandenen Inhalt des Sendfeldes an. + +Enthält der Shortcut eine [Variable](de-Makros-und-Variablen#variablen), wird sie beim Einfügen durch ihren aktuellen Wert ersetzt. Ein Shortcut wie + +```text +pse call me at MYQRGSHORT +``` + +kann dadurch beispielsweise folgenden Text einfügen: + +```text +pse call me at 144.388 +``` + +Die Einträge `MYQRG` und `SECONDQRG` werden zusätzlich als QRG-Schaltflächen hervorgehoben. Sie fügen die aktuelle QRG der ersten beziehungsweise zweiten Chat-Kategorie ein. + +Die Reihenfolge der Tabelle entspricht der Reihenfolge der Schaltflächen im Hauptfenster. Die Einträge werden folgendermaßen verwaltet: + +1. Mit **Add shortcut** wird am Anfang der Liste ein neuer Eintrag angelegt und sofort zur Bearbeitung geöffnet. +2. Ein vorhandener Eintrag kann per Doppelklick bearbeitet werden. `Enter` übernimmt die Änderung. +3. Wird der Inhalt vollständig gelöscht und anschließend mit `Enter` bestätigt, entfernt KST4Contest den Eintrag. +4. Mit **Move selected up** und **Move selected down** wird der markierte Eintrag innerhalb der Liste verschoben. + +Änderungen werden sofort im Hauptfenster sichtbar. Damit sie auch nach dem nächsten Programmstart erhalten bleiben, anschließend **Save Settings** verwenden. --- ## Snippet Settings (Text-Snippets) -Text-Snippets sind über folgende Wege abrufbar: +Snippets sind längere Textbausteine, die vor allem für Nachrichten an eine ausgewählte Station vorgesehen sind. Sie können über folgende Wege aufgerufen werden: -- **Rechtsklick** auf ein Rufzeichen in der Benutzerliste -- **Rechtsklick** in der CQ-Nachrichtentabelle -- **Rechtsklick** in der PM-Nachrichtentabelle -- **Tastenkombinationen**: `Ctrl+1` bis `Ctrl+0` für die ersten 10 Snippets +- per Rechtsklick auf eine Station in der Benutzerliste, +- per Rechtsklick auf eine Nachricht in der öffentlichen Chat-Tabelle, +- per Rechtsklick auf eine Nachricht in der PM-Tabelle oder +- mit `Ctrl+1` bis `Ctrl+0` für die ersten zehn Einträge der Snippet-Liste. -Wenn in der Benutzerliste ein Rufzeichen ausgewählt ist, wird der Snippet als Direktnachricht adressiert: -`/CQ RUFZEICHEN ` +Bei den Tastenkombinationen entspricht die Zuordnung der Tabellenreihenfolge: + +| Tastenkombination | Snippet | +|---|---:| +| `Ctrl+1` | erster Eintrag | +| `Ctrl+2` | zweiter Eintrag | +| … | … | +| `Ctrl+9` | neunter Eintrag | +| `Ctrl+0` | zehnter Eintrag | + +Ein über das Kontextmenü ausgewähltes Snippet wird an den bereits vorbereiteten Nachrichtentext angehängt. Die Auswahl einer Station oder Nachricht hat das Sendfeld zuvor normalerweise bereits mit dem passenden `/cq`-Empfänger vorbereitet. + +Eine Tastenkombination verhält sich etwas anders: Sie ersetzt den bisherigen Inhalt des Sendfeldes durch eine vollständig adressierte Privatnachricht: + +```text +/cq RUFZEICHEN Snippet-Text +``` + +Dabei wird das vollständige sichtbare Rufzeichen einschließlich eines vorhandenen Suffixes verwendet. Für `9A0BB-70` entsteht daher beispielsweise: + +```text +/cq 9A0BB-70 pse ur qrg? +``` + +Die Chat-Kategorie der ausgewählten Station bleibt für den späteren Versand erhalten. Ist keine Station ausgewählt oder ist für die gedrückte Tastenkombination kein Snippet vorhanden, wird nichts eingefügt. + +Variablen werden beim Einfügen des Snippets aufgelöst. Stationsbezogene Variablen wie `QRZNAME`, `FIRSTAP` oder `SECONDAP` verwenden die aktuell ausgewählte Station. Der vorbereitete Text wird nicht automatisch gesendet und kann deshalb noch geprüft oder geändert werden. `Enter` oder **TX** sendet die Nachricht; `Esc` leert das Sendfeld. + +Die Snippet-Liste wird genauso bearbeitet wie die Shortcut-Liste: + +1. **Add new snippet** legt am Anfang der Liste einen neuen Eintrag an. +2. Ein Doppelklick öffnet einen vorhandenen Eintrag zur Bearbeitung. +3. `Enter` übernimmt die Änderung. +4. Ein leer bestätigter Eintrag wird entfernt. +5. **Move selected up** und **Move selected down** ändern die Reihenfolge und damit auch die Zuordnung zu `Ctrl+1` bis `Ctrl+0`. + +Die Kontextmenüs und Tastenkombinationen werden nach einer Änderung sofort aktualisiert. Für die dauerhafte Speicherung anschließend **Save Settings** verwenden. + +Eine vollständige Übersicht der verfügbaren Platzhalter und ihrer Grenzen steht unter [Makros und Variablen](de-Makros-und-Variablen). --- diff --git a/github_docs/en-Configuration.md b/github_docs/en-Configuration.md index 1261e22..1b62c89 100644 --- a/github_docs/en-Configuration.md +++ b/github_docs/en-Configuration.md @@ -392,7 +392,44 @@ The dropdown is neither a filter nor an override for complete frequencies. `432. Before using the fallback, KST4Contest checks the sender's recent band context. If a complete frequency has been detected for the same station during the previous 30 minutes, that band takes precedence. A fallback setting of `144 MHz` therefore still turns `.100` into `432.100 MHz` if the station mentioned `432.088` shortly before. -Although the setting is located in the Notification tab, it affects the general QRG parser. It therefore influences the QRG column, detected active bands, priority calculations, band-upgrade hints and other functions which use a known station frequency – not only DX cluster spots. +Although this setting is located in the Notification tab, it affects the general QRG parser. It therefore influences the QRG column, detected active bands, priority calculations, band-upgrade hints and other functions which use a known station frequency – not only DX cluster spots. + +Further details, including numbers which are deliberately ignored, are described under [QRG Detection](en-Features#qrg-detection). + +### Local DX Cluster Output + +KST4Contest can forward detected directional opportunities to logging software as DX cluster spots. A frequency recognised in the chat can therefore appear directly in the logger's band map without being entered manually. + +The **Enable the local DX Cluster server …** checkbox starts or stops the local TCP server. When KST4Contest is connected to the chat, the change takes effect immediately. + +The following settings and controls belong to the local DX cluster output: + +- **TCP port**: Port on which KST4Contest accepts connections from DX cluster clients. The default is `8000`. Changing the port while the server is running restarts it on the new port. The logger must then reconnect to that port. +- **Fallback band for relative QRG detection**: The global fallback band described above. The test spot uses `.300` on this band. Actual spots use the QRG detected for the respective sender. +- **Spotter callsign**: Callsign shown as the spotter in generated DX cluster entries. A callsign different from the contest callsign should be used. Some logging programs filter spots apparently sent by the local station or treat them differently from external spots. +- **Send test spot**: Sends the following entry to every currently connected DX cluster client: + +```text +Spotted callsign: DO5AMF +Comment: Testing DXC-Spot: Congrats, you donated $100! +Frequency: .300 on the selected fallback band +``` + +With `144 MHz` selected as the fallback band, the resulting frequency is approximately `144.300 MHz`. + +The comment is a deliberately retained Easter egg. It has no technical meaning and, despite being remarkably specific, does not initiate a payment. Its practical purpose is to make the test spot easy to identify in the logging software. + +The test works only if + +1. KST4Contest is connected to the ON4KST chat, +2. the local DX cluster server is enabled, and +3. at least one DX cluster client is connected to KST4Contest. + +KST4Contest does not generate a spot for every frequency found in the chat. An actual spot is created only when a directed message between two stations indicates a relevant antenna direction for the local station and a usable frequency is known for the sender. + +The complete derivation and logger setup are described under [Built-in DX Cluster Server](en-DX-Cluster-Server). + +--- ### Band Upgrade Hint after a Log Entry @@ -430,21 +467,83 @@ Further explanation: [Band Upgrade Hint after a Log Entry](en-Features#band-upgr ## Shortcut Settings -Configuration of quick-access buttons that appear directly in the main window. Clicking a button inserts the configured text into the send field. All [variables](en-Macros-and-Variables#variables) can be used. +![Configuration of shortcut buttons and text snippets](client_settings_window_shortcuts.png) + +Each entry in the upper part of the **Shortcuts** tab creates one button above the message field in the main window. Pressing the button appends its configured text to the current contents of the send field. + +If the shortcut contains a [variable](en-Macros-and-Variables#variables), it is replaced with its current value when the text is inserted. A shortcut such as + +```text +pse call me at MYQRGSHORT +``` + +may therefore insert: + +```text +pse call me at 144.388 +``` + +The exact entries `MYQRG` and `SECONDQRG` are additionally highlighted as QRG buttons. They insert the current frequency of the primary or secondary chat category respectively. + +The order of the table determines the order of the buttons in the main window. Manage the entries as follows: + +1. **Add shortcut** creates a new entry at the beginning of the list and immediately opens it for editing. +2. Double-click an existing entry to edit it. Press `Enter` to accept the change. +3. To remove an entry, delete its complete contents and confirm with `Enter`. +4. Use **Move selected up** and **Move selected down** to change the position of the selected entry. + +Changes appear in the main window immediately. Use **Save Settings** afterwards if they should remain available after the next program start. --- ## Snippet Settings -Text snippets are accessible via: +Snippets are longer text blocks intended primarily for messages to a selected station. They can be opened through: -- **Right-click** on a callsign in the user list -- **Right-click** in the CQ message table -- **Right-click** in the PM message table -- **Keyboard shortcuts**: `Ctrl+1` to `Ctrl+0` for the first 10 snippets +- a right-click on a station in the user list; +- a right-click on a message in the public chat table; +- a right-click on a message in the PM table; or +- `Ctrl+1` through `Ctrl+0` for the first ten entries in the snippet list. -If a callsign is selected in the user list, the snippet is addressed as a direct message: -`/CQ CALLSIGN ` +The keyboard mapping follows the order of the table: + +| Key combination | Snippet | +|---|---:| +| `Ctrl+1` | first entry | +| `Ctrl+2` | second entry | +| … | … | +| `Ctrl+9` | ninth entry | +| `Ctrl+0` | tenth entry | + +A snippet selected from a context menu is appended to the message already prepared in the send field. Selecting a station or message will normally have inserted the appropriate `/cq` destination first. + +A keyboard shortcut behaves differently: it replaces the current contents of the send field with a complete directed message: + +```text +/cq CALLSIGN snippet text +``` + +The complete visible callsign, including any suffix, is retained. Selecting `9A0BB-70` may therefore produce: + +```text +/cq 9A0BB-70 pse ur qrg? +``` + +The selected station's chat category is retained for transmission. If no station is selected, or no snippet is assigned to the chosen key combination, nothing is inserted. + +Variables are resolved when the snippet is inserted. Station-specific variables such as `QRZNAME`, `FIRSTAP` and `SECONDAP` refer to the currently selected station. The prepared message is not sent automatically and can still be checked or edited. Press `Enter` or **TX** to send it; `Esc` clears the send field. + +The snippet list is edited in the same way as the shortcut list: + +1. **Add new snippet** creates a new entry at the beginning of the list. +2. Double-click an existing entry to edit it. +3. Press `Enter` to accept the change. +4. Confirming an empty entry removes it. +5. **Move selected up** and **Move selected down** change both the displayed order and the assignment to `Ctrl+1` through `Ctrl+0`. + +The context menus and keyboard mappings are updated immediately. Use **Save Settings** afterwards to store the modified list permanently. + +The complete list of available placeholders and their limitations is described under [Macros and Variables](en-Macros-and-Variables). --- diff --git a/github_docs/en-DX-Cluster-Server.md b/github_docs/en-DX-Cluster-Server.md index 68050f8..bc7f896 100644 --- a/github_docs/en-DX-Cluster-Server.md +++ b/github_docs/en-DX-Cluster-Server.md @@ -43,6 +43,30 @@ Similar settings: --- +## Testing the Connection + +After the logger's DX cluster client has connected, use **Send test spot** to generate the following entry: + +```text +Spotted callsign: DO5AMF +Comment: Testing DXC-Spot: Congrats, you donated $100! +Frequency: .300 on the configured fallback band +``` + +With `144 MHz` selected as the fallback band, the spot appears at approximately `144.300 MHz`. + +The comment is a deliberately retained Easter egg. It makes the test entry easy to identify but has no other function. In particular, no donation or other external action is triggered. + +Three conditions must be met before running the test: + +1. KST4Contest is connected to the ON4KST chat. +2. The local DX cluster server is enabled. +3. The logging software's DX cluster client is connected to KST4Contest. + +If no client is connected, KST4Contest displays a corresponding message. A successful test therefore confirms that at least one connected client received the generated spot. + +--- + ## How It Works A spot is generated when **both** conditions are met: diff --git a/src/main/java/kst4contest/view/Kst4ContestApplication.java b/src/main/java/kst4contest/view/Kst4ContestApplication.java index b5dca5a..0e0fbdf 100644 --- a/src/main/java/kst4contest/view/Kst4ContestApplication.java +++ b/src/main/java/kst4contest/view/Kst4ContestApplication.java @@ -10724,7 +10724,7 @@ public class Kst4ContestApplication extends Application implements StatusUpdateL testSpot.setFrequency( new SimpleStringProperty("300") ); - testSpot.setQra("Congrats, you donated $100"); + testSpot.setQra("Testing DXC-Spot: Congrats, you donated $100!"); testSpot.setCallSign("DO5AMF"); if (!dxClusterServer diff --git a/website/src/features/macros.md b/website/src/features/macros.md index 40035e5..6543a24 100644 --- a/website/src/features/macros.md +++ b/website/src/features/macros.md @@ -20,6 +20,8 @@ related: ## Three different mechanisms +![Shortcut buttons and text snippets in the Preferences](/manual/assets/client_settings_window_shortcuts.png) + KST4Contest uses three related but distinct mechanisms: | Mechanism | Purpose |