EasyManua.ls Logo

NEC Express5800 Series - Page 232

NEC Express5800 Series
238 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
3. Accessing Data for Electric Power, Temperature, and Processor Utilization
Express5800/R120h-1E, R120h-2E Maintenance Guide
232
Chapter 3 Appendix
If outparams.Completioncode = 0 Then
If outparams.ResponseData(6) = 1 Then ' Full Sensor Record
call GetSensorType(Reserve_LS, Reserve_MS, Record_LS, Record_MS, sensorType)
If sensorType = 1 Then ' Temperature
WScript.Echo "==========================================="
call GetIDString(Reserve_LS, Reserve_MS, Record_LS, Record_MS)
WScript.Echo " Sensor Type = Temperature"
sensorNum = outparams.ResponseData(10)
call GetSensor(Reserve_LS, Reserve_MS, Record_LS, Record_MS,sensorNum)
End If
End If
Record_LS = outparams.ResponseData(1)
Record_MS = outparams.ResponseData(2)
If Record_LS = &hff And Record_MS = &hff Then
exit For
End If
End If
Next
Sub GetSensorType(rv_ls, rv_ms, rc_ls, rc_ms, sensorType)
Dim outtmp
oinparams.networkfunction = &ha
oinparams.lun = 0
oinparams.responderaddress = &h20
oinparams.command = &h23
oinparams.requestdata = array(rv_ls, rv_ms, rc_ls, rc_ms, 12, 2)
oinparams.requestdatasize = 6
set outtmp = oipmi.execmethod_("requestresponse",oinparams)
sensorType = outtmp.ResponseData(3)
End Sub
Sub GetSensor(rv_ls, rv_ms, rc_ls, rc_ms, sensorNum)
Dim outtmp, units1, units2, sensortype
oinparams.networkfunction = &ha
oinparams.lun = 0
oinparams.responderaddress = &h20
oinparams.command = &h23
oinparams.requestdata = array(rv_ls, rv_ms, rc_ls, rc_ms, 20, 14)
oinparams.requestdatasize = 6
set outtmp = oipmi.execmethod_("requestresponse",oinparams)
units1 = outtmp.ResponseData(3)
Select Case outtmp.ResponseData(4)
case 0: units2 = "unspecified"
case 1: units2 = "degrees C"
case 6: units2 = "Watts"
case else: units2 = "Refer to IPMI Specification: Type=0x" _
& hex(outtmp.ResponseData(4))
End Select
' (Get Sendor Reading)
Dim sensorData, rawData, currentValue
oinparams.networkfunction = &h4
oinparams.lun = 0
oinparams.responderaddress = &h20
oinparams.command = &h2d
oinparams.requestdata = array(sensorNum)
oinparams.requestdatasize = 1
set sensorData = oipmi.execmethod_("requestresponse",oinparams)
If sensorData.Completioncode <> 0 Then
'WScript.Echo " Sensor Not Available"
exit Sub
End If
rawData = sensorData.ResponseData(1)
If units1 and &h40 Then
If rawData And &h80 Then
rawData = rawData Xor &hff
End If
Elseif units1 and &h80 Then
call get2complement(rawData, rawData, 8)
End If
If (sensorData.ResponseData(2) And &h80) = 0 Or _
(sensorData.ResponseData(2) And &h40) = 0 Or _
(sensorData.ResponseData(2) And &h20) Then
WScript.Echo " Event Status: Unavailable"
Else
'WScript.Echo " Event Status: ok"
Dim M,B,k1,k2
Dim ret
M = (outtmp.ResponseData(8) And &hc0) * 4 + outtmp.ResponseData(7)
B = (outtmp.ResponseData(10) And &hc0) * 4 + outtmp.ResponseData(9)
call get2complement(M, M, 10)
call get2complement(B, B, 10)
call get2complement(outtmp.ResponseData(12) And &h0f, k1, 4)
call get2complement((outtmp.ResponseData(12) And &hf0)/16, k2, 4)
currentValue = CDbl (((M * rawData) + (B * (10 ^ k1))) * (10 ^ k2))
WScript.Echo " Current Value = " & currentValue & " " & units2
End If
End Sub

Table of Contents

Other manuals for NEC Express5800 Series

Related product manuals