@@ -700,20 +700,57 @@ Public Class UPS_Network
700
700
Dim BattInstantCurrent = ( Me .OutputV * Me .Load) / ( Me .BattV * 100 )
701
701
Me .BattRuntime = Math.Floor( Me .BattCapacity * 0.6 * Me .BattCh * ( 1 - PowerDivider) * 3600 / (BattInstantCurrent * 100 ))
702
702
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
703
753
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
717
754
End If
718
755
Catch Excep As Exception
719
756
Me .Disconnect( True )
0 commit comments