Newsgroup: it.comp.macintosh
Titolo: [Test] sensori temperatura

Ho compilato un programmino (basato su codice di Amit Singh) che legge
i valori di temperatura da tutti i sensori hardware del mac e li
elenca per nome.
Il mio iBook G4 (Powerbook6,5) restituisce questi valori:
maia:~/Desktop delphine$ ./lstemperatures
   PWR/MEMORY BOTTOMSIDE    41.0 C
          CPU BOTTOMSIDE    41.0 C
          GPU BOTTOMSIDE    43.0 C
                 BATTERY    26.0 C
Il programmino e' disponibile a questo indirizzo:
<
http://groups.google.com/group/minibatterylogger/web/
lstemperatures.zip>
per eseguirlo, unzipparlo (ad es. sul desktop), aprire il terminale e
scrivere:
$ cd Desktop; ./lstemperatures
Quindi premere invio.
Gradirei conoscere cosa viene indicato su un portatile Mac Intel
--
http://www.emeraldion.it
Attendendo il Segno della bella ragazza sulla collina





 Gradirei conoscere cosa viene indicato su un portatile Mac Intel
scusate per il post triplice. Sto vedendo i sorci verdi con la connessione
#-_-
-- 
http://emeraldion.it
L'unica soluzione all'effetto serra e' ripopolare la
vegetazione terrestre. Piantate nuovi alberi!

 Gradirei conoscere cosa viene indicato su un portatile Mac Intel
nulla qui
-- 
I've always been more concerned with users. )\._.,--....,'``.
Programmers do their work but once, while  /,   _.. \   _\  (`._._,
users are saddled with it ever thereafter. `_.-(,_..'--(,_..'`-.;.'

 scusate per il post triplice. Sto vedendo i sorci verdi con la connessione
Purtroppo ho un mini ppc e ioreg ovviamente non mi dice niente :/
-- 
Do you think like you type?
k|b|s :: mailto `echo 6B62734062676C75672E69740A|xxd -r -p`

 Purtroppo ho un mini ppc e ioreg ovviamente non mi dice niente :/
ioreg?


 nulla qui
mmhh...



| |._/|_|\__/\__/\__/ | 
|        /_/ /_/      | *Si vis pacem, para papunzi

 Gradirei conoscere cosa viene indicato su un portatile Mac Intel
Su iBook  G3 800 Mhz   assolutamente nulla, si apre e si chiude senza
mostrare nulla....
Su MacBook pro C2D 15" assolutamente nulla, si apre e si chiude senza
mostrare nulla....
-- 
Guru       Non coltivate i beni terreni,
               non rimarrà niente.
         Coltivate l'amore delle persone,
            vale più di qualsiasi oro. 

 Gradirei conoscere cosa viene indicato su un portatile Mac Intel
se ti interesano i valori ti dico quelli di istat pro :P
CPU A           55°C
Heatsink A      52°C
GPU Heatsink    52°C
Heatsink B      44°C
GPU             49°C
Enclosure               37°
Ventole         2530rpm cad
-- 
http://www.otaku-club.it

 Nada, nulla, rien, nothing, nichts.
Puoi spiegarti meglio?

 wrote:

LOL. Dunque: il risultato e' un ritorno a capo .-) 


 mostrare nulla....
Uhm... Amith Singh riporta i risultati su un Xserve G5 2x2,0 e un Power Mac
G5 2x2,5. Forse non ci sono sensori sull'ibook 800??
Sul MacBook sospettavo che la struttura dell'IORegistry fosse differente.


 Nada, nulla, rien, nothing, nichts.
grazie


 Ventole         2530rpm cad
almeno so cosa cercare :P


 grazie
Tra l'altro ho provato a vedere se c'era un crashlog da qualche parte ma
non c'e' nessuna traccia, nemmeno un "ore xx:xx lanciato programma
pincopallino".


 Sul MacBook sospettavo che la struttura dell'IORegistry fosse differente.
Infatti: nemmeno la classica preghierina per i livelli della batteria
da' risultati.


 da' risultati.
Se ti riferisci allo scriptino da terminale, per i macintel si deve
partire da qui:
$ ioreg -l -w0 | grep LegacyBatteryInfo


 
 
Io li ho un po' più alti:
PWR/MEMORY BOTTOMSIDE    48.0 C
          CPU BOTTOMSIDE    48.0 C
          GPU BOTTOMSIDE    51.0 C
                 BATTERY    29.0 C
Forse dettato dal fatto che alle spalle ci sono 2 giorni di uptime?
-- 
Baloo

 Forse dettato dal fatto che alle spalle ci sono 2 giorni di uptime?
dipende dal bilancio termico... tu sei in un ambiente riscaldato? :D


 tu sei fra i ghiacci?? :-)
diciamo che sono parco nei consumi energetici :))


 pincopallino".
beh no! crashare no perche' e' fatto a modo #-_^#


 dipende dal bilancio termico... tu sei in un ambiente riscaldato? :D
si, sono in ambiente riscaldato, come la media di tutte le case di
firenze penso!
Comunque ripetendo il test dopo un po' di stop i valori sono leggermente
più bassi!
-- 
Baloo

 beh no! crashare no perche' e' fatto a modo #-_^#
Ma nemmeno una traccia nel log di sistema, proprio niente. Quanto e'
ordinatino 'sto programma!
No, boh, cercavo magari una segnalazione tipo che non aveva trovato i
sensori richiesti, ma si vede che tu programmi come me: gli errori te li
lavi in casa .-)


 ioreg -l -w0 | grep LegacyBatteryInfo
Aaaaah! Gia' "legacy"? Entro un paio di mesi sara' "VintageBatteryInfo"


 lavi in casa .-)
il sorgente e' la ridicolaggine di 79 righe. Anzi, eccolo qua:
#include <unistd.h>
#include <IOKit/IOKitLib.h>
#include <CoreFoundation/CoreFoundation.h>
#define kIOPPluginCurrentValueKey "current-value"
#define kIOPPluginLocationKey "location"
#define kIOPPluginTypeKey "type"
#define kIOPPluginTypeTempSensor "temperature"
#define kIOPPluginTypeGPUSensor "gpu"
#define kIOPIOHWSensorKey "IOHWSensor"
#define SENSOR_TEMP_FMT(x) (double)((x)>>16)
void printTemperatureSensor(const void *sensorDict, CFStringEncoding
encoding)
{
        SInt32 currentValue;
        CFNumberRef sensorValue;
        CFStringRef sensorType, sensorLocation;
 
        if (!CFDictionaryGetValueIfPresent((CFDictionaryRef)sensorDict,
                CFSTR(kIOPPluginTypeKey),
                (void *)&sensorType))
                return;
/* Unconditionally get all IOHWSensor readings... */
/*
        if ((CFStringCompare(sensorType,
CFSTR(kIOPPluginTypeTempSensor), 0) != kCFCompareEqualTo) &&
                (CFStringCompare(sensorType,
CFSTR(kIOPPluginTypeGPUSensor), 0) != kCFCompareEqualTo))
                return;
*/
 
        sensorLocation =
CFDictionaryGetValue((CFDictionaryRef)sensorDict,
                CFSTR(kIOPPluginLocationKey));
 
        sensorValue = CFDictionaryGetValue((CFDictionaryRef)sensorDict,
                CFSTR(kIOPPluginCurrentValueKey));
 
        (void)CFNumberGetValue(sensorValue,
                kCFNumberSInt32Type,
                (void *)&currentValue);
 
        printf("%24s %7.1f C\n", CFStringGetCStringPtr(sensorLocation,
encoding),
                SENSOR_TEMP_FMT(currentValue));
}
int main(void)
{
        kern_return_t kr;
        io_iterator_t io_hw_sensors;
        io_service_t io_hw_sensor;
        CFMutableDictionaryRef sensor_properties;
        CFStringEncoding systemEncoding = CFStringGetSystemEncoding();
 
        kr = IOServiceGetMatchingServices(kIOMasterPortDefault,
                IOServiceMatching(kIOPIOHWSensorKey),
                //IOServiceNameMatching(kIOPIOHWSensorKey),
                &io_hw_sensors);
 
        while ((io_hw_sensor = IOIteratorNext(io_hw_sensors)))
        {
                kr = IORegistryEntryCreateCFProperties(io_hw_sensor,
                        &sensor_properties,
                        kCFAllocatorDefault,
                        kNilOptions);
 
                if (kr == KERN_SUCCESS)
                        printTemperatureSensor(sensor_properties,
systemEncoding);
 
                CFRelease(sensor_properties);
                IOObjectRelease(io_hw_sensor);
        }
 
        IOObjectRelease(io_hw_sensors);
 
        exit(kr);


 if 
La parolina magica.


 La parolina magica.
Non era "please"?

 La parolina magica.
ok:
if (!CFDictionaryGetValueIfPresent((CFDictionaryRef)sensorDict,
                CFSTR(kIOPPluginTypeKey),
                (void *)&sensorType))
{
   printf("Your computer has no f*cking temperature sensors to read\n");
   return;
}
:)))
