openpilot support for panda nak (#1324)

pull/1327/head
Willem Melching 2020-04-06 16:49:37 -07:00 committed by GitHub
parent b16e11cde5
commit 7ea2524b6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 3 deletions

2
panda

@ -1 +1 @@
Subproject commit 51e0a55d6d5fce5a9edf4178baccd4b2a4e23290
Subproject commit 5440de0fdee3f04a1b1a15291854d2a183af5f67

View File

@ -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);
}