|
|
@ -38,6 +38,8 @@ |
|
|
|
#define PIC_CMD_FANSPEED_4 0x34 |
|
|
|
#define PIC_CMD_FANSPEED_5 0x35 |
|
|
|
|
|
|
|
#define PIC_CMD_POWER_OFF 0x41 |
|
|
|
|
|
|
|
#define PIC_CMD_AUTOPOWER_ON 0x48 |
|
|
|
#define PIC_CMD_AUTOPOWER_OFF 0x49 |
|
|
|
|
|
|
@ -63,6 +65,23 @@ |
|
|
|
#define PIC_CMD_USBLED_8HZ 0x61 |
|
|
|
#define PIC_CMD_USBLED_OFF 0x62 |
|
|
|
|
|
|
|
#define PIC_EVENT_POWER_BUTTON 0x40 |
|
|
|
|
|
|
|
#define PIC_EVENT_FAN1_ERR 0x73 |
|
|
|
#define PIC_EVENT_FAN1_OK 0x74 |
|
|
|
#define PIC_EVENT_FAN2_ERR 0x75 |
|
|
|
#define PIC_EVENT_FAN2_OK 0x76 |
|
|
|
#define PIC_EVENT_FAN3_ERR 0x77 |
|
|
|
#define PIC_EVENT_FAN3_OK 0x78 |
|
|
|
#define PIC_EVENT_FAN4_ERR 0x79 |
|
|
|
#define PIC_EVENT_FAN4_OK 0x7A |
|
|
|
|
|
|
|
#define PIC_EVENT_TEMP_RANGE_MIN 0x80 /* 0°C */ |
|
|
|
#define PIC_EVENT_TEMP_RANGE_MAX 0xC6 /* 70°C */ |
|
|
|
#define PIC_EVENT_TEMP_WARN 0x38 /* 71-79°C */ |
|
|
|
#define PIC_EVENT_TEMP_CRIT 0x39 /* >= 80°C */ |
|
|
|
|
|
|
|
|
|
|
|
struct picdev { |
|
|
|
int fd; |
|
|
|
struct termios oldtio; |
|
|
@ -116,7 +135,39 @@ static int pic_read_cb(int fd, void *privdata) |
|
|
|
if (len < 0) |
|
|
|
return -1; |
|
|
|
|
|
|
|
log_print(LOG_DEBUG, "%s(): 0x%02x", __FUNCTION__, event); |
|
|
|
switch (event) |
|
|
|
{ |
|
|
|
case PIC_EVENT_POWER_BUTTON: |
|
|
|
log_print(LOG_DEBUG, "%s(): POWER BUTTON", __FUNCTION__); |
|
|
|
break; |
|
|
|
|
|
|
|
case PIC_EVENT_FAN1_ERR: |
|
|
|
case PIC_EVENT_FAN1_OK: |
|
|
|
log_print(LOG_DEBUG, "%s(): FAN1 %s", __FUNCTION__, (event & 0x01) ? "fail" : "ok"); |
|
|
|
break; |
|
|
|
|
|
|
|
case PIC_EVENT_FAN2_ERR: |
|
|
|
case PIC_EVENT_FAN2_OK: |
|
|
|
log_print(LOG_DEBUG, "%s(): FAN2 %s", __FUNCTION__, (event & 0x01) ? "fail" : "ok"); |
|
|
|
break; |
|
|
|
|
|
|
|
case PIC_EVENT_TEMP_RANGE_MIN ... PIC_EVENT_TEMP_RANGE_MAX: |
|
|
|
log_print(LOG_DEBUG, "%s(): TEMP %d°C", __FUNCTION__, event - 128); |
|
|
|
break; |
|
|
|
|
|
|
|
case PIC_EVENT_TEMP_WARN: |
|
|
|
log_print(LOG_DEBUG, "%s(): TEMP WARNING", __FUNCTION__); |
|
|
|
break; |
|
|
|
|
|
|
|
case PIC_EVENT_TEMP_CRIT: |
|
|
|
log_print(LOG_DEBUG, "%s(): TEMP CRITICAL", __FUNCTION__); |
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
log_print(LOG_DEBUG, "%s(): unknown event 0x%02x", __FUNCTION__, event); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|