diff --git a/heater.cpp b/heater.cpp index ff97ffbbfe46413af429f5554a7b24e1a6e86be6..5d5c2728a6e1b22ce9480aa9cd5a9f00fb4d0804 100644 --- a/heater.cpp +++ b/heater.cpp @@ -70,6 +70,12 @@ void Heaters::recoverDevice(int device) devices[device].mutex->lock(); coincellhell_disconnect(&devices[device].device); int ret = coincellhell_connect(&devices[device].device, devices[device].serial); + if(ret == 0) + { + coincellhell_reset_bus(&devices[device].device); + coincellhell_disconnect(&devices[device].device); + ret = coincellhell_connect(&devices[device].device, devices[device].serial); + } devices[device].mutex->unlock(); if(ret == 0)