From b8db84734360f9458847b4821dc352f1cfa51f0c Mon Sep 17 00:00:00 2001 From: rouggy Date: Tue, 13 Jan 2026 23:11:58 +0100 Subject: [PATCH] u --- cmd/server/web/dist/index.html | 31 ++++++++++--------- internal/api/device_manager.go | 1 - .../devices/rotatorgenius/rotatorgenius.go | 10 ++++-- web/src/components/RotatorGenius.svelte | 1 - web/src/components/Ultrabeam.svelte | 20 ------------ 5 files changed, 24 insertions(+), 39 deletions(-) diff --git a/cmd/server/web/dist/index.html b/cmd/server/web/dist/index.html index a4a477c..b0e5cdf 100644 --- a/cmd/server/web/dist/index.html +++ b/cmd/server/web/dist/index.html @@ -1,16 +1,17 @@ - - - - - - ShackMaster - F4BPO Shack - - - - - - - -
- + + + + + + ShackMaster - F4BPO Shack + + + + + + + +
+ + \ No newline at end of file diff --git a/internal/api/device_manager.go b/internal/api/device_manager.go index 2c0fda3..dbde011 100644 --- a/internal/api/device_manager.go +++ b/internal/api/device_manager.go @@ -119,7 +119,6 @@ func (dm *DeviceManager) Initialize() error { dm.flexRadio = flexradio.New( dm.config.Devices.FlexRadio.Host, dm.config.Devices.FlexRadio.Port, - dm.config.Devices.FlexRadio.InterlockName, ) // Set callback for immediate frequency changes (no waiting for update cycle) diff --git a/internal/devices/rotatorgenius/rotatorgenius.go b/internal/devices/rotatorgenius/rotatorgenius.go index ee98fc0..a7f2c22 100644 --- a/internal/devices/rotatorgenius/rotatorgenius.go +++ b/internal/devices/rotatorgenius/rotatorgenius.go @@ -23,8 +23,9 @@ type Client struct { } type Status struct { - Heading int `json:"heading"` - Connected bool `json:"connected"` + Heading int `json:"heading"` + TargetHeading int `json:"target_heading"` + Connected bool `json:"connected"` } func New(host string, port int) *Client { @@ -211,6 +212,11 @@ func (c *Client) parseStatus(response string) *Status { if err == nil { status.Heading = heading } + targetStr := response[19:22] + targetHeading, err := strconv.Atoi(strings.TrimSpace(targetStr)) + if err == nil { + status.TargetHeading = targetHeading + } } return status diff --git a/web/src/components/RotatorGenius.svelte b/web/src/components/RotatorGenius.svelte index 5e4b573..ab52377 100644 --- a/web/src/components/RotatorGenius.svelte +++ b/web/src/components/RotatorGenius.svelte @@ -53,7 +53,6 @@ } try { hasTarget = true; // Mark that we have a target - // Subtract 10 degrees to compensate for rotator momentum const adjustedHeading = (targetHeading + 360) % 360; await api.rotator.setHeading(adjustedHeading); } catch (err) { diff --git a/web/src/components/Ultrabeam.svelte b/web/src/components/Ultrabeam.svelte index 518b5a5..4ecb926 100644 --- a/web/src/components/Ultrabeam.svelte +++ b/web/src/components/Ultrabeam.svelte @@ -164,14 +164,6 @@

Ultrabeam VL2.3

- {#if interlockConnected && interlockState} -
- {interlockState === 'READY' ? '🔓 TX OK' : - interlockState === 'NOT_READY' ? '🔒 TX Block' : - interlockState === 'PTT_REQUESTED' ? '⏳ PTT' : - interlockState === 'TRANSMITTING' ? '📡 TX' : '❓'} -
- {/if}
@@ -353,18 +345,6 @@ gap: 12px; } - .interlock-badge { - padding: 4px 10px; - border-radius: 12px; - border: 2px solid; - font-size: 11px; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.5px; - background: rgba(0, 0, 0, 0.3); - transition: all 0.2s; - } - h2 { margin: 0; font-size: 20px;