From ee83005ac496459f9457822e34d94c92fb23671b Mon Sep 17 00:00:00 2001 From: Sebastian Delmont Date: Thu, 10 Nov 2022 08:46:37 -0500 Subject: [PATCH] Reload the roster when toggling setting. Plus notes. --- package.nw/lib/services/pstrotator.js | 38 ++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/package.nw/lib/services/pstrotator.js b/package.nw/lib/services/pstrotator.js index 563f8b9a..c9476f8c 100644 --- a/package.nw/lib/services/pstrotator.js +++ b/package.nw/lib/services/pstrotator.js @@ -1,3 +1,14 @@ +/** + * PSTRotator is a third party application (windows-only) that interfaces with dozens of antenna rotators. + * It offers a way for other apps to request rotation to a specific azimuth, or a grid square. + * + * Other rotator control apps, like [CatRotator](https://www.pianetaradio.it/blog/catrotator/) also support this API. + * + * The most comprehensive API details are in this Groups.io post: + * https://groups.io/g/PstRotator/message/5825 + * + */ + validSettings.push("pstrotatorSettings") var def_pstrotatorSettings = { @@ -10,15 +21,35 @@ var g_pstrotatorSettings = {}; function pstrotatorServiceChanged() { - g_pstrotatorSettings.enable = pstrotatorCheckBox.checked; + if (g_pstrotatorSettings.enabled != pstrotatorCheckBox.checked) + { + // This setting toggles the presence of a contextual menu item in the roster, + // which is constructed only during roster initialization. + // + // So when this setting is changed, we need to reload the entire roster window. + // + g_pstrotatorSettings.enable = pstrotatorCheckBox.checked; + if (g_rosterInitialized) + { + try + { + g_callRosterWindowHandle.window.location.reload(); + } + catch (e) + { + console.error(e); + } + } + } + g_pstrotatorSettings.ip = pstrotatorIpInput.value; g_pstrotatorSettings.port = pstrotatorPortInput.value; localStorage.pstrotatorSettings = JSON.stringify(g_pstrotatorSettings); } -function aimRotator({callObj}) - console.log("Aim Rotator", callObj) +function aimRotator(info) { + const { callObj } = info if ( g_pstrotatorSettings.enable == true && @@ -41,7 +72,6 @@ function aimRotator({callObj}) try { - console.log("UDP Payload", payload) sendUdpMessage( payload, payload.length,