add aio
This commit is contained in:
10
src/main.c
10
src/main.c
@@ -7,6 +7,7 @@
|
||||
#include <sys/signalfd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "aio.h"
|
||||
#include "cpu.h"
|
||||
#include "gpu.h"
|
||||
#include "lcd.h"
|
||||
@@ -35,6 +36,7 @@ struct sensors_t {
|
||||
struct syssensors_t sys;
|
||||
struct cpu_sensors_t cpu;
|
||||
struct gpu_sensors_t gpu;
|
||||
struct aio_t aio;
|
||||
double loadavg[3];
|
||||
};
|
||||
|
||||
@@ -52,6 +54,7 @@ static void *sensors_thread(void *arg) {
|
||||
cpu_detect(&sensors->cpu, cpu_pcidev);
|
||||
gpu_detect(&sensors->gpu, gpu_pcidev);
|
||||
sys_detect(&sensors->sys, "nct6775.656");
|
||||
aio_detect(&sensors->aio);
|
||||
|
||||
/* main sensor loop */
|
||||
applog(LOG_START, "reached sensors main loop");
|
||||
@@ -68,6 +71,7 @@ static void *sensors_thread(void *arg) {
|
||||
sys_update_sensors(&sensors->sys);
|
||||
cpu_update(&sensors->cpu);
|
||||
gpu_update(&sensors->gpu);
|
||||
aio_update(&sensors->aio);
|
||||
}
|
||||
|
||||
pthread_cond_signal(&control.sensors_ready);
|
||||
@@ -77,6 +81,7 @@ static void *sensors_thread(void *arg) {
|
||||
clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, &next, NULL);
|
||||
}
|
||||
|
||||
aio_close(&sensors->aio);
|
||||
applog(LOG_WRN, "sensors thread stopped");
|
||||
return NULL;
|
||||
}
|
||||
@@ -115,6 +120,8 @@ static void *display_thread(void *arg) {
|
||||
|
||||
{
|
||||
// prepare some tricky sensors
|
||||
const uint16_t avg_fan_speed = (sensors->aio.fan_speed[0] + sensors->aio.fan_speed[1]) / 2;
|
||||
|
||||
char gpudelta[5];
|
||||
const uint8_t delta = sensors->gpu.temp_hotspot - sensors->gpu.temp_edge;
|
||||
snprintf(gpudelta, sizeof(gpudelta), "%c%d", 1, delta);
|
||||
@@ -128,13 +135,14 @@ static void *display_thread(void *arg) {
|
||||
|
||||
lcd_writef(&lcd, 0, 1, "%d/%d%c", sensors->cpu.tctl, sensors->cpu.tccd1, 0);
|
||||
lcd_writef(&lcd, 7, 1, "%s", P_BYTES(sensors->ram.used, 0));
|
||||
lcd_writef(&lcd, 13, 1, "%.1f%c", sensors->aio.water_temp, 0);
|
||||
lcd_writef(&lcd, 18, 1, "%3d%c", sensors->sys.t_sensor, 0);
|
||||
lcd_writef(&lcd, 28, 1, "%4s%c", gpudelta, 0);
|
||||
lcd_writef(&lcd, 25 - gpu_pos, 1, "%6s", P_BYTES(sensors->gpu.vram_used, 1));
|
||||
lcd_writef(&lcd, 34, 1, "%d/%d%c", sensors->gpu.temp_edge, sensors->gpu.temp_hotspot, 0);
|
||||
|
||||
lcd_writef(&lcd, 0, 2, "%.0fW", sensors->cpu.ptotal);
|
||||
lcd_writef(&lcd, 5, 2, "%dR", sensors->sys.fan_speed[0]);
|
||||
lcd_writef(&lcd, 5, 2, "%dR", avg_fan_speed);
|
||||
lcd_writef(&lcd, 12, 2, "%c%s %c%s", 3, P_BYTES(sensors->net.upload, 1), 4, P_BYTES(sensors->net.download, 1));
|
||||
lcd_writef(&lcd, 26, 2, "%4dR", sensors->gpu.fan_speed);
|
||||
lcd_writef(&lcd, 32, 2, "%3d/%3dW", sensors->gpu.power_avg, sensors->gpu.power_cap);
|
||||
|
||||
Reference in New Issue
Block a user