openpilot support for panda nak (#1324)
parent
b16e11cde5
commit
7ea2524b6f
2
panda
2
panda
|
@ -1 +1 @@
|
|||
Subproject commit 51e0a55d6d5fce5a9edf4178baccd4b2a4e23290
|
||||
Subproject commit 5440de0fdee3f04a1b1a15291854d2a183af5f67
|
|
@ -568,10 +568,19 @@ void can_send(SubSocket *subscriber) {
|
|||
int sent;
|
||||
pthread_mutex_lock(&usb_lock);
|
||||
|
||||
|
||||
if (!fake_send) {
|
||||
do {
|
||||
err = libusb_bulk_transfer(dev_handle, 3, (uint8_t*)send, msg_count*0x10, &sent, TIMEOUT);
|
||||
if (err != 0 || msg_count*0x10 != sent) { handle_usb_issue(err, __func__); }
|
||||
// Try sending can messages. If the receive buffer on the panda is full it will NAK
|
||||
// and libusb will try again. After 5ms, it will time out. We will drop the messages.
|
||||
err = libusb_bulk_transfer(dev_handle, 3, (uint8_t*)send, msg_count*0x10, &sent, 5);
|
||||
if (err == LIBUSB_ERROR_TIMEOUT) {
|
||||
LOGW("Transmit buffer full");
|
||||
break;
|
||||
} else if (err != 0 || msg_count*0x10 != sent) {
|
||||
LOGW("Error");
|
||||
handle_usb_issue(err, __func__);
|
||||
}
|
||||
} while(err != 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue