Operating System - OpenVMS
Showing results for 
Search instead for 
Did you mean: 

getting the temperature of a DS10

Honored Contributor

getting the temperature of a DS10

I use the procedure http://dcl.openvms.org/stories.php?story=03/07/10/8132100 to get the temperature on a good number of DS10. They have all the same level of patches, with Vms 7.2-1 or Vms 7.3-2

It works fine, except on 2, which first worked fine

1) a Alphaserver DS10 466 Mhz with 7.2-1, which gave yesterday 39 Celsius, and then since this night, always gives
$ wr sys$output f$getsyi("temperature_vector")

2) a AlphaServer DS10 617 MHz with 7.3-2, which has given once only the same 254, and before and since gives the reasonable %X26, so 38 Celsius

I wonder if I should check something after getting this value, but $status is the same on the 2 nodes
$STATUS == "%X00030001"

May be I should just discard the value FE, which means "unable to get the temerature" ?

I have seen in comp.os.vms this test
If ((F$GETSYI("CRD_CONTROL") .AND. %X20) .NE. 0) Then Write Sys
$Output "Good"
But the DS10 giving 254 says good too :-(

May be this is patch related, but all the DS10 have the same level of patches, so there is something else.

Thanks for any tip

Honored Contributor

Re: getting the temperature of a DS10

I have found

which says, among other things, for a DS10

$ temp_c = %X'F$Extract(30,2,temp_vec)'
$ If (temp_c .LE. 1) .OR. (temp_c .GE. %xFE)
$ Then
$ If temp_c .EQ. 0 Then $ say "Temperature status = failed"
$ If temp_c .EQ. 1 Then $ say -
"Temperature stats = OK (the meaning of which is not clear) "
$ If temp_c .EQ. %xFE Then $ say "Temperature unknown"
$ If temp_c .EQ. %xFF Then $ say "Temperature data not present"

But I still do not understand why a node no longer gives the temperature since yesterday.
Ian Miller.
Honored Contributor

Re: getting the temperature of a DS10

parhaps the temprature sensor is having a holiday? :-)

Parhaps its broken. As this getting environmental information stuff is undocumented I wonder if it is not always reliable.
Purely Personal Opinion
Volker Halle
Honored Contributor

Re: getting the temperature of a DS10


this is just software, isn't it ?

The temperature vector is read with an IO$_ACPCONTROL QIOW from the IIA0: device in CPU specific code.

If there is any error returned from this QIOW, the first element in the vector is set to SYI$K_ENV_STATUS_UNKNOWN (=254) and the rest is set to SYI$K_ENV_STATUS_NOT_PRESENT (=255)

The status and IO status are kept on the local stack, so there is no way to find out lateron.

On the V7.3-2 system, you could use the IO$SDA extension to trace buffered IOs and thus find the failing IO status code...

Honored Contributor

Re: getting the temperature of a DS10

May be I should not expect much from something undocumented/unsupported :-)

thanks for the answers