Merge pull request #353 from inkdot7/ftdi_open_debug

Tell USB bus and address when ftdi open fails.
This commit is contained in:
Gwenhael Goavec-Merou 2023-07-29 16:36:32 +02:00 committed by GitHub
commit 65b6c73e8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 2 deletions

View File

@ -156,8 +156,18 @@ void FTDIpp_MPSSE::open_device(const std::string &serial, unsigned int baudrate)
ret = ftdi_usb_open_bus_addr(_ftdi, _bus, _addr);
#endif
if (ret < 0) {
fprintf(stderr, "unable to open ftdi device: %d (%s)\n",
ret, ftdi_get_error_string(_ftdi));
char description[256];
if (_bus == 0 || _addr == 0)
snprintf(description, sizeof(description), "");
else
#if (FTDI_VERSION < 104)
snprintf(description, sizeof(description), "");
#else
snprintf(description, sizeof(description), " (USB bus %d addr %d)",
_bus, _addr);
#endif
fprintf(stderr, "unable to open ftdi device: %d (%s)%s\n",
ret, ftdi_get_error_string(_ftdi), description);
ftdi_free(_ftdi);
throw std::runtime_error("unable to open ftdi device");
}