@@ -11,10 +11,34 @@ Imports System.Globalization
1111Imports System.Windows.Forms
1212
1313Public Class UPS_Device
14+ # Region "Properties"
15+
16+ Public ReadOnly Property IsConnected() As Boolean
17+ Get
18+ Return (Nut_Socket.IsConnected) ' And Me.Socket_Status
19+ End Get
20+ End Property
21+
22+ Public ReadOnly Property IsAuthenticated() As Boolean
23+ Get
24+ Return Nut_Socket.Auth_Success
25+ End Get
26+ End Property
27+
28+ Public Property PollingInterval As Integer
29+ Get
30+ Return Update_Data.Interval
31+ End Get
32+ Set (value As Integer )
33+ Update_Data.Interval = value
34+ End Set
35+ End Property
36+
37+ # End Region
1438 Private Const CosPhi As Double = 0.6
1539 ' How many milliseconds to wait before the Reconnect routine tries again.
1640# If DEBUG Then
17- Private Const DEFAULT_RECONNECT_WAIT_MS As Double = 3000
41+ Private Const DEFAULT_RECONNECT_WAIT_MS As Double = 5000
1842# Else
1943 Private Const DEFAULT_RECONNECT_WAIT_MS As Double = 30000
2044# End If
@@ -96,29 +120,18 @@ Public Class UPS_Device
96120 Public Event Shutdown_Condition()
97121 Public Event Stop_Shutdown()
98122
99- Private Polling_Interval As Integer
100123 Private WithEvents Update_Data As New Timer
101124
102- Public ReadOnly Property IsConnected() As Boolean
103- Get
104- Return ( Me .Nut_Socket.IsConnected) ' And Me.Socket_Status
105- End Get
106- End Property
107125
108- Public ReadOnly Property IsAuthenticated() As Boolean
109- Get
110- Return Me .Nut_Socket.Auth_Success
111- End Get
112- End Property
113126
114127 Public Sub New ( ByRef Nut_Config As Nut_Parameter, ByRef LogFile As Logger, pollInterval As Integer )
115128 Me .LogFile = LogFile
116129 Me .Nut_Config = Nut_Config
117- ' Polling_Interval = pollInterval
118- Update_Data.Interval = pollInterval
130+ PollingInterval = pollInterval
119131 ciClone = CType (CultureInfo.InvariantCulture.Clone(), CultureInfo)
120132 ciClone.NumberFormat.NumberDecimalSeparator = "."
121133 Nut_Socket = New Nut_Socket( Me .Nut_Config, LogFile)
134+
122135 With Reconnect_Nut
123136 .Interval = DEFAULT_RECONNECT_WAIT_MS
124137 .Enabled = False
@@ -135,24 +148,19 @@ Public Class UPS_Device
135148 ' Dim UPSName = Me.Nut_Config.UPSName
136149 LogFile.LogTracing( "Beginning connection: " & Nut_Config.ToString(), LogLvl.LOG_DEBUG, Me )
137150
138- If Me . Nut_Socket.Connect() And Me . Nut_Socket.IsConnected Then
151+ If Nut_Socket.Connect() And Nut_Socket.IsConnected Then
139152 LogFile.LogTracing( "TCP Socket Created" , LogLvl.LOG_NOTICE, Me )
140- ' Me.Socket_Status = True
153+
141154 If Nut_Socket.IsKnownUPS(Nut_Config.UPSName) Then
142- Me . UPS_Datas = GetUPSProductInfo()
155+ UPS_Datas = GetUPSProductInfo()
143156 Init_Constant(Nut_Socket)
144157 Update_Data.Start()
145158 RaiseEvent Connected( Me )
146159 Else
147- LogFile.LogTracing( "Given UPS Name is unknown" , LogLvl.LOG_NOTICE , Me )
160+ LogFile.LogTracing( "Given UPS Name is unknown" , LogLvl.LOG_ERROR , Me )
148161 RaiseEvent Unknown_UPS()
162+ Disconnect( True , False , True )
149163 End If
150- ' WatchDog.Start()
151- 'Else
152- ' If Not Reconnect_Nut.Enabled Then
153- ' RaiseEvent Lost_Connect()
154- ' Me.Socket_Status = False
155- ' End If
156164 End If
157165 End Sub
158166
@@ -188,17 +196,8 @@ Public Class UPS_Device
188196# Region "Socket Interaction"
189197
190198 Private Sub SocketDisconnected() Handles Nut_Socket.SocketDisconnected
191- ' WatchDog.Stop()
192199 LogFile.LogTracing( "NutSocket raised Disconnected event." , LogLvl.LOG_DEBUG, Me )
193- 'If Not Me.Socket_Status Then
194- ' RaiseEvent Lost_Connect()
195- 'End If
196- ' Me.Socket_Status = False
197- 'If Me.Nut_Config.AutoReconnect Then
198- ' LogFile.LogTracing("Reconnection Process Started", LogLvl.LOG_NOTICE, Me)
199- ' Reconnect_Nut.Enabled = True
200- ' Reconnect_Nut.Start()
201- 'End If
200+
202201 RaiseEvent Disconnected()
203202 End Sub
204203
@@ -210,7 +209,7 @@ Public Class UPS_Device
210209 ''' <param name="sender"></param>
211210 ''' <param name="e"></param>
212211 Private Sub Event_WatchDog(sender As Object , e As EventArgs)
213- If Me . IsConnected Then
212+ If IsConnected Then
214213 Dim Nut_Query = Nut_Socket.Query_Data( "" )
215214 If Nut_Query.Response = NUTResponse.NORESPONSE Then
216215 LogFile.LogTracing( "WatchDog Socket report a Broken State" , LogLvl.LOG_WARNING, Me )
@@ -234,15 +233,15 @@ Public Class UPS_Device
234233 End Sub
235234
236235 Private Sub Reconnect_Socket(sender As Object , e As EventArgs) Handles Reconnect_Nut.Tick
237- Me . Retry += 1
238- If Me . Retry <= Me . MaxRetry Then
236+ Retry += 1
237+ If Retry <= MaxRetry Then
239238 RaiseEvent New_Retry()
240- LogFile.LogTracing( String .Format( "Try Reconnect {0} / {1}" , Me . Retry, Me . MaxRetry), LogLvl.LOG_NOTICE, Me , String .Format(WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_NEW_RETRY), Me . Retry, Me . MaxRetry))
241- Me . Connect_UPS()
242- If Me . IsConnected Then
239+ LogFile.LogTracing( String .Format( "Try Reconnect {0} / {1}" , Retry, MaxRetry), LogLvl.LOG_NOTICE, Me , String .Format(WinNUT_Globals.StrLog.Item(AppResxStr.STR_LOG_NEW_RETRY), Retry, MaxRetry))
240+ Connect_UPS()
241+ If IsConnected Then
243242 LogFile.LogTracing( "Nut Host Reconnected" , LogLvl.LOG_DEBUG, Me )
244243 Reconnect_Nut.Stop()
245- Me . Retry = 0
244+ Retry = 0
246245 RaiseEvent ReConnected( Me )
247246 End If
248247 Else
@@ -271,44 +270,44 @@ Public Class UPS_Device
271270
272271 Private Function GetUPSProductInfo() As UPS_Datas
273272 Dim UDatas As New UPS_Datas
274- Dim UPSName = Me . Nut_Config.UPSName
275- UDatas.Mfr = Trim( Me . GetUPSVar("ups.mfr" , UPSName, "Unknown" ))
276- UDatas.Model = Trim( Me . GetUPSVar("ups.model" , UPSName, "Unknown" ))
277- UDatas.Serial = Trim( Me . GetUPSVar("ups.serial" , UPSName, "Unknown" ))
278- UDatas.Firmware = Trim( Me . GetUPSVar("ups.firmware" , UPSName, "Unknown" ))
273+ Dim UPSName = Nut_Config.UPSName
274+ UDatas.Mfr = Trim(GetUPSVar( "ups.mfr" , UPSName, "Unknown" ))
275+ UDatas.Model = Trim(GetUPSVar( "ups.model" , UPSName, "Unknown" ))
276+ UDatas.Serial = Trim(GetUPSVar( "ups.serial" , UPSName, "Unknown" ))
277+ UDatas.Firmware = Trim(GetUPSVar( "ups.firmware" , UPSName, "Unknown" ))
279278 Return UDatas
280279 End Function
281280
282281 Private Sub Init_Constant( ByRef Nut_Socket As Nut_Socket)
283- Dim UPSName = Me . Nut_Config.UPSName
284- Me . UPS_Datas.UPS_Value.Batt_Capacity = Double .Parse( Me . GetUPSVar("battery.capacity" , UPSName, 7 ), ciClone)
285- Me . Freq_Fallback = Double .Parse( Me . GetUPSVar("output.frequency.nominal" , UPSName, ( 50 + CInt (WinNUT_Params.Arr_Reg_Key.Item( "FrequencySupply" )) * 10 )), Me . ciClone)
282+ Dim UPSName = Nut_Config.UPSName
283+ UPS_Datas.UPS_Value.Batt_Capacity = Double .Parse(GetUPSVar( "battery.capacity" , UPSName, 7 ), ciClone)
284+ Freq_Fallback = Double .Parse(GetUPSVar( "output.frequency.nominal" , UPSName, ( 50 + CInt (WinNUT_Params.Arr_Reg_Key.Item( "FrequencySupply" )) * 10 )), ciClone)
286285 End Sub
287286
288287 Public Sub Retrieve_UPS_Datas() Handles Update_Data.Tick ' As UPS_Datas
289- Dim UPSName = Me . Nut_Config.UPSName
288+ Dim UPSName = Nut_Config.UPSName
290289 LogFile.LogTracing( "Enter Retrieve_UPS_Datas" , LogLvl.LOG_DEBUG, Me )
291290 Try
292291 Dim UPS_rt_Status As String
293292 Dim InputA As Double
294293 ' LogFile.LogTracing("Enter Retrieve_UPS_Data", LogLvl.LOG_DEBUG, Me)
295- If Me . IsConnected Then
296- With Me . UPS_Datas
294+ If IsConnected Then
295+ With UPS_Datas
297296 Select Case "Unknown"
298297 Case .Mfr, .Model, .Serial, .Firmware
299- Me . UPS_Datas = GetUPSProductInfo()
298+ UPS_Datas = GetUPSProductInfo()
300299 End Select
301300 End With
302- With Me . UPS_Datas.UPS_Value
301+ With UPS_Datas.UPS_Value
303302 .Batt_Charge = Double .Parse(GetUPSVar( "battery.charge" , UPSName, 255 ), ciClone)
304303 .Batt_Voltage = Double .Parse(GetUPSVar( "battery.voltage" , UPSName, 12 ), ciClone)
305304 .Batt_Runtime = Double .Parse(GetUPSVar( "battery.runtime" , UPSName, 86400 ), ciClone)
306- .Power_Frequency = Double .Parse(GetUPSVar( "input.frequency" , UPSName, Double .Parse( Me . GetUPSVar("output.frequency" , UPSName, Freq_Fallback), ciClone)), ciClone)
305+ .Power_Frequency = Double .Parse(GetUPSVar( "input.frequency" , UPSName, Double .Parse(GetUPSVar( "output.frequency" , UPSName, Freq_Fallback), ciClone)), ciClone)
307306 .Input_Voltage = Double .Parse(GetUPSVar( "input.voltage" , UPSName, 220 ), ciClone)
308307 .Output_Voltage = Double .Parse(GetUPSVar( "output.voltage" , UPSName, .Input_Voltage), ciClone)
309308 .Load = Double .Parse(GetUPSVar( "ups.load" , UPSName, 100 ), ciClone)
310- UPS_rt_Status = Me . GetUPSVar("ups.status" , UPSName, "OL" )
311- .Output_Power = Double .Parse(( Me . GetUPSVar("ups.realpower.nominal" , UPSName, 0 )), ciClone)
309+ UPS_rt_Status = GetUPSVar( "ups.status" , UPSName, "OL" )
310+ .Output_Power = Double .Parse((GetUPSVar( "ups.realpower.nominal" , UPSName, 0 )), ciClone)
312311 If .Output_Power = 0 Then
313312 .Output_Power = Double .Parse((GetUPSVar( "ups.power.nominal" , UPSName, 0 )), ciClone)
314313 If .Output_Power = 0 Then
@@ -421,11 +420,11 @@ Public Class UPS_Device
421420 ' Try
422421 ' LogFile.LogTracing("Enter GetUPSVar", LogLvl.LOG_DEBUG, Me)
423422 'If Not Me.ConnectionStatus Then
424- If Not Me . IsConnected Then
423+ If Not IsConnected Then
425424 Throw New Nut_Exception(Nut_Exception_Value.SOCKET_BROKEN, varName)
426425 Return Nothing
427426 Else
428- Dim Nut_Query = Me . Nut_Socket.Query_Data("GET VAR " & UPSName & " " & varName)
427+ Dim Nut_Query = Nut_Socket.Query_Data( "GET VAR " & UPSName & " " & varName)
429428
430429 Select Case Nut_Query.Response
431430 Case NUTResponse.OK
@@ -464,15 +463,15 @@ Public Class UPS_Device
464463
465464 Public Function GetUPS_ListVar() As List( Of UPS_List_Datas)
466465 Dim Response = New List( Of UPS_List_Datas)
467- Dim Query = "LIST VAR " & Me . Nut_Config.UPSName
466+ Dim Query = "LIST VAR " & Nut_Config.UPSName
468467 Try
469468 LogFile.LogTracing( "Enter GetUPS_ListVar" , LogLvl.LOG_DEBUG, Me )
470469 'If Not Me.ConnectionStatus Then
471- If Not Me . IsConnected Then
470+ If Not IsConnected Then
472471 Throw New Nut_Exception(Nut_Exception_Value.SOCKET_BROKEN, Query)
473472 Return Nothing
474473 Else
475- Dim List_Var = Me . Nut_Socket.Query_List_Datas(Query)
474+ Dim List_Var = Nut_Socket.Query_List_Datas(Query)
476475 If Not IsNothing(List_Var) Then
477476 Response = List_Var
478477 End If
0 commit comments