Skip to content

Commit 1e38870

Browse files
committed
Improvements on ups_networrk code
Improvements to the code managing the "ups.status" variable to take into account all possible values
1 parent f0975a3 commit 1e38870

File tree

1 file changed

+50
-13
lines changed

1 file changed

+50
-13
lines changed

WinNUT_V2/WinNUT_GUI/UPS_Network.vb

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -700,20 +700,57 @@ Public Class UPS_Network
700700
Dim BattInstantCurrent = (Me.OutputV * Me.Load) / (Me.BattV * 100)
701701
Me.BattRuntime = Math.Floor(Me.BattCapacity * 0.6 * Me.BattCh * (1 - PowerDivider) * 3600 / (BattInstantCurrent * 100))
702702
End If
703+
704+
Dim StatusArr = Me.Status.Trim().Split(" ")
705+
For Each State In StatusArr
706+
Select Case State
707+
Case "OL"
708+
If Not Update_Nut.Interval = Me.Delay Then
709+
Update_Nut.Stop()
710+
Update_Nut.Interval = Me.Delay
711+
Update_Nut.Start()
712+
End If
713+
If ShutdownStatus Then
714+
LogFile.LogTracing("Stop condition Canceled", LogLvl.LOG_NOTICE, Me, WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_SHUT_STOP))
715+
ShutdownStatus = False
716+
RaiseEvent Stop_Shutdown()
717+
End If
718+
Case "OB"
719+
If Update_Nut.Interval = Me.Delay Then
720+
Update_Nut.Stop()
721+
Update_Nut.Interval = If((Math.Floor(Me.Delay / 5) < 1000), 1000, Math.Floor(Me.Delay / 5))
722+
Update_Nut.Start()
723+
End If
724+
If ((Me.BattCh <= Me.Low_Batt Or Me.BattRuntime <= Me.Backup_Limit) And Not ShutdownStatus) Then
725+
LogFile.LogTracing("Stop condition reached", LogLvl.LOG_NOTICE, Me, WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_SHUT_START))
726+
RaiseEvent Shutdown_Condition()
727+
ShutdownStatus = True
728+
End If
729+
Case "FSD"
730+
LogFile.LogTracing("Stop condition imposed by the NUT server", LogLvl.LOG_NOTICE, Me, WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_NUT_FSD))
731+
RaiseEvent Shutdown_Condition()
732+
ShutdownStatus = True
733+
Case "LB", "HB"
734+
LogFile.LogTracing("High/Low Battery on UPS", LogLvl.LOG_NOTICE, Me)
735+
Case "CHRG"
736+
LogFile.LogTracing("Battery is Charging on UPS", LogLvl.LOG_NOTICE, Me)
737+
Case "DISCHRG"
738+
LogFile.LogTracing("Battery is Discharging on UPS", LogLvl.LOG_NOTICE, Me)
739+
Case "BYPASS"
740+
LogFile.LogTracing("UPS bypass circuit is active - no battery protection is available", LogLvl.LOG_NOTICE, Me)
741+
Case "CAL"
742+
LogFile.LogTracing("UPS is currently performing runtime calibration (on battery)", LogLvl.LOG_NOTICE, Me)
743+
Case "OFF"
744+
LogFile.LogTracing("UPS is offline and is not supplying power to the load", LogLvl.LOG_NOTICE, Me)
745+
Case "OVER"
746+
LogFile.LogTracing("UPS is overloaded", LogLvl.LOG_NOTICE, Me)
747+
Case "TRIM"
748+
LogFile.LogTracing("UPS is trimming incoming voltage", LogLvl.LOG_NOTICE, Me)
749+
Case "BOOST"
750+
LogFile.LogTracing("UPS is boosting incoming voltage", LogLvl.LOG_NOTICE, Me)
751+
End Select
752+
Next
703753
RaiseEvent DataUpdated()
704-
If Not Me.Status.Trim().StartsWith("OL") And (Me.BattCh <= Me.Low_Batt Or Me.BattRuntime <= Me.Backup_Limit) And Not ShutdownStatus Then
705-
LogFile.LogTracing("Stop condition reached", LogLvl.LOG_NOTICE, Me, WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_SHUT_START))
706-
RaiseEvent Shutdown_Condition()
707-
ShutdownStatus = True
708-
ElseIf ShutdownStatus And Me.Status.Trim().StartsWith("OL") Then
709-
LogFile.LogTracing("Stop condition Canceled", LogLvl.LOG_NOTICE, Me, WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_SHUT_STOP))
710-
ShutdownStatus = False
711-
RaiseEvent Stop_Shutdown()
712-
ElseIf Me.Follow_FSD And Me.Status.Trim().StartsWith("FSD") Then
713-
LogFile.LogTracing("Stop condition imposed by the NUT server", LogLvl.LOG_NOTICE, Me, WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_NUT_FSD))
714-
RaiseEvent Shutdown_Condition()
715-
ShutdownStatus = True
716-
End If
717754
End If
718755
Catch Excep As Exception
719756
Me.Disconnect(True)

0 commit comments

Comments
 (0)