From 920600b29452d6eb9e055f1b413f29c09d87a054 Mon Sep 17 00:00:00 2001 From: Drath Date: Mon, 25 May 2026 13:41:24 +0000 Subject: [PATCH] neater temp setting --- include/aio.h | 4 +++- src/aio.c | 11 +++++++---- src/main.c | 5 +++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/include/aio.h b/include/aio.h index 7df6874..d3b39b8 100644 --- a/include/aio.h +++ b/include/aio.h @@ -16,11 +16,13 @@ struct aio_t{ libusb_device_handle* handle; enum aio_pump_mode_t pump_mode; float water_temp; + float t_q; + float t_b; uint16_t pump_speed; uint16_t fan_speed[2]; }; -void aio_detect(struct aio_t *aio); +void aio_detect(struct aio_t *aio, float t_quiet, float t_balanced); void aio_update(struct aio_t *aio); void aio_close(const struct aio_t *aio); diff --git a/src/aio.c b/src/aio.c index 46ccfaf..eebb05c 100644 --- a/src/aio.c +++ b/src/aio.c @@ -65,7 +65,7 @@ static void aio_set_pump_mode(libusb_device_handle* dev, const enum aio_pump_mod POST_AND_GET_RESP2(0x32, mode, 6); } -void aio_detect(struct aio_t *aio) { +void aio_detect(struct aio_t *aio, const float t_quiet, const float t_balanced) { libusb_init(NULL); aio->handle = libusb_open_device_with_vid_pid(NULL, AIO_USB_VID, AIO_USB_PID); if (aio->handle == NULL) { @@ -73,6 +73,9 @@ void aio_detect(struct aio_t *aio) { return; } + aio->t_q = t_quiet; + aio->t_b = t_balanced; + /* detaches other software that might take the device? */ if (libusb_kernel_driver_active(aio->handle, 0)) libusb_detach_kernel_driver(aio->handle, 0); @@ -80,7 +83,7 @@ void aio_detect(struct aio_t *aio) { aio_usb_claim(aio->handle); aio_set_pump_mode(aio->handle, QUIET); // needed for init ig? aio_usb_release(aio->handle); - applog(LOG_INF, "found Corsair AIO device at %04x:%04x, fw %s", AIO_USB_VID, AIO_USB_PID, aio_get_firmware_version(aio->handle, (char[16]){0})); + applog(LOG_INF, "found Corsair AIO device at %04x:%04x, fw ver: %s, B mode at %.1fC, Q mode at %.1fC", AIO_USB_VID, AIO_USB_PID, aio_get_firmware_version(aio->handle, (char[16]){0}), aio->t_b, aio->t_q); } void aio_update(struct aio_t *aio) { @@ -94,10 +97,10 @@ void aio_update(struct aio_t *aio) { aio->pump_mode = aio_get_pump_mode(aio->handle); aio_get_fan_speed(aio->handle, aio->fan_speed); - if (aio->water_temp > 36.0f && aio->pump_mode != BALANCED) + if (aio->water_temp > aio->t_b && aio->pump_mode != BALANCED) aio_set_pump_mode(aio->handle, BALANCED); - if (aio->water_temp < 34.0f && aio->pump_mode != QUIET) + if (aio->water_temp < aio->t_q && aio->pump_mode != QUIET) aio_set_pump_mode(aio->handle, QUIET); aio_usb_release(aio->handle); diff --git a/src/main.c b/src/main.c index af8bc9c..7f42c36 100644 --- a/src/main.c +++ b/src/main.c @@ -54,7 +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); + aio_detect(&sensors->aio, 34.0f, 36.0f); /* main sensor loop */ applog(LOG_START, "reached sensors main loop"); @@ -147,7 +147,8 @@ static void *display_thread(void *arg) { lcd_writef(&lcd, 0, 2, "%.0fW", sensors->cpu.ptotal); 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, 12, 2, "%5s%c", P_BYTES(sensors->net.upload, 1), 3); + lcd_writef(&lcd, 19, 2, "%c%s", 4, P_BYTES(sensors->net.upload, 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);