fixed Fan Key if there are more than 10 like in an XServe

This commit is contained in:
Denis Ahrens
2019-03-02 18:02:41 +01:00
parent de3988463a
commit 3373ab1ab0
3 changed files with 12 additions and 10 deletions

View File

@ -131,7 +131,7 @@ NSArray *allSensors;
UInt32Char_t key; UInt32Char_t key;
SMCVal_t val; SMCVal_t val;
//kern_return_t result; //kern_return_t result;
sprintf(key, "F%dAc", fan_number); sprintf(key, "F%cAc", fannum[fan_number]);
SMCReadKey2(key, &val,conn); SMCReadKey2(key, &val,conn);
int running= [self convertToNumber:val]; int running= [self convertToNumber:val];
return running; return running;
@ -153,7 +153,7 @@ NSArray *allSensors;
//kern_return_t result; //kern_return_t result;
NSMutableString *desc; NSMutableString *desc;
sprintf(key, "F%dID", fan_number); sprintf(key, "F%cID", fannum[fan_number]);
SMCReadKey2(key, &val,conn); SMCReadKey2(key, &val,conn);
if(val.dataSize>0){ if(val.dataSize>0){
@ -178,7 +178,7 @@ NSArray *allSensors;
UInt32Char_t key; UInt32Char_t key;
SMCVal_t val; SMCVal_t val;
//kern_return_t result; //kern_return_t result;
sprintf(key, "F%dMn", fan_number); sprintf(key, "F%cMn", fannum[fan_number]);
SMCReadKey2(key, &val,conn); SMCReadKey2(key, &val,conn);
int min= [self convertToNumber:val]; int min= [self convertToNumber:val];
return min; return min;
@ -188,7 +188,7 @@ NSArray *allSensors;
UInt32Char_t key; UInt32Char_t key;
SMCVal_t val; SMCVal_t val;
//kern_return_t result; //kern_return_t result;
sprintf(key, "F%dMx", fan_number); sprintf(key, "F%cMx", fannum[fan_number]);
SMCReadKey2(key, &val,conn); SMCReadKey2(key, &val,conn);
int max= [self convertToNumber:val]; int max= [self convertToNumber:val];
return max; return max;

View File

@ -557,24 +557,24 @@ kern_return_t SMCPrintFans(void)
for (i = 0; i < totalFans; i++) for (i = 0; i < totalFans; i++)
{ {
printf("\nFan #%d:\n", i); printf("\nFan #%d:\n", i);
sprintf(key, "F%dID", i); sprintf(key, "F%cID", fannum[i]);
SMCReadKey(key, &val); SMCReadKey(key, &val);
if(val.dataSize > 0) { if(val.dataSize > 0) {
printf(" Fan ID : %s\n", val.bytes+4); printf(" Fan ID : %s\n", val.bytes+4);
} }
sprintf(key, "F%dAc", i); sprintf(key, "F%cAc", fannum[i]);
SMCReadKey(key, &val); SMCReadKey(key, &val);
printf(" Actual speed : %.0f\n", getFloatFromVal(val)); printf(" Actual speed : %.0f\n", getFloatFromVal(val));
sprintf(key, "F%dMn", i); sprintf(key, "F%cMn", fannum[i]);
SMCReadKey(key, &val); SMCReadKey(key, &val);
printf(" Minimum speed: %.0f\n", getFloatFromVal(val)); printf(" Minimum speed: %.0f\n", getFloatFromVal(val));
sprintf(key, "F%dMx", i); sprintf(key, "F%cMx", fannum[i]);
SMCReadKey(key, &val); SMCReadKey(key, &val);
printf(" Maximum speed: %.0f\n", getFloatFromVal(val)); printf(" Maximum speed: %.0f\n", getFloatFromVal(val));
sprintf(key, "F%dSf", i); sprintf(key, "F%cSf", fannum[i]);
SMCReadKey(key, &val); SMCReadKey(key, &val);
printf(" Safe speed : %.0f\n", getFloatFromVal(val)); printf(" Safe speed : %.0f\n", getFloatFromVal(val));
sprintf(key, "F%dTg", i); sprintf(key, "F%cTg", fannum[i]);
SMCReadKey(key, &val); SMCReadKey(key, &val);
printf(" Target speed : %.0f\n", getFloatFromVal(val)); printf(" Target speed : %.0f\n", getFloatFromVal(val));
SMCReadKey("FS! ", &val); SMCReadKey("FS! ", &val);

View File

@ -98,6 +98,8 @@ typedef struct {
typedef unsigned char SMCBytes_t[32]; typedef unsigned char SMCBytes_t[32];
UInt8 fannum[] = "0123456789ABCDEFGHIJ";
typedef struct { typedef struct {
UInt32 key; UInt32 key;
SMCKeyData_vers_t vers; SMCKeyData_vers_t vers;