diff --git a/src/dev_arygon.c b/src/dev_arygon.c
index 5810eae..0779fae 100644
--- a/src/dev_arygon.c
+++ b/src/dev_arygon.c
@@ -26,18 +26,19 @@ along with this program. If not, see
#ifdef _WIN32
#define SERIAL_STRING "COM"
+ #define delay_ms( X ) Sleep( X )
#else
#ifdef __APPLE__
#define SERIAL_STRING "/dev/tty.SLAB_USBtoUART"
#else
// unistd.h is needed for usleep() fct.
#include
+ #define delay_ms( X ) usleep( X * 1000 )
#define SERIAL_STRING "/dev/ttyUSB"
#endif
#endif
#define BUFFER_LENGTH 256
-#define USB_TIMEOUT 30000
/** @def DEV_ARYGON_PROTOCOL_ARYGON_ASCII
* @brief High level language in ASCII format. (Common µC commands and Mifare® commands)
@@ -169,18 +170,15 @@ bool dev_arygon_transceive(const dev_spec ds, const byte_t* pbtTx, const uint32_
/** @todo Find why this delay are needed. (in PN532 datasheet, but I (Romuald) haven't it...) */
/** @note PN532 need 20ms between sending and receiving frame. No information regarding this in ARYGON datasheet... */
- #ifdef _WIN32
- Sleep(20);
- #else
- usleep(20000);
- #endif
+ /** @note It seems to be a required delay to able to send from host to device, plus the device computation then device respond transmission */
+ delay_ms(20);
/** @note PN532 need 30ms more to be stable (report correctly present tag, at each try: 20ms seems to be enought for one shot...) */
- #ifdef _WIN32
- Sleep(30);
- #else
- usleep(30000);
-#endif
+ delay_ms(30);
+
+ /** @note PN532 seems to work correctly with 50ms at 115200 bauds */
+ /** @note PN532 seems to work correctly with 70ms at 9600 bauds */
+ delay_ms(20);
if (!rs232_receive((serial_port)ds,abtRxBuf,&uiRxBufLen)) {
ERR("Unable to receive data. (RX)");