mirror of
https://github.com/hholtmann/smcFanControl.git
synced 2025-11-04 19:49:16 +01:00
Changed temperature readout and filter out wrong iMac values
This commit is contained in:
@ -32,31 +32,39 @@ NSArray *allSensors;
|
|||||||
|
|
||||||
+(void)init{
|
+(void)init{
|
||||||
SMCOpen(&conn);
|
SMCOpen(&conn);
|
||||||
allSensors = [NSArray arrayWithObjects:@"TC0D",@"TC0P",@"TCAD",@"TC0H",@"TC0F",@"TCAH",@"TCBH",nil];
|
|
||||||
}
|
}
|
||||||
+(void)cleanUp{
|
+(void)cleanUp{
|
||||||
SMCClose(conn);
|
SMCClose(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+(float) get_maintemp{
|
+(float) get_maintemp{
|
||||||
float c_temp;
|
float retValue;
|
||||||
SMCVal_t val;
|
NSRange range_pro=[[MachineDefaults computerModel] rangeOfString:@"MacPro"];
|
||||||
NSString *sensor = [[NSUserDefaults standardUserDefaults] objectForKey:@"TSensor"];
|
if (range_pro.length > 0) {
|
||||||
SMCReadKey2((char*)[sensor UTF8String], &val,conn);
|
retValue = [smcWrapper get_mptemp];
|
||||||
c_temp= ((val.bytes[0] * 256 + val.bytes[1]) >> 2)/64;
|
} else {
|
||||||
|
|
||||||
if (c_temp<=0) {
|
SMCVal_t val;
|
||||||
for (NSString *sensor in allSensors) {
|
NSString *sensor = [[NSUserDefaults standardUserDefaults] objectForKey:@"TSensor"];
|
||||||
SMCReadKey2((char*)[sensor UTF8String], &val,conn);
|
SMCReadKey2((char*)[sensor UTF8String], &val,conn);
|
||||||
c_temp= ((val.bytes[0] * 256 + val.bytes[1]) >> 2)/64;
|
retValue= ((val.bytes[0] * 256 + val.bytes[1]) >> 2)/64;
|
||||||
if (c_temp>0) {
|
allSensors = [NSArray arrayWithObjects:@"TC0D",@"TC0P",@"TCAD",@"TC0H",@"TC0F",@"TCAH",@"TCBH",nil];
|
||||||
[[NSUserDefaults standardUserDefaults] setObject:sensor forKey:@"TSensor"];
|
if (retValue<=0 || floor(retValue) == 129 ) { //workaround for some iMac Models
|
||||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
for (NSString *sensor in allSensors) {
|
||||||
break;
|
SMCReadKey2((char*)[sensor UTF8String], &val,conn);
|
||||||
}
|
retValue= ((val.bytes[0] * 256 + val.bytes[1]) >> 2)/64;
|
||||||
|
if (retValue>0 && floor(retValue) != 129 ) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:sensor forKey:@"TSensor"];
|
||||||
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return c_temp;
|
|
||||||
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user