errorchecking for fans
This commit is contained in:
13
src/aio.c
13
src/aio.c
@@ -58,10 +58,12 @@ static void aio_usb_release(libusb_device_handle *dev) {
|
|||||||
libusb_release_interface(dev, 0);
|
libusb_release_interface(dev, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void aio_post(libusb_device_handle *dev, uint8_t *req, const int req_len, uint8_t *resp, const int resp_len) {
|
static int aio_post(libusb_device_handle *dev, uint8_t *req, const int req_len, uint8_t *resp, const int resp_len) {
|
||||||
// applog(LOG_DBG, "writing to aio, %02x", req[0]);
|
// applog(LOG_DBG, "writing to aio, %02x", req[0]);
|
||||||
libusb_bulk_transfer(dev, 0x01, req, req_len, nullptr, usb_timeout);
|
int ret = 0;
|
||||||
libusb_bulk_transfer(dev, 0x81, resp, resp_len, nullptr, usb_timeout);
|
ret += libusb_bulk_transfer(dev, 0x01, req, req_len, nullptr, usb_timeout);
|
||||||
|
ret += libusb_bulk_transfer(dev, 0x81, resp, resp_len, nullptr, usb_timeout);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static float aio_get_water_temp(libusb_device_handle *dev) {
|
static float aio_get_water_temp(libusb_device_handle *dev) {
|
||||||
@@ -106,8 +108,9 @@ static void aio_set_fan_duty(libusb_device_handle *dev, const uint8_t *duty) {
|
|||||||
req[2] = MIN(MAX(duty[i], 0), 100);
|
req[2] = MIN(MAX(duty[i], 0), 100);
|
||||||
if (params.fans.fan_stop && req[2] <= params.fans.min_duty)
|
if (params.fans.fan_stop && req[2] <= params.fans.min_duty)
|
||||||
req[2] = 0;
|
req[2] = 0;
|
||||||
aio_post(dev, req, sizeof(req), resp, buf_size);
|
const int ret = aio_post(dev, req, sizeof(req), resp, buf_size);
|
||||||
last_duty = req[2];
|
if (ret == 0)
|
||||||
|
last_duty = req[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user