Nvidia GPU Temperatur lesen

Code-Stücke können hier veröffentlicht werden.
Antworten
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Montag 26. November 2007, 14:12

hier mal ein kleines Beispiel wie man von NV Karten die Temperatur liest:

Vielleicht findets ja jemand nützlich.

Code: Alles auswählen

import ctypes

def main():
    nvcpl = ctypes.CDLL("NvCpl")
    ct, at, ul = [ctypes.c_int32() for x in range(3)]
    r = nvcpl.NvCplGetThermalSettings(ctypes.c_int32(0), ctypes.pointer(ct),
                                      ctypes.pointer(at), ctypes.pointer(ul))
    if r:
        res = 'Core-temp: %d\nAmbient-temp: %d\nUpper-limit: %d'%(
                                                ct.value, at.value, ul.value)
        ctypes.windll.user32.MessageBoxA(0, res, 'Values', 0x40)
    else:
        ctypes.windll.user32.MessageBoxA(0, 'GetThermalSettings Failed',
                                                             'Failed', 0x40)


if __name__ == '__main__':
    main()
Zuletzt geändert von Mad-Marty am Montag 26. November 2007, 23:53, insgesamt 1-mal geändert.
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Montag 26. November 2007, 16:24

Hi

Ersetze doch die ctypes.pointer() aufrufe durch ctypes.byref() ... macht zwar keinen Unterschied für dich, jedoch macht ctypes.pointer mehr Arbeit als byref und da du sowieso das PointerObject in Python nicht brauchst, nimmt man eigentlich byref.

Gruss
The Spirit
User
Beiträge: 274
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Montag 26. November 2007, 17:53

geht das auch mit ati karten?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 26. November 2007, 20:14

Da es die `NVCpl`-DLL nutzt würde ich auf "Nein" tippen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Montag 26. November 2007, 23:46

rayo hat geschrieben:Hi

Ersetze doch die ctypes.pointer() aufrufe durch ctypes.byref() ... macht zwar keinen Unterschied für dich, jedoch macht ctypes.pointer mehr Arbeit als byref und da du sowieso das PointerObject in Python nicht brauchst, nimmt man eigentlich byref.

Gruss
Berechtigter Einwand - aber eigentlich egal im showcase - so wahnsinnig viel mehraufwand wird die Erstellung des Pointer objects nun auch nicht machen.

(Auserdem is es so besser nachvollziehbar, da das SDK eben von pointern spricht.)

Wird erst interessant wenn man permanent die Daten pollt.
Zuletzt geändert von Mad-Marty am Montag 26. November 2007, 23:56, insgesamt 1-mal geändert.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Montag 26. November 2007, 23:48

The Spirit hat geschrieben:geht das auch mit ati karten?
Nein.
Aber sobald ich mal dazu komme werd ich das hier auch veröffentlichen wie es da geht (Bedeutet, dann wenn ich an den anderen Rechner geh ^^).
Antworten