Estou querendo obter a temperatura do processador atraves do Java e pesquisando sobre isso encontrei varias pessoas que dizem não haver uma maneira, outras que tenho que utilizar C++ pelo Java.
Sera? Não existe nenhuma maneira de solicitar ao SO alguma informação de hardware? Uma dll que utilizo?
Se alguem que não saiba exatamente sobre temperatura de processador mas saiba alguma API ou algo parecido que eu consiga conversar com o SO por favor me de uma luz.
Estou precisando disso para meu TCC, então ou eu consigo ou consigo, não tem escolha hehehehe. POR FAVOR, me ajudem.
Bixo, não sei e somente com java da pra fazer isto,
Mas no linux, existe um diretório chamado /proc, lá você encontra diversas informações sobre sua máquina, inclusive informações sobre o seu processador e sobre a temperatura.
basicamente são arquivos de texto que ficam sendo atualizados.
por exemplo, se eu quiser ler os dados da cpu eu digito cat /proc/cpuinfo.
O pulo do gato seria vc simplesmente colocar o seu programa pra ler estes arquivos =] O que não é tão difícil.
Obrigado Moska… mas preciso disso para Windows mesmo.
Pesquisando achei um comando que me retorna um monte de informações sobre hardware, quase tudo que precisava, mas ainda faltou a temperatura do processador.
systeminfo
Posso pegar o retorno num arquivo txt e depois ler oq preciso, super simples, pena me faltar a temperatura.
Se alguem ainda souber de algo, estou precisando muito dessa ajuda.
Desculpa se estou ressucitando um tópico antigo.
Mas é que realizando uma busca por aqui, não encontrei outro mais adequado que esse, e tampouco resposta para a questão.
Alguem sabe como se obter a informação de Termperatura do Core pelo JAVA ?
( Para o sistema operacional Windows )
http://msdn.microsoft.com/en-us/library/aa394493%28v=vs.85%29.aspx
Essa é uma classe da Windows API que manipula informações referentes à temperatura do processador, tal como temperatura máxima, mínima, temperatura em tempo real.
Se você quiser usá-la, terá de escrever uma dll em C++ e chamá-la na sua aplicação Java via JNI.
Uma coisa que eu queria que a galera entendesse é que uma das filosofias do Java é ser multiplataforma e isso implica em abstrair TODOS os detalhes de hardware e softwware do sistema operacional sobre o qual a aplicação em Java irá rodar.
O exemplo que você passou na verdade não consegue ler a temperatura do computador - apenas alguns dados como “temperatura máxima que o sensor consegue registrar” ou outras coisas normalmente bem inúteis. Ou seja, é necessário sempre usar, no Windows, algum método de nível baixo (como um device driver que o Everest ou o Sandra Sisoftware usam) para obter esses dados). O próprio Windows não toma conta disso.
Matheus, não obtive dados para minha máquina, mas provavelmente é porque estou usando Windows XP em uma máquina que nunca vi se tem um sensor de temperatura da CPU. Quando chegar a casa, posso ver se esse objeto MSAcpi_ThermalZoneTemperature funciona ou se é também outra miragem que a Microsoft criou para você ficar decepcionado.
Pelo que eu entendi essa função fica amarrada a bios. Pode ser que a bios faça essa leitura ou não. Se bem que nos sistema de hoje é mais difícil tal recurso não existir na bios, mas caso o programa venha a ser rodado em um máquina mais antiga…
Você não vai fazer isso com c++, pascal, c e muito menos com java. A temperatura, velocidade e outras informações da cpu estão gravadas nos registradores da mesma. Você tem que usar assembly para ler esses registradores
Pascal suporta assembly inline( esse código pode ser portado para c ou c++, que também suportam)
Olá juliocbq,
Teria como você testar o código que eu passei no meu ultimo link para ver se ele mostra a temperatura da cpu ai? Acontece que a máquina que eu tô nesse momento não tem sensor de temperatura para a cpu.
Você pode fazer isso?
Abs.
[quote=matheuslmota]Olá juliocbq,
Teria como você testar o código que eu passei no meu ultimo link para ver se ele mostra a temperatura da cpu ai? Acontece que a máquina que eu tô nesse momento não tem sensor de temperatura para a cpu.
Você pode fazer isso?
Abs.[/quote]
não tenho visual studio aqui, mas isso deve estar incluso na api do windows. Quer dizer que é possível usar em msc++, vb, delphi etc…
[quote=juliocbq][quote=matheuslmota]Olá juliocbq,
Teria como você testar o código que eu passei no meu ultimo link para ver se ele mostra a temperatura da cpu ai? Acontece que a máquina que eu tô nesse momento não tem sensor de temperatura para a cpu.
Você pode fazer isso?
Abs.[/quote]
não tenho visual studio aqui, mas isso deve estar incluso na api do windows. Quer dizer que é possível usar em msc++, vb, delphi etc…[/quote]
Uma dúvida que me veio agora. O qt possui alguma biblioteca para acesso a hardware? Ou o fato de ele ser multiplataforma o impede de ter tal recurso?
Infelizmente não tenho como conferir exatamente como funcionam, já que aqui no escritório não consigo baixar esses fontes. [/quote]
Muito legal, obrigado por compartilhar o link entanglement.
Quando eu chegar em casa vou testar a classe que eu passei para ver se ela funciona ou se é só conversa da Microsoft.
Essa classe MSAcpi_ThermalZoneTemperature captura da bios a informação da leitura da temperatura do processador. Achei até esse projeto que o cara implementou em ironpython (ironpython é uma implementação do python que roda em cima da plataforma .net) para capturar a temperatura do processador de um servidor de tempos em tempos. Caso ela atinja um valor especificado, é enviado um email ou até mesmo um sms para o administrador do servidor. Show de bola o projeto. Obviamente, tal comunicação com a bios deve ser implementada em assembly, nem que seja em um assembly inline em código C (eu acho que deve ser da última forma).
bem provável. Hoje só compensa escrever software em assembly para certos microcontroladores, já que a linguagem c faz tudo o que o assembly propõe, além de tê-lo inline.