removes the libusb-win32 workaround: libusb-win32 project released a new stable version which fixes the infinite timeout issue. (Thanks to Ergeerts Glenn)

This commit is contained in:
Romuald Conty 2011-08-08 10:02:47 +00:00
parent 752c247761
commit fa7084fa77
2 changed files with 10 additions and 9 deletions

View file

@ -7,12 +7,12 @@ Requirements
============
- MinGW-w64 compiler toolchain [1]
- LibUsb-Win32 1.2.4.6 (or greater) [2]
- LibUsb-Win32 1.2.5.0 (or greater) [2]
- CMake 2.8 [3]
This was tested on Windows 7 64 bit, but should work on Windows Vista and
Windows XP and 32 bit as well.
Only the ACS ACR122 reader is tested at the moment, so any feedback about other devices is very welcome.
Only the ACS ACR122 and the ASK Logo readers are tested at the moment, so any feedback about other devices is very welcome.
Community forum: http://www.libnfc.org/community/
@ -53,5 +53,5 @@ References
[1] the easiest way is to use the TDM-GCC installer.
Make sure to select MinGW-w64 in the installer, the regular MinGW does not contain headers for PCSC.
http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm64-gcc-4.5.1.exe/download
[2] http://sourceforge.net/projects/libusb-win32/files/libusb-win32-snapshots/20110512/libusb-win32-snapshot-1.2.4.6.zip/download
[2] http://sourceforge.net/projects/libusb-win32/files/
[3] http://www.cmake.org

View file

@ -40,13 +40,12 @@ Thanks to d18c7db and Okko for example code
#ifndef _WIN32
// Under POSIX system, we use libusb (>= 0.1.12)
#include <usb.h>
#define USB_INFINITE_TIMEOUT 0
#define USB_TIMEDOUT ETIMEDOUT
#define _usb_strerror( X ) strerror(-X)
#else
// Under Windows we use libusb-win32 (>= 1.2.4)
// Under Windows we use libusb-win32 (>= 1.2.5)
#include <lusb0_usb.h>
// libusb-win32's bug workaround: 0 as timeout does not means infite as expected
#define USB_INFINITE_TIMEOUT 100
#define USB_TIMEDOUT 116
#define _usb_strerror( X ) usb_strerror()
#endif
@ -61,6 +60,8 @@ Thanks to d18c7db and Okko for example code
#define PN53X_USB_DRIVER_NAME "PN53x USB"
#define USB_INFINITE_TIMEOUT 0
#define DRIVER_DATA(pnd) ((struct pn53x_usb_data*)(pnd->driver_data))
typedef enum {
@ -105,7 +106,7 @@ pn53x_usb_bulk_read_ex (struct pn53x_usb_data *data, byte_t abtRx[], const size_
if (res > 0) {
PRINT_HEX ("RX", abtRx, res);
} else if (res < 0) {
if (-res != ETIMEDOUT) {
if (-res != USB_TIMEDOUT) {
ERR ("Unable to read from USB (%s)", _usb_strerror (res));
}
}
@ -481,7 +482,7 @@ pn53x_usb_receive (nfc_device_t * pnd, byte_t * pbtData, const size_t szDataLen)
read:
res = pn53x_usb_bulk_read_ex (DRIVER_DATA (pnd), abtRxBuf, sizeof (abtRxBuf), delayed_reply ? 250 : USB_INFINITE_TIMEOUT);
if (delayed_reply && (res == -ETIMEDOUT)) {
if (delayed_reply && (res == -USB_TIMEDOUT)) {
if (DRIVER_DATA (pnd)->abort_flag) {
DRIVER_DATA (pnd)->abort_flag = false;
pn53x_usb_ack (pnd);