feat(icom): Wake-on-LAN for a deck that sleeps with its server
A 7760 switched fully off takes its LAN server down, and no session means no console and no ON button — the one thing remote operation cannot tolerate. The rig's MAC is learned from every login and persisted; when a dial finds nobody home, the magic packet goes out to it before the next attempt. The rig wakes into standby, the session opens, and the ON button does the rest.
This commit is contained in:
@@ -159,6 +159,7 @@ const (
|
||||
keyCATIcomNetUser = "cat.icom.net.user" // Icom network: Network User1 ID
|
||||
keyCATIcomNetPass = "cat.icom.net.pass" // Icom network: Network User1 password
|
||||
keyCATIcomNetAudio = "cat.icom.net.audio" // Icom network: stream RX audio on 50003 (experimental)
|
||||
keyCATIcomNetMAC = "cat.icom.net.mac" // the rig's MAC, learned at login, for Wake-on-LAN
|
||||
keyAudioMonitorOn = "audio.monitor.on" // play the network RX audio through the Listening device (the stream itself stays open for the recorder either way)
|
||||
keyCATTCIHost = "cat.tci.host" // TCI host (Expert Electronics SunSDR / ExpertSDR2)
|
||||
keyCATTCIPort = "cat.tci.port" // TCI WebSocket port (default 40001)
|
||||
@@ -1296,6 +1297,12 @@ func (a *App) startup(ctx context.Context) {
|
||||
}
|
||||
a.startQSORecorderIfEnabled()
|
||||
|
||||
// The Icom network backend remembers the rig's MAC so a deck switched
|
||||
// fully off can be woken with a magic packet when a session is wanted.
|
||||
cat.SetIcomMACStore(
|
||||
func(mac string) { a.setSetting(keyCATIcomNetMAC, mac) },
|
||||
func() string { return a.settingOr(keyCATIcomNetMAC, "") },
|
||||
)
|
||||
a.reloadCAT()
|
||||
|
||||
// The QSO logbook lives where the ACTIVE PROFILE points it: the local SQLite
|
||||
|
||||
Reference in New Issue
Block a user