Falaremos neste artigo, como obter a temperatura da placa de Vídeo (GPU) NVIDIA.
Abordaremos o procedimento mais simples de integração, e leitura das informações da placa de vídeo, integrando com Lazarus.
A placa de vídeo, hoje é requisito obrigatório para qualquer computador realmente robusto.
Placas de vídeo com grande capacidade, por vezes precisam ser monitoradas para evitar super aquecimento .
Atualmente projetos de CASEMOD não seriam realmente case mode, se não lerem estas informações.
Pensando nisso a NVIDIA, lançou um conjunto de ferramentas que auxiliam o desenvolvedor na obtenção de forma fácil e assertiva, na leitura das informações da GPU.
O NVIDIA System Management Interface é um utilitário, baseado no NVML (NVIDIA MANAGEMENT Library) que gerencia e monitora dispositivos NVIDIA.
Este utilitário tambem administra por pesquisas por estado de dispositivo GPU , atribuindo privilegios , permitindo administradores modificares o estado da GPU.
NVIDIA-smi é embarcado com o driver para linux do NVIDIA GPU , e windows 64bits (WIN7/2008).
O NVIDIA-smi pode fornecer informações em formato XML ou em arquivo texto simples.
Este projeto, implementa uma camada, que permite ler as informações da BIOS do computador.
Com ela é possível acessar informações, como memória, temperatura, e tantas outras informações.
Um exemplo de uso, esta no projeto relógio, a função GetMemorySize lê a quantidade de memória disponível no seu PC.
function GetMemorySize : DWORD;
Var
SMBios : TSMBios;
LPhysicalMemArr : TPhysicalMemoryArrayInformation;
begin
SMBios:=TSMBios.Create;
try
if SMBios.HasPhysicalMemoryArrayInfo then
for LPhysicalMemArr in SMBios.PhysicalMemoryArrayInfo do
begin
if LPhysicalMemArr.RAWPhysicalMemoryArrayInformation^.MaximumCapacity<>$80000000 then
begin
result := LPhysicalMemArr.RAWPhysicalMemoryArrayInformation^.MaximumCapacity div 1024;
break;
end
else
begin
result :=LPhysicalMemArr.RAWPhysicalMemoryArrayInformation^.ExtendedMaximumCapacity div 1024;
break;
end;
end
else
result := 0;
finally
SMBios.Free;
end;
end;
Existem diversos exemplos de código nesta maravilhosa biblioteca, e vale a pena rever e estudar este código.