mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
Prevent OS sleep and display blanking while SDR is running
Add PowerInhibit.pas with InhibitSleep/UninhibitSleep: - Windows: SetThreadExecutionState (kernel32, no child process) - macOS: caffeinate -d -i -s -w <PID> (auto-exits on crash via -w flag) - Linux: systemd-inhibit with kill-0 poll loop (releases within 5s on crash) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-1
@@ -39,7 +39,8 @@ uses
|
||||
WinFirewall,
|
||||
BoardUtils, WisdomBuilder, UISync,
|
||||
FlatEdit, FMRepeater,
|
||||
ChannelStore, ChannelsForm;
|
||||
ChannelStore, ChannelsForm,
|
||||
PowerInhibit;
|
||||
|
||||
const
|
||||
CLR_BG = TColor($00101010);
|
||||
@@ -1464,6 +1465,7 @@ begin
|
||||
FNetwork.UpdateState(XvtrTranslate(FCenterFreq), XvtrTranslate(ActiveTXFreqHz), 0, False, True, True);
|
||||
FNetwork.SetRunAndFreq(False, XvtrTranslate(FCenterFreq), XvtrTranslate(FCenterFreq), 0);
|
||||
FRunning := False;
|
||||
UninhibitSleep;
|
||||
FTransmitting := False;
|
||||
if FWDSPReady then FDSPEngine.SetTXRun(False);
|
||||
end;
|
||||
@@ -3046,6 +3048,7 @@ begin
|
||||
BtnStartStop.Caption := 'START';
|
||||
StyleButton(BtnStartStop, False);
|
||||
FRunning := False;
|
||||
UninhibitSleep;
|
||||
FNetwork.SetRunAndFreq(False, XvtrTranslate(FCenterFreq), XvtrTranslate(FCenterFreq), 0);
|
||||
SetRadioOfflineStatus('Hardware timeout');
|
||||
BtnMOX.Enabled := False;
|
||||
@@ -3057,6 +3060,7 @@ begin
|
||||
BtnStartStop.Caption := 'START';
|
||||
StyleButton(BtnStartStop, False);
|
||||
FRunning := False;
|
||||
UninhibitSleep;
|
||||
FNetwork.SetRunAndFreq(False, XvtrTranslate(FCenterFreq), XvtrTranslate(FCenterFreq), 0);
|
||||
SetRadioOfflineStatus('Connection lost');
|
||||
BtnMOX.Enabled := False;
|
||||
@@ -3897,6 +3901,7 @@ begin
|
||||
FNetwork.UpdateState(XvtrTranslate(FCenterFreq), XvtrTranslate(ActiveTXFreqHz), 0, False, True, True);
|
||||
FNetwork.SetRunAndFreq(False, XvtrTranslate(FCenterFreq), XvtrTranslate(FCenterFreq), 0);
|
||||
FRunning := False;
|
||||
UninhibitSleep;
|
||||
FTransmitting := False;
|
||||
if FWDSPReady then FDSPEngine.SetTXRun(False);
|
||||
StyleButton(BtnMOX, False);
|
||||
@@ -4220,6 +4225,7 @@ begin
|
||||
FNetwork.UpdateState(XvtrTranslate(FCenterFreq), XvtrTranslate(ActiveTXFreqHz), FDriveLevel, False, True, True);
|
||||
FNetwork.SetRunAndFreq(True, XvtrTranslate(FCenterFreq), XvtrTranslate(FCenterFreq), FDriveLevel);
|
||||
FRunning := True;
|
||||
InhibitSleep;
|
||||
FRXStartTime := GetTickCount64;
|
||||
FRXLastPktTime := 0;
|
||||
FRXPacketCount := 0;
|
||||
|
||||
Reference in New Issue
Block a user