11package main
22
3- import ("fmt" ; "log" ; "unsafe" ; w "golang.org/x/sys/windows" )
3+ import ("fmt" ; "log" ; "unsafe" ; "time" ; w "golang.org/x/sys/windows" )
44
55type ADLTemperature struct {
6- Size int32
7- Temperature int32
6+ Size int32
7+ Temperature int32
88}
99
1010var (
11- dll = w .NewLazySystemDLL ("atiadlxx.dll" )
12- ADL_Main_Control_Create = dll .NewProc ("ADL_Main_Control_Create" ).Call
13- ADL_Main_Control_Destroy = dll .NewProc ("ADL_Main_Control_Destroy" ).Call
11+ dll = w .NewLazySystemDLL ("atiadlxx.dll" )
12+ ADL_Main_Control_Create = dll .NewProc ("ADL_Main_Control_Create" ).Call
13+ ADL_Main_Control_Destroy = dll .NewProc ("ADL_Main_Control_Destroy" ).Call
1414 ADL_Adapter_NumberOfAdapters_Get = dll .NewProc ("ADL_Adapter_NumberOfAdapters_Get" ).Call
15- ADL_Overdrive5_Temperature_Get = dll .NewProc ("ADL_Overdrive5_Temperature_Get" ).Call
15+ ADL_Overdrive5_Temperature_Get = dll .NewProc ("ADL_Overdrive5_Temperature_Get" ).Call
1616)
1717
1818func main () {
@@ -21,18 +21,22 @@ func main() {
2121 return uintptr (ptr )
2222 })
2323 ADL_Main_Control_Create (adlMalloc , 1 )
24- defer ADL_Main_Control_Destroy ()
24+ defer ADL_Main_Control_Destroy ()
2525
26- var adapters int32
26+ var adapters int32
2727 ADL_Adapter_NumberOfAdapters_Get (uintptr (unsafe .Pointer (& adapters )))
28- if adapters == 0 { log .Fatal ("GPU adapters not found" ) }
29- fmt .Println ("Adapters found:" , adapters )
28+ if adapters == 0 { log .Fatal ("GPU adapters not found" ) }
29+ fmt .Println ("Adapters found:" , adapters )
3030
31- temp := ADLTemperature { Size : int32 (unsafe .Sizeof (ADLTemperature {})) }
32- r , _ , _ := ADL_Overdrive5_Temperature_Get (0 , 0 , uintptr (unsafe .Pointer (& temp )))
33- if r == 0 {
34- fmt .Printf ("GPU Temperature: %d°C\n " , temp .Temperature / 1000 )
35- } else {
36- fmt .Println ("Temperature read failed" )
37- }
31+ temp := ADLTemperature {Size : int32 (unsafe .Sizeof (ADLTemperature {}))}
32+ for {
33+ r , _ , _ := ADL_Overdrive5_Temperature_Get (0 , 0 , uintptr (unsafe .Pointer (& temp )))
34+ if r == 0 {
35+ fmt .Printf ("GPU Temperature: %d°C\n " , temp .Temperature / 1000 )
36+ } else {
37+ fmt .Println ("Temperature read failed" )
38+ }
39+
40+ time .Sleep (10 * time .Second )
41+ }
3842}
0 commit comments