Add Starlink status lines for the physical gateway pane (closes #3) (#7)
check / check (push) Failing after 5s
check / check (push) Failing after 5s
Detection is a TCP connect to the dish endpoint bound to the physical interface; once a dish answers, get_status is read every 5s and two status lines render under the physical pane, red on disconnect or alert. No dish: nothing drawn, no RPC. Minimal vendored proto bindings for get_status only. Independent review passed (PR 7 comment 100012). Model: opus-4-8 (implementation and review); model: claude-fable-5 (merge)
This commit was merged in pull request #7.
This commit is contained in:
@@ -1,7 +1,52 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.eeqj.de/sneak/rtnetmon/internal/starlink"
|
||||
)
|
||||
|
||||
// Test-only accessors exposing unexported state for white-box assertions.
|
||||
|
||||
// SetStarlinkClient injects a Starlink client for iface, bypassing the real
|
||||
// gRPC dialer so the loop can be driven with a fake.
|
||||
func (m *Monitor) SetStarlinkClient(iface string, c starlink.Client) {
|
||||
for _, st := range m.interfaces {
|
||||
if st.Name == iface {
|
||||
m.slPane = st
|
||||
m.slState = &starlinkState{}
|
||||
m.slClient = c
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// StarlinkEnabled reports whether a Starlink client is configured.
|
||||
func (m *Monitor) StarlinkEnabled() bool { return m.slClient != nil }
|
||||
|
||||
// StarlinkPaneName returns the name of the pane the Starlink lines attach
|
||||
// to, or "" if none.
|
||||
func (m *Monitor) StarlinkPaneName() string {
|
||||
if m.slPane == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
return m.slPane.Name
|
||||
}
|
||||
|
||||
// StarlinkProbeStep runs one detection step.
|
||||
func (m *Monitor) StarlinkProbeStep(ctx context.Context) { m.starlinkProbe(ctx) }
|
||||
|
||||
// StarlinkRefreshStep runs one status-refresh step.
|
||||
func (m *Monitor) StarlinkRefreshStep(ctx context.Context) { m.starlinkRefresh(ctx) }
|
||||
|
||||
// StarlinkSnapshot returns the current Starlink display state: detected,
|
||||
// have-status, and the latest status.
|
||||
func (m *Monitor) StarlinkSnapshot() (bool, bool, starlink.Status) {
|
||||
return m.slState.snapshot()
|
||||
}
|
||||
|
||||
// ReachabilityHosts returns the configured reachability hosts.
|
||||
func (m *Monitor) ReachabilityHosts() []string { return m.reachabilityHosts }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user