Skip to content

Commit 342fcc9

Browse files
committed
feat(gpu-temp): print GPU temperature every 10 seconds
Update main loop to display GPU temperature at 10-second intervals for continuous monitoring.
1 parent 931ea2d commit 342fcc9

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

main.go

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package 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

55
type ADLTemperature struct {
6-
Size int32
7-
Temperature int32
6+
Size int32
7+
Temperature int32
88
}
99

1010
var (
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

1818
func 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

Comments
 (0)