  
      if (err == LIBUSB_ERROR_TIMEOUT) {
        break; // timeout is okay to exit, recv still happened
      } else if (err == LIBUSB_ERROR_OVERFLOW) {
        LOGE_100("overflow got 0x%x", transferred);
      } else if (err != 0) {
        handle_usb_issue(err, __func__);
      }
  
    } while(err != 0 && connected);
 
</s> remove   auto canData = msg.initEvent().initCan(num_msg);
 </s> add   auto evt = msg.initEvent();
  evt.setValid(comms_healthy); </s> remove     auto ps = msg.initEvent().initPandaState();
 </s> add     auto evt = msg.initEvent();
    evt.setValid(panda->comms_healthy);

    auto ps = evt.initPandaState();
      comms_healthy = false;
  
      if (err == LIBUSB_ERROR_TIMEOUT) {
        break; // timeout is okay to exit, recv still happened
      } else if (err == LIBUSB_ERROR_OVERFLOW) {
      comms_healthy = false;
        LOGE_100("overflow got 0x%x", transferred);
      } else if (err != 0) {
        handle_usb_issue(err, __func__);
      }
  
    } while(err != 0 && connected);
keep keep keep add keep keep keep keep keep keep
 boardd: set can and pandaState valid flags (#20899)

* boardd: set can and pandaState valid flags

* add event

* bump cereal

* consistency 
selfdrive/boardd/panda.cc