diff --git a/src/aio.c b/src/aio.c index 8f7ec64..f2eb17b 100644 --- a/src/aio.c +++ b/src/aio.c @@ -58,10 +58,12 @@ static void aio_usb_release(libusb_device_handle *dev) { 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]); - libusb_bulk_transfer(dev, 0x01, req, req_len, nullptr, usb_timeout); - libusb_bulk_transfer(dev, 0x81, resp, resp_len, nullptr, usb_timeout); + int ret = 0; + 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) { @@ -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); if (params.fans.fan_stop && req[2] <= params.fans.min_duty) req[2] = 0; - aio_post(dev, req, sizeof(req), resp, buf_size); - last_duty = req[2]; + const int ret = aio_post(dev, req, sizeof(req), resp, buf_size); + if (ret == 0) + last_duty = req[2]; } }