@@ -11,10 +11,34 @@ Imports System.Globalization
11
11
Imports System.Windows.Forms
12
12
13
13
Public 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
14
38
Private Const CosPhi As Double = 0.6
15
39
' How many milliseconds to wait before the Reconnect routine tries again.
16
40
# If DEBUG Then
17
- Private Const DEFAULT_RECONNECT_WAIT_MS As Double = 3000
41
+ Private Const DEFAULT_RECONNECT_WAIT_MS As Double = 5000
18
42
# Else
19
43
Private Const DEFAULT_RECONNECT_WAIT_MS As Double = 30000
20
44
# End If
@@ -96,29 +120,18 @@ Public Class UPS_Device
96
120
Public Event Shutdown_Condition()
97
121
Public Event Stop_Shutdown()
98
122
99
- Private Polling_Interval As Integer
100
123
Private WithEvents Update_Data As New Timer
101
124
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
107
125
108
- Public ReadOnly Property IsAuthenticated() As Boolean
109
- Get
110
- Return Me .Nut_Socket.Auth_Success
111
- End Get
112
- End Property
113
126
114
127
Public Sub New ( ByRef Nut_Config As Nut_Parameter, ByRef LogFile As Logger, pollInterval As Integer )
115
128
Me .LogFile = LogFile
116
129
Me .Nut_Config = Nut_Config
117
- ' Polling_Interval = pollInterval
118
- Update_Data.Interval = pollInterval
130
+ PollingInterval = pollInterval
119
131
ciClone = CType (CultureInfo.InvariantCulture.Clone(), CultureInfo)
120
132
ciClone.NumberFormat.NumberDecimalSeparator = "."
121
133
Nut_Socket = New Nut_Socket( Me .Nut_Config, LogFile)
134
+
122
135
With Reconnect_Nut
123
136
.Interval = DEFAULT_RECONNECT_WAIT_MS
124
137
.Enabled = False
@@ -135,24 +148,19 @@ Public Class UPS_Device
135
148
' Dim UPSName = Me.Nut_Config.UPSName
136
149
LogFile.LogTracing( "Beginning connection: " & Nut_Config.ToString(), LogLvl.LOG_DEBUG, Me )
137
150
138
- If Me . Nut_Socket.Connect() And Me . Nut_Socket.IsConnected Then
151
+ If Nut_Socket.Connect() And Nut_Socket.IsConnected Then
139
152
LogFile.LogTracing( "TCP Socket Created" , LogLvl.LOG_NOTICE, Me )
140
- ' Me.Socket_Status = True
153
+
141
154
If Nut_Socket.IsKnownUPS(Nut_Config.UPSName) Then
142
- Me . UPS_Datas = GetUPSProductInfo()
155
+ UPS_Datas = GetUPSProductInfo()
143
156
Init_Constant(Nut_Socket)
144
157
Update_Data.Start()
145
158
RaiseEvent Connected( Me )
146
159
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 )
148
161
RaiseEvent Unknown_UPS()
162
+ Disconnect( True , False , True )
149
163
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
156
164
End If
157
165
End Sub
158
166
@@ -188,17 +196,8 @@ Public Class UPS_Device
188
196
# Region "Socket Interaction"
189
197
190
198
Private Sub SocketDisconnected() Handles Nut_Socket.SocketDisconnected
191
- ' WatchDog.Stop()
192
199
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
+
202
201
RaiseEvent Disconnected()
203
202
End Sub
204
203
@@ -210,7 +209,7 @@ Public Class UPS_Device
210
209
''' <param name="sender"></param>
211
210
''' <param name="e"></param>
212
211
Private Sub Event_WatchDog(sender As Object , e As EventArgs)
213
- If Me . IsConnected Then
212
+ If IsConnected Then
214
213
Dim Nut_Query = Nut_Socket.Query_Data( "" )
215
214
If Nut_Query.Response = NUTResponse.NORESPONSE Then
216
215
LogFile.LogTracing( "WatchDog Socket report a Broken State" , LogLvl.LOG_WARNING, Me )
@@ -234,15 +233,15 @@ Public Class UPS_Device
234
233
End Sub
235
234
236
235
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
239
238
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
243
242
LogFile.LogTracing( "Nut Host Reconnected" , LogLvl.LOG_DEBUG, Me )
244
243
Reconnect_Nut.Stop()
245
- Me . Retry = 0
244
+ Retry = 0
246
245
RaiseEvent ReConnected( Me )
247
246
End If
248
247
Else
@@ -271,44 +270,44 @@ Public Class UPS_Device
271
270
272
271
Private Function GetUPSProductInfo() As UPS_Datas
273
272
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" ))
279
278
Return UDatas
280
279
End Function
281
280
282
281
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)
286
285
End Sub
287
286
288
287
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
290
289
LogFile.LogTracing( "Enter Retrieve_UPS_Datas" , LogLvl.LOG_DEBUG, Me )
291
290
Try
292
291
Dim UPS_rt_Status As String
293
292
Dim InputA As Double
294
293
' 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
297
296
Select Case "Unknown"
298
297
Case .Mfr, .Model, .Serial, .Firmware
299
- Me . UPS_Datas = GetUPSProductInfo()
298
+ UPS_Datas = GetUPSProductInfo()
300
299
End Select
301
300
End With
302
- With Me . UPS_Datas.UPS_Value
301
+ With UPS_Datas.UPS_Value
303
302
.Batt_Charge = Double .Parse(GetUPSVar( "battery.charge" , UPSName, 255 ), ciClone)
304
303
.Batt_Voltage = Double .Parse(GetUPSVar( "battery.voltage" , UPSName, 12 ), ciClone)
305
304
.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)
307
306
.Input_Voltage = Double .Parse(GetUPSVar( "input.voltage" , UPSName, 220 ), ciClone)
308
307
.Output_Voltage = Double .Parse(GetUPSVar( "output.voltage" , UPSName, .Input_Voltage), ciClone)
309
308
.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)
312
311
If .Output_Power = 0 Then
313
312
.Output_Power = Double .Parse((GetUPSVar( "ups.power.nominal" , UPSName, 0 )), ciClone)
314
313
If .Output_Power = 0 Then
@@ -421,11 +420,11 @@ Public Class UPS_Device
421
420
' Try
422
421
' LogFile.LogTracing("Enter GetUPSVar", LogLvl.LOG_DEBUG, Me)
423
422
'If Not Me.ConnectionStatus Then
424
- If Not Me . IsConnected Then
423
+ If Not IsConnected Then
425
424
Throw New Nut_Exception(Nut_Exception_Value.SOCKET_BROKEN, varName)
426
425
Return Nothing
427
426
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)
429
428
430
429
Select Case Nut_Query.Response
431
430
Case NUTResponse.OK
@@ -464,15 +463,15 @@ Public Class UPS_Device
464
463
465
464
Public Function GetUPS_ListVar() As List( Of UPS_List_Datas)
466
465
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
468
467
Try
469
468
LogFile.LogTracing( "Enter GetUPS_ListVar" , LogLvl.LOG_DEBUG, Me )
470
469
'If Not Me.ConnectionStatus Then
471
- If Not Me . IsConnected Then
470
+ If Not IsConnected Then
472
471
Throw New Nut_Exception(Nut_Exception_Value.SOCKET_BROKEN, Query)
473
472
Return Nothing
474
473
Else
475
- Dim List_Var = Me . Nut_Socket.Query_List_Datas(Query)
474
+ Dim List_Var = Nut_Socket.Query_List_Datas(Query)
476
475
If Not IsNothing(List_Var) Then
477
476
Response = List_Var
478
477
End If
0 commit comments