Commit graph

656 commits

Author SHA1 Message Date
Audrey Diacre
90b5961b40 Rename fixed_timeout to timeout_tv and cleam useless allocation. 2011-11-25 13:30:13 +00:00
Audrey Diacre
5c7454a2f7 Timeout is now integer. 2011-11-25 11:37:30 +00:00
Audrey Diacre
784a2f86a2 Change byte_t type to uint8_t (Fixes Issue 147) 2011-11-24 10:54:42 +00:00
Audrey Diacre
322eec6fb1 Define macro to cast to serial_port_unix. 2011-11-24 10:20:36 +00:00
Audrey Diacre
c718fafee7 Massive code clean up: (Fixes Issue 161)
- Remove typedef from internal structs
- Remove _t suffix from types
- Fix tests using connstrings
2011-11-23 15:55:40 +00:00
Anugrah Redja Kusuma
136cfdf48d Implement driver for ACR122S device 2011-11-23 03:05:12 +00:00
Romuald Conty
63f168440b Provide a (poor) logging capability when log4c is not available but DEBUG is enabled. 2011-10-27 15:14:18 +00:00
Romuald Conty
b4ebb4510d Removes libusb types workaround (r200) as it seems to not be needed anymore but may disturb compiler. 2011-10-18 11:03:54 +00:00
Romuald Conty
55daa29a7c Allow to connect to a device using a connection string:
- Provide a nfc_get_default_device() that allow to grab the connstring stored
   in LIBNFC_DEFAULT_DEVICE environnement variable or returns the first
   available device if not set;
 - nfc_connect(NULL) now takes the default device (see
   nfc_get_default_device());
 - Removes nfc_driver_desc_t from public types
 - Defines nfc_connstring as char[1024]
 - examples/*: use nfc_connstring
 - examples/nfc-poll: now uses only the default device (instead of all devices
   availables)
 - Removes parse_args() from nfc-utils.[hc]
2011-10-17 13:03:56 +00:00
Romuald Conty
dc842a844c examples/nfc-read-forum-tag3: add new example to read a NFC Forum Tag Type 3 2011-10-10 00:40:34 +00:00
Romuald Conty
b24191a9b9 Fix compilation using cmake 2011-10-04 21:43:05 +00:00
Romuald Conty
8fa83ac70f Fix infinite software polling 2011-10-04 21:42:06 +00:00
Romuald Conty
dccfd65c80 Add software polling for non-PN532 equipped device (Fixes Issue 136) 2011-10-03 11:19:08 +00:00
Romuald Conty
b1a30e3e3b drivers/pn53x_usb: fix timeout computing 2011-10-03 08:59:21 +00:00
Romuald Conty
b2666dea15 windows port improved:
- PCSC headers/libs are not a requierement sif you dont select ACR122 driver
 - uart_win32 implementation now handles timeouts
2011-10-01 14:50:53 +00:00
Romuald Conty
5ecf382dfc windows: Oups... timeout is a pointer... 2011-10-01 09:59:27 +00:00
Romuald Conty
afd015f1b7 Attempt to provide a Windows implementation of timeouts handling in UART 2011-09-30 14:02:51 +00:00
Romain Tartiere
311d12feef Make a copy of the provided timeout before calling select(2). 2011-09-29 15:01:48 +00:00
Romuald Conty
8f7834c625 drivers/arygon,pn532_uart,pn53x_usb: all PN53x commands are now cancelable 2011-09-29 14:53:52 +00:00
Romuald Conty
49ab6a7f31 raise up loggin level when PCSC context is not found (e.g. under POSIX system, pcscd is not running) 2011-09-29 11:59:34 +00:00
Romuald Conty
590e3910de Document new timeout parameter 2011-09-29 09:49:08 +00:00
Romuald Conty
87c13825af drivers/pn53x_usb: rework timeout usage 2011-09-22 16:21:22 +00:00
Romain Tartiere
481fb4943f - Add timeout capablities to nfc_initiator_transceive_bytes(), nfc_target_send_bytes() and nfc_target_receive_bytes();
- Bump version to 1.5.1.
2011-09-22 13:03:47 +00:00
Romuald Conty
f6b582cf2b windows: Remove DGB/WARN/ERROR obsolete macros usage. 2011-09-21 06:54:53 +00:00
Romuald Conty
e4524bc810 chips/pn53x: add RFConfiguration wrappers 2011-09-20 22:43:45 +00:00
Romuald Conty
b33fb81234 logging: fix LOG_CATEGORY and show the last command status. 2011-09-20 18:22:47 +00:00
Romuald Conty
cf99796a77 Removes semaphore.h depends. 2011-09-20 16:23:48 +00:00
Romuald Conty
ca8bd1df91 logging: remove semaphore usage since libnfc is not threaded and log4c does handle threaded cases itself. (Should ease Windows compiling) 2011-09-20 14:07:40 +00:00
Romain Tartiere
f6fc637d77 Soooo fragile :-)))) 2011-09-12 17:05:00 +00:00
Romuald Conty
e8eec583ed Enhance logging system:
* Removes internal DBG/WARN/ERR macros (but keep them in examples);
 * Removes almost all DEBUG define references;
 * Uses the flexible log4c library to log all messages.
2011-09-12 14:50:01 +00:00
Romuald Conty
fa7084fa77 removes the libusb-win32 workaround: libusb-win32 project released a new stable version which fixes the infinite timeout issue. (Thanks to Ergeerts Glenn) 2011-08-08 10:02:47 +00:00
Romuald Conty
676477e20c rework the way to determine which command is needed to send/receive a frame as target. 2011-06-30 17:05:59 +00:00
Romain Tartiere
84918fd075 Fix invalid memory access when a new driver is probing for hardware and the number of requested devices was already reached.
The probing functions assume that at least one device should be found and
passed to the caller, and only after finding such a device they will check that
they should eventually stop looking for more devices.  While we could make each
probing function capable of handling the special-case of finding 0 devices, it
is much more consistent to perform the check from the calling function.
2011-06-30 13:35:40 +00:00
Romuald Conty
fd19773c21 drivers/pn53x_usb: Make valgrind more happy :) 2011-06-28 14:05:40 +00:00
Romuald Conty
eec2794d2d drivers/pn532_uart,arygon: Make valgrind happy with UART-based drivers 2011-06-28 13:16:44 +00:00
Romuald Conty
e6051ceca4 chip/pn53x: clean up SAMConfiguration usage. 2011-06-27 17:12:25 +00:00
Romuald Conty
eb70f3842e Error handling improvement:
- Attempt to sort errors depending their source
 - Rename DE* errors to differenciate Device-Error and Driver-Error
 - Add ENOTIMPL error to raise a error when a feature is not (yet) implemented in libnfc
2011-06-27 16:31:10 +00:00
Romuald Conty
9c314d5652 Shrink InJumpForDEP frame size according to user manual. 2011-06-27 12:33:55 +00:00
Romuald Conty
904f41e0f7 drivers/pn53x*: use shared pn53x_ack_frame[] and pn53x_nack_frame[] instead of local declaration. 2011-06-27 10:33:55 +00:00
Romuald Conty
699e9008d1 Move ISO14443-3 UID cascading in a dedicated function. 2011-06-27 10:19:00 +00:00
Romuald Conty
0b42cbfb8f examples/nfc-emulate-forum-tag4: this example now fails with ENOTSUPP when used with a non-PN532 chip. 2011-06-27 09:14:19 +00:00
Romuald Conty
c40319c7b4 Windows: implement automatic uart port detection and input flush (Thanks to Edwin Evans) 2011-06-16 11:50:39 +00:00
Romain Tartiere
a8394caed5 Fix comparison between signed and unsigned. 2011-06-13 21:46:01 +00:00
Romuald Conty
29856a67a0 Rename USB_TIMEOUT to USB_INFINITE_TIMEOUT and use it each time bulk read need to be infinite. (Thanks to Guty) 2011-06-10 10:04:31 +00:00
Romuald Conty
850b3c2375 Improve USB support:
- All USB errors are now reported in text format;
 - USB drivers now relies on libusb-win32 with version >= 1.2.4.x (1.2.4.6 recommended) (Many thanks to Glenn)
2011-06-09 14:00:45 +00:00
Philippe Teuwen
7c88fc27b5 RC-S360, work-in-progress 2011-06-09 08:59:06 +00:00
Philippe Teuwen
082edbf598 More attempt to support Sony RC-S360 reader
Adapt InDeselect & InRelease to RC-S360
nfc-list now supports discovery of several typeA tags properly

Current status of RC-S360 support is:
    - nfc-list          => ok except for B' & 3B
    - nfc-anticol       => fails to send raw frames before select
    - nfc-mfultralight  => ok
    - nfc-mfclassic     => ok
    - pn53x-tamashell   => ok
    - pn53x-diagnose    => ok
    - nfc-dep-initiator => ok
    - nfc-dep-target    => fails in InitAsTarget
    - nfc-emulate-*     => fails in InitAsTarget

Commands momentarily disabled for RC-S360:
    - select_passive_target for B'& 3B
2011-06-08 00:09:57 +00:00
Philippe Teuwen
80a5ad1fd6 More attempt to support Sony S360 reader
Initialisation of RC-S360 in mode 0
Better generic nfc-list, does not rely only on DeSelect to avoid duplicates
Restore SetParameters for RC-S360
Handle Diagnose communication test properly

Tested:
    - nfc-list          => ok except for B' & 3B
    - nfc-anticol       => fails to send raw frames before select
    - nfc-mfultralight  => ok
    - nfc-mfclassic     => ok
    - pn53x-tamashell   => ok
    - pn53x-diagnose    => ok
    - nfc-dep-initiator => ok
    - nfc-dep-target    => fails in InitAsTarget
    - nfc-emulate-*     => fails in InitAsTarget

Commands momentarily disabled for RC-S330:
    - InDeselect
    - InRelease
    - select_passive_target for B'& 3B
2011-06-07 20:36:20 +00:00
Philippe Teuwen
91c46050c0 First attempt to support Sony S330 reader
Tested:
- nfc-list
- nfc-anticol
- nfc-mfultralight
- nfc-mfclassic

Commands momentarily disabled:
- SetParameters
- InDeselect
- InRelease
2011-06-05 22:25:05 +00:00
Philippe Teuwen
96538d052b Extend max length for firmware description & fix typo 2011-05-25 19:53:45 +00:00
Romuald Conty
17c63aebb5 pn53x_usb: continue to search a available device on usb errors (r1092 reverted then issue fixed). 2011-05-25 12:08:42 +00:00
Romuald Conty
917717c4ca drivers: UART based drivers could now use uart_flush_input() to discard junk bytes on input. 2011-05-25 10:31:19 +00:00
Romuald Conty
22e25a8b1e chips/pn53x: drivers now uses pn53x_data_new() and pn53x_data_free() to handle strcut pn53x_data allocation, initialization and freeing. 2011-05-25 10:25:17 +00:00
Romuald Conty
c45d4e685a pn53x_usb: continue to search a available device on usb errors (ie. Device Busy) 2011-05-25 10:15:18 +00:00
Romuald Conty
78ce62e7b6 Fix ISO/IEC 14443-4 hardware emulation.
NDO_AUTO_ISO14443_4 is now set to _true_ by default with nfc_target_init();
nfc_emulate_target() now fails (return _false_) when emulator->state_machine->io() failed;
Initialize nfc_device_t variables to _false_ in order to send correctly (see notes in nfc-device.c);
nfc_emulate_forum_tag4 prints error when nfc_emulate_target() failed.
2011-05-24 17:10:13 +00:00
Romuald Conty
975cd275d1 minor fixes 2011-05-20 16:09:00 +00:00
Romain Tartiere
4828211e97 Fix crash when usb_bulk_read() fails. 2011-05-18 22:25:09 +00:00
Romuald Conty
da6add3534 drivers/pn53x_usb: make PN53x usb connection more stable:
- move well-know USB problem hack into pn53x_usb_bulk_write()
 - put NACK hack to handle PN533 direct reply case
2011-05-17 10:41:26 +00:00
Philippe Teuwen
ff7696fffb nfc.c: reformulate comments of prev commit in chip-agnostic way. BTW there is more to do... 2011-05-12 20:51:44 +00:00
Philippe Teuwen
e5601e562f _timed(): now allows indirect control of intern prescaler via max expected cycles count 2011-05-12 20:33:00 +00:00
Philippe Teuwen
b98afced69 Move prescaler to CHIP_DATA struct & remove some compilation warnings 2011-05-11 23:22:52 +00:00
Philippe Teuwen
ab54a37678 list_targets support for ASK CTS512B (no anticol support yet) 2011-05-11 23:00:54 +00:00
Philippe Teuwen
53f1acfdcb _timed() fcts: allow 32b cycles counter & prescaler!=0 2011-05-11 20:56:09 +00:00
Philippe Teuwen
ca3c5007f6 pn53x _timed fcts now use burst read/write on fifo register 2011-05-10 23:44:36 +00:00
Philippe Teuwen
21dfe81d0b Some optimisations in initialisation of registers 2011-05-10 23:44:27 +00:00
Romuald Conty
2a9f876363 Import BUFFER_* macros from libfreefare and use them in writeback cache 2011-05-10 19:13:08 +00:00
Romuald Conty
2e630f7e0f windows port: fix uart_receive() under Win32 platform 2011-05-10 17:02:33 +00:00
Romuald Conty
d37b917352 chips/pn53x: remove double defines for pn53x registers. 2011-05-10 15:13:19 +00:00
Romuald Conty
e4dfa75045 chips/pn53x: *_timed() functions should prefer pn53x_WriteRegister() to bypass any kind of logical handling (mask, writeback, etc) 2011-05-10 13:53:48 +00:00
Romuald Conty
7bb4f4597d windows port: implement abort mecanism in pn532_uart driver (Based on provided patch: many thanks to Edwin Evans) 2011-05-10 13:26:57 +00:00
Philippe Teuwen
0e3357b589 pn53x _timed fcts: safebelts towards new writeback mechanism 2011-05-09 21:08:03 +00:00
Romuald Conty
ef3303839a chips/pn53x: fix memset size on writeback cache, typo and fix a mask problem on data store 2011-05-09 20:42:11 +00:00
Romuald Conty
b3cade2db2 Fix writeback cache size and some typo. 2011-05-09 19:55:22 +00:00
Romuald Conty
009d851771 Implement WriteBack cache (Fixes Issue 155) 2011-05-09 19:34:00 +00:00
Romuald Conty
95914345e1 chips/pn53x: add pn53x_data_new() function to alloc and init pn53x_data structure. 2011-05-09 18:47:48 +00:00
Romuald Conty
ebb352f1f3 Clean up and add some debug msg on ReadRegister/WriteRegister 2011-05-09 15:14:50 +00:00
Romuald Conty
25e2dbec95 chips/pn53x: set ui8LastCommand in chip layer instead of driver layer. 2011-05-09 14:22:12 +00:00
Romuald Conty
902bbfb04c Fix a segfault when abort_p is NULL. 2011-05-09 11:19:01 +00:00
Romuald Conty
921d28d976 Attempt to provide an abort mecanism for windows users... 2011-05-09 11:14:43 +00:00
Romuald Conty
468027ba2b chips/pn53x: PN532 now goes in LowVBat mode when setting idle mode from target mode. 2011-05-09 10:44:44 +00:00
Romuald Conty
be0f0b0828 New function nfc_idle() to set the NFC device in idle mode.
nfc_disconnect() now switch NFC device into idle before disconnecting;
pn53x_data now have a operating_mode enum to know the current running mode (initiator, target or idle);
new pn53x_PowerDown wrapper for PowerDown (PN532) command;

Note: ARYGON idle mode now to be implemented and ACR122 does not support this mode.
2011-05-09 10:09:40 +00:00
Romuald Conty
3a9327d1be document nfc_abort_command() 2011-05-06 23:25:41 +00:00
Philippe Teuwen
d834860965 Add partial support (list) for ISO14443B-3 ST SRx & ASK CTx cards 2011-05-06 19:11:03 +00:00
Romuald Conty
805d738b24 Implement PN53x extended information frames with USB devices. (Fixes Issue 158) 2011-05-06 15:03:08 +00:00
Romuald Conty
11a91af749 Add some SFR registers description, typo in PN53X_REG_CIU_TxMode address. 2011-05-06 14:32:32 +00:00
Romuald Conty
cd6946e751 Add ISO/IEC 14443 B' aka Type B' modulation partial support 2011-05-06 14:14:06 +00:00
Philippe Teuwen
77e522aade chips/pn53x.c: allow null reception buffers for transceive commands 2011-05-05 23:13:49 +00:00
Philippe Teuwen
c0a38e6eb0 drivers: fix bug on receive: all pn53x_transceive after an error were flagged as erroneous 2011-05-05 22:26:51 +00:00
Romuald Conty
cad3dc652d chips/pn53x: print a debug trace when reading PN53x registers. 2011-05-05 18:19:20 +00:00
Romuald Conty
04820bea47 chips/pn53x: set some parameters in FeliCa when using DEP mode. 2011-05-05 15:19:46 +00:00
Romuald Conty
80b4cd9767 chips/pn53x: set some parameters in ISO/IEC 14443A when using DEP mode (ie. SAK says ISO/IEC 18092 compliant) 2011-05-05 15:00:34 +00:00
Philippe Teuwen
e276d3e6ba nfc_target_init: drop explicitely the field 2011-05-05 14:58:26 +00:00
Philippe Teuwen
8dd8d25ef7 LoGO progressive field: remove hacks, unneeded with revised initializations 2011-05-05 12:45:56 +00:00
Romuald Conty
64b036b129 drivers: InDataExchange is an abortable command too. 2011-05-05 11:49:43 +00:00
Romuald Conty
008f2a8d4c Minor returns fixes. 2011-05-05 11:46:12 +00:00
Philippe Teuwen
4124dc662d Cleanup of initializations 2011-05-05 10:12:26 +00:00
Romuald Conty
5f890fedcc Remove obsolete callbacks 2011-05-05 09:45:39 +00:00
Romuald Conty
0265515a0c Abort mecanism is now implemented in driver layer:
iAbortFd file descriptor array have been removed from nfc_device_t;
nfc_abort_command() can now failed (return false);
nfc_abort_command() now call abort_command pointer from drivers;
pn532_uart and arygon drivers use a pipe-based mecanism (similar from previous one);
pn53x_usb driver use a boolean flag-based mecanism (the previous one does not work as expected);
pn53x_usb now print smarter messages on error at usb connection;
pn53x_usb now handle a strange case: sometimes, the first sent command is not ACKed by PN53x USB device, a dummy command is now sent.
2011-05-05 09:27:17 +00:00
Philippe Teuwen
412c326c3a better fix for timed fcts 2011-05-04 14:14:18 +00:00
Philippe Teuwen
f2cb0eaa6e list_passive_targets: fixed for TypeB on LoGO 2011-05-03 19:22:28 +00:00
Romuald Conty
c7da492872 drivers/pn53x_usb: use progressive field on/off only for ISO14443 Type B target listing. 2011-05-03 13:55:38 +00:00
Philippe Teuwen
8169da3701 pn53x: Fix bug in _timed fcts 2011-05-03 13:55:20 +00:00
Romuald Conty
26071a817b drivers/pn53x_usb: enable progressive field on init to allow pn53x-tamashell to works (note: it does not distrib progressive field enabling when nfc_list_passive_target() is used). 2011-05-03 13:19:03 +00:00
Audrey Diacre
e82e897bd9 pn53x: oups, fix typo. 2011-05-03 12:24:33 +00:00
Audrey Diacre
85a30c0897 pn53x:reorder functions according to header. 2011-05-03 12:08:54 +00:00
Romuald Conty
96358368f5 cast explicitly sz (uint8_t) in size_t 2011-05-02 16:43:03 +00:00
Romuald Conty
517cde2517 Prepare 1.5.0 version 2011-04-29 10:13:57 +00:00
Romuald Conty
de9255eaea drivers/arygon: enable abort() mecanism on InJumpForDEP command 2011-04-27 15:09:22 +00:00
Romuald Conty
6fc4a5b70a Use a new current target pointer to choose correctly the sending/receiving method (ie. TgSetData/TgGetData or TgResponseToInitiator/TgGetInitiatorCommand). 2011-04-27 14:42:27 +00:00
Romuald Conty
1107b226ac drivers/pn532_uart: enable abort() mecanism on InJumpForDEP command 2011-04-27 14:38:05 +00:00
Romuald Conty
ee718d6f9b drivers/pn53x_usb: do not send ACK when its not needed, enable abort() mecanism on InJumpForDEP command 2011-04-27 14:37:24 +00:00
Romuald Conty
1198a71d64 chip/pn53x: handle PN532 "power down" and "low VBat" power mode instead of a simple "sleep" mode. (Fixes Issue 167) 2011-04-27 13:16:36 +00:00
Romuald Conty
332e4afc31 drivers/arygon: add a debug message when a not supported payload is sent. 2011-04-22 17:30:17 +00:00
Romuald Conty
971d799e39 Arygon driver: append Arygon firmware version to device name. 2011-04-20 14:06:12 +00:00
Romuald Conty
f4f0b38f73 Put a comment on tcflush(), it does not produce the attempted effect. ie. there are remaining bytes from old connections. 2011-04-20 14:03:41 +00:00
Romuald Conty
762f6fb1f3 Windows: install libusb into examples directory using "Bundle" feature from CMake (Thanks to Glenn Ergeerts) 2011-04-20 13:18:38 +00:00
Romuald Conty
231913fd35 show PRINT_HEX result on stderr in debug mode (that helps to sync with debug msg which are printed on standard error output.) 2011-04-20 12:11:31 +00:00
Romuald Conty
4996d36f5f drivers/arygon: reject too heavy payload (ARYGON does not support extended frame even with PN532 equipped device) 2011-04-14 15:50:04 +00:00
Romuald Conty
fe49ccd701 Implement extended frame send/receive for PN532_UART driver. 2011-04-13 16:39:58 +00:00
Philippe Teuwen
9c7c4307d4 pn53x_usb: turn off LEDs on LoGO on exit 2011-04-08 19:27:10 +00:00
Philippe Teuwen
ed715056e2 pn53x_usb: add comments on LED switching 2011-04-08 19:11:42 +00:00
Romuald Conty
0daa5822f5 add SCM SCL3711 led support: the led is now On/Off accordingly to field activation. 2011-04-08 14:42:29 +00:00
Romuald Conty
bd7c9a2b85 Enhance ASK LoGO dedicated code:
- Initialize the device right after pn53x_init() instead of pn53x_initiator_init().
 - Turn on LED1 when initialized
 - Switch On/Off LED2 on Activation/Desactivation of the field.
2011-04-08 14:30:23 +00:00
Romuald Conty
494e0f4474 windows: copy libusb.dll to bin install dir (windows needs it to be alongside the exe or in the path) (Thanks to Gleen Ergeerts) 2011-04-08 14:11:42 +00:00
Philippe Teuwen
55495e1e97 *_timed fcts: proper error codes 2011-04-05 13:44:36 +00:00
Philippe Teuwen
743fa048e1 pn53x: adapt MaxRetries to avoid issue with 2 tags on PN531, using same value as what LoGO does 2011-04-05 13:39:47 +00:00
Philippe Teuwen
7f2b300dde support crc auto-handling in ...transceive_bytes_timed 2011-04-04 22:23:38 +00:00
Philippe Teuwen
ffe2714b28 pn53x: factorize timer code 2011-04-04 19:04:43 +00:00
Romuald Conty
11668f1143 Chip type is filled in pn53x_init(). 2011-04-04 15:21:28 +00:00
Romuald Conty
601081d50a Calibrate PN532_UART and ARYGON drivers. 2011-04-04 15:20:33 +00:00
Philippe Teuwen
93de7fcd5c pn53x drivers: fix timer corrections location 2011-04-04 15:07:39 +00:00
Philippe Teuwen
fb398c387f pn53x: add timed versions of transceive_bytes/bits 2011-04-04 14:16:36 +00:00
Romuald Conty
b21d3c6728 ASK LoGO: enable progressive field feature. 2011-04-04 09:53:33 +00:00
Romuald Conty
71c400ae14 Fix a bug when value is larger than mask. 2011-04-04 09:53:00 +00:00
Philippe Teuwen
93c56a4b44 pn53x_usb: fix description strings 2011-04-04 09:29:14 +00:00
Philippe Teuwen
5600007dd3 pn53x: factorize & generalize CHIP_DATA() usage 2011-04-04 09:26:10 +00:00
Romuald Conty
5db8be908b Windows support contribution:
- Move CMake modules from cmake_modules/ to cmake/modules/
 - CMake now use cmake/config_windows.h.cmake to create config.h on Windows platform
 - contrib/windows.h header is automagically included by config.h
 - Put missing NFC_EXPORT macro on front of emulation API
 - nfc-mfclassic and nfc-mfcultralight examples are now compiled under Windows
Many thanks to Glenn Ergeerts which provide the initial patch.
2011-03-31 13:38:49 +00:00
Romuald Conty
8ed870d886 windows: implement a dynamicly construct list of serial ports (Thanks to Edwin Evans) 2011-03-30 14:19:53 +00:00
Romuald Conty
2c37571a40 Add nfc-emulation source while build using CMake 2011-03-30 09:40:33 +00:00
Romuald Conty
d72d5c536e Add licence and document a bit some files. 2011-03-30 09:39:08 +00:00
Romain Tartiere
e44af986a0 Unbreak aborting from the pn53X_usb driver. 2011-03-13 20:42:27 +00:00
Romain Tartiere
2d31877aec Fix header protection. 2011-03-13 20:33:00 +00:00
Romain Tartiere
0f0fa2b14f Move nfc_emulate_target() from examples to the library. 2011-03-13 14:31:06 +00:00
Romuald Conty
4d458ec3d6 Attempt to fix Windows port. 2011-03-09 18:41:57 +00:00
Romain Tartiere
2f60e23fd5 Cleanup macro. 2011-03-09 16:13:44 +00:00
Romain Tartiere
2cca743e07 Return an error when a command is aborted;
Fix aborting with UART devices.
2011-03-09 14:10:40 +00:00
Romain Tartiere
605a5f2db3 Fix nfc_pick_device() when called from nfc_connect with NULL nfc_device_desc_t parameter (Fixes Issue 156) 2011-03-09 13:49:33 +00:00
Romain Tartiere
cfc5273275 Simplify uart_send() on POSIX systems. 2011-03-09 13:42:23 +00:00
Romain Tartiere
ad530f6d02 Various cleanups.
- New functions nfc_device_new(), nfc_device_free();
- Add experimental abort mechanism for the PN53x USB driver;
- Move chip-specific variables from nfc_device_t to pn53x_data (Fixes Issue 124).
2011-03-09 13:37:16 +00:00
Romuald Conty
544030099e Make libnfc compile under Windows
Apply adapted patch from Glenn (Thanks!)
2011-03-09 09:41:40 +00:00
Romuald Conty
3fb4b0e0ee pn532_uart: Use DRIVER_DATA and CHIP_DATA macros 2011-03-08 15:20:16 +00:00
Romain Tartiere
7ca0aa07c5 Initialise pn53x chip in acr122_connect(). 2011-03-08 15:09:23 +00:00
Romain Tartiere
88bff13b85 Lint the ACR122 driver. 2011-03-08 15:01:07 +00:00
Romain Tartiere
61fa081cfe Unbreak support of ACR122.
Only tested w/ a touchatag.
@yobibe: _NO_ LED support yet (OMG!)
2011-03-08 14:33:32 +00:00
Romain Tartiere
854f18be74 Cleanup the Arygon driver. 2011-03-08 10:55:44 +00:00
Romuald Conty
70c2836798 Add some useful comments on ASK LoGO hardware, and define missing registers. 2011-03-07 02:47:21 +00:00
Romain Tartiere
0abfe60f35 Fix aborting from blocking command with Arygon devices. 2011-03-05 21:28:18 +00:00
Romain Tartiere
29618b7e27 Fix crash when pn53x_TgInitAsTarget() is aborted. 2011-03-05 21:27:10 +00:00
Romain Tartiere
f1f31d1b4c Unbreak and merge PN53x USB drivers.
While here fix some includes that would not work if SRCDIR != BUILDDIR.
2011-03-05 19:54:52 +00:00
Romuald Conty
094db12a1a Implements HAL struct for PN532 UART devices. 2011-03-05 10:58:36 +00:00
Romuald Conty
6d3e5d3899 drivers/arygon: code clean up 2011-03-05 10:56:35 +00:00
Romuald Conty
0efa47880b Hardware abstraction layer for libnfc:
Suppress any PN53x references in nfc.c
Improve nfc_driver_t struct to embedded HAL API
Merge macros from nfc-messages.h into nfc-internal.h
Remove useless files: nfc-messages.h, buses.h and chips.h
Implement HAL for ARYGON driver
Move send/receive callbacks from nfc_driver_t to internal chip io callbacks (since there are dedicated to pn53x framing)
2011-03-05 10:06:52 +00:00
Romain Tartiere
a55a52e0a9 Fix pn53x_InAutoPoll() return value on user cancelation (true instead of false). 2011-03-05 01:46:16 +00:00
Romain Tartiere
97dd0b63d7 Implement abort for pn532_uart driver. 2011-03-04 20:17:28 +00:00
Romain Tartiere
4b6060aeeb Enable aborting blocking commands (e.g. TgInitAsTarget) and refactor
*_check_communication() as pn53x_check_communication().
2011-03-04 19:59:49 +00:00
Romain Tartiere
7ed71a1501 Merge r912 into trunk. 2011-03-04 15:49:16 +00:00
Romuald Conty
172beccf6c drivers/arygon: do not hard code PN532 chip type: pn53x_init() determine it and ARYGON device seems to not need to be waken up. 2011-03-04 11:26:15 +00:00
Romain Tartiere
fe7ec36fb7 Fix Arygon driver reported name. 2011-03-04 11:23:52 +00:00
Romain Tartiere
4d65868208 Only call pn53x_init() from the drivers initialization functions. 2011-03-04 11:23:20 +00:00
Romain Tartiere
b1521a3bb1 If the current driver name does not match what we are looking for, move to the
next one before retrying.
2011-03-04 11:18:47 +00:00
Romain Tartiere
61a5268d65 Do not coredump if we have an unexpected reply.
If we are speaking to the wrong device, it is very likely we will have an
"unexpected reply" and we should ignore it.
2011-03-04 11:16:18 +00:00
Romuald Conty
f81138b3c7 ARYGON driver works again and PN532_UART improved :)
drivers/pn532_uart: code clean up
chips/pn53x: new fonction to build frames
drivers/arygon: use the new way to drive UART (its far more stable)
2011-03-04 09:28:25 +00:00
Romuald Conty
7ec1080e16 Remove a dummy argument in pn53x_transceive(). 2011-03-02 15:32:52 +00:00
Romuald Conty
2608b3dc55 smart merge of r906 into trunk (Thanks to marko259 from libnfc forum). 2011-03-02 15:18:06 +00:00
Romuald Conty
4b6ba0aa3c Always set the size of Rx buffer (prevent from overflow) 2011-03-02 15:02:30 +00:00
Romuald Conty
5af845cdfc Broke whole the libnfc :-)
use a new way to handle drivers
use absolute include path instead of relative ones
move some nfc_device_t members in a better place
nfc_device_t now embeddeds driver data and chip data pointers (useful to be more generic)
use more readable variables instead of strange coding convention
move PRINT_HEX macro into nfc-internal.h
silent warnings with more strict CFLAGS
chips/pn53x: use the powerful C99 writing to construct PN53x commands
chips/pn53x: remove almost all memcpy()
chips/pn53x: WriteRegister, ReadRegister and SetParameters command wrappers are correctly named
chips/pn53x: introduce chip state (SLEEP, NORMAL or EXECUTE)
chips/pn53x: add SAMConfiguration command wrapper (need to be improved)
chips/pn53x: remove almost all const arrays
chips/pn53x: use human readable defines for commands instead of hex values
chips/pn53x: in debug mode, the PN53x command is shown in human-readable string, awesome isn't it? ;-)
drivers: split transceive() into send() and receive() to be able to handle more cases (differed replies, abort commands, etc) later
drivers: use a const structure of functions instead of -dirty- callbacks array
drivers/pn532_uart: major improvement of UART handling
drivers/pn532_uart: check PN53x frames when received
buses/uart: receive() is now based on expected bytes instead of calculated timeouts..
buses/uart: use a smart way to determine available ports on POSIX systems (tested on Linux and FreeBSD)
2011-03-02 15:00:44 +00:00
Romuald Conty
b4d23795de Prepare 1.4.2 version 2011-02-22 14:17:20 +00:00
Romuald Conty
2ad6591f31 pn532_uart: fix pn532 wakeup response handling 2011-02-15 18:08:35 +00:00
Romuald Conty
695dc75037 uart: fix remaining bytes computation 2011-02-15 18:06:24 +00:00
Romuald Conty
e110a78de7 uart: do not reload static timeout as it is already past (static timeout is used to compensate response delay) 2011-02-14 13:24:42 +00:00
Romuald Conty
555c32015c uart: prevent from retrieving more than buffer length (potential buffer overflow) 2011-02-14 13:23:39 +00:00
Romuald Conty
243100b676 Silent some compilation warnings (Fixes Issue 145) 2011-02-10 10:38:21 +00:00
Romuald Conty
91419f8ad3 chip/pn53x: set register directly if mask cover whole value. 2011-02-01 21:38:25 +00:00
Romuald Conty
58ad2a5760 Add new supported device: ASK / LoGO. (Thanks to ASK for sending one sample of this device) 2011-02-01 21:20:48 +00:00
Romuald Conty
659d7a9de1 Prepare 1.4.1 version 2011-02-01 09:49:41 +00:00
Emanuele Bertoldi
35188bff25 Removed hard-coded size of ack frame. 2011-01-28 10:22:21 +00:00
Emanuele Bertoldi
eae07f1977 Improved UART communication on POSIX systems:
- Added "dynamic timeout" to "uart_send" function.
- Added "static timeout" to each iteration of the while loop (it seems to solve a lot of sync troubles during read operation). 
(Tested with PN532).
2011-01-18 11:35:23 +00:00
Emanuele Bertoldi
b58816df05 Fixed issue #139: serial autoprobe now skips invalid devices but checks all ports in the list. 2011-01-14 16:39:02 +00:00
Roel Verdult
55be1debaf added include for MIN macro, fixed typo in determin buffer size 2011-01-11 12:04:42 +00:00
Romuald Conty
0f8c23bddd Inform user if target UID can be emulated
New error: ETGUIDNOTSUP raised when UID is not 4 bytes long or does not start with 0x08 (Security restriction present in the NXP PN53x chips)
2011-01-07 16:15:18 +00:00
Romuald Conty
ba1db2f406 chips/pn53x: name commands like user manual 2011-01-06 14:52:45 +00:00
Romuald Conty
88c14f5d4b Oops, revert wrong file commit 2011-01-06 14:06:01 +00:00
Romuald Conty
556918b298 Add some manual tests with ARYGON APDB2UA33. 2011-01-06 14:04:48 +00:00
Romuald Conty
432eff0f7d Fix polling on ARYGON devices 2011-01-06 14:00:05 +00:00
Romuald Conty
dd8ec29bb4 chips/pn53x: prefer pn53x_transceive() when possible. 2011-01-06 13:59:20 +00:00
Romuald Conty
6edb5a3bef Fix reply frame length for InAutoPoll 2011-01-06 13:20:45 +00:00
Romuald Conty
6ca32fbfb9 Fix reply length from transceive bits/bytes functions 2011-01-06 13:07:38 +00:00
Romuald Conty
1d085f21c9 Improve PN53x frame size calculation.
chips/pn53x: adjust size and defines to better handle reply size;
drivers/arygon: improve attempted reply size, should speed up the connexion;
drivers/pn532_uart: improve attempted reply size, should speed up the connexion;
2011-01-06 12:39:29 +00:00
Romuald Conty
26b26f9783 Comment out debug messages and use MIN() macro from <sys/param.h> 2011-01-06 12:31:31 +00:00
Romuald Conty
53c8917353 Attempt fix some UART timeouts, should also allow lower devices to be detected. 2010-12-30 10:01:06 +00:00
Romuald Conty
ba37313cb8 Prevent from stack corruption when using PN533-based device and add errors handling for ReadRegister and WriteRegister. (Fixes Issue 135) 2010-12-29 14:01:14 +00:00
Romuald Conty
6aa07aa78b Add extra dist to make distcheck pass and force distcheck to compile all drivers 2010-11-17 10:14:26 +00:00
Romuald Conty
835823809f Split UART implementations: POSIX and Windows
It could ease to port to other system like MiKey and it should be easy to track which is the concerned OS while uart driver is modified.
2010-11-17 08:48:03 +00:00
Romuald Conty
58dcf63e7c MERGE: libnfc-mingw-cross merge with trunk (r805-821) 2010-11-17 08:29:41 +00:00
Romuald Conty
6df612a364 Errors use #define instead of constant values.
Update Issue 84
Current 'ident' command breaks commit-concerned lines.
2010-11-15 18:50:53 +00:00
Philippe Teuwen
779fdd5df6 Tweaks Touchatag detection under MacOSX (Fixes issue 128) 2010-11-15 13:00:07 +00:00
Romuald Conty
6e29450d69 Fix memory leak while using *_pick(). Thanks to frankmorgner (Fixes Issue 130) 2010-11-12 19:24:20 +00:00
Romuald Conty
6e70cfa5ef Fix UART default serial ports under Linux. 2010-11-12 18:38:47 +00:00
Romain Tartiere
4e5d0766e1 Rename append_iso14443a_crc() to iso14443a_crc_append(). 2010-10-29 10:59:26 +00:00
Romuald Conty
5c8749c63e drivers/arygon: retrieve ARYGON firmware version 2010-10-22 15:21:06 +00:00
Romuald Conty
8798f6bbcd Fix ARYGON driver:
- Does not send any ACK frame at start: my ARYGON does get happy with this frame (see code comments)
 - Send a TAMA reset (for PN532) instead of ACK frame
 - Remove bzero use: its a deprecated function
2010-10-22 14:29:44 +00:00
Romuald Conty
ca8c5cabe1 Fix minor compilation warnings 2010-10-22 14:25:09 +00:00
Romuald Conty
1a320d5577 Adjust uart's timeout from baud rate 2010-10-22 14:10:36 +00:00
Romuald Conty
97cf9e925b Attempt to fix ARYGON driver 2010-10-20 16:14:53 +00:00
Romuald Conty
72d7b66d2b Handle more corner case during convertion from nfc_* types to available pn53x_* types 2010-10-20 09:28:36 +00:00
Romuald Conty
5538fbd20f Add NBR_847 (used with ISO14443B) and update convert function. 2010-10-20 08:34:06 +00:00
Romuald Conty
f249af6266 Add ISO14443-4 modulation to hardware polling only when NDO_AUTO_ISO14443_4A have been enabled and document this features and known issues. 2010-10-19 09:34:18 +00:00
Philippe Teuwen
f75d2d3582 Typo 2010-10-18 16:17:01 +00:00
Romuald Conty
f9391ad823 Update some TODOs 2010-10-18 15:47:56 +00:00
Romuald Conty
b5d85fc6e1 Decode supported modulation from PN53x 2010-10-18 14:26:49 +00:00
Romuald Conty
bfb49b594f Clean the way to retrieve firmware 2010-10-18 13:19:30 +00:00
Romuald Conty
c6c43afc87 Minor FIXME or XXX removes 2010-10-18 12:22:04 +00:00
Romuald Conty
7d59b6b1a3 Make sure the field is disabled then enabled before listing.
Improve documentation about default configuration values.
2010-10-18 10:11:30 +00:00
Romuald Conty
ecc1eeca8f API documentation improvement: explain a bit what is pbtInitData for nfc_initiator_select_passive_target() 2010-10-18 09:53:14 +00:00
Romuald Conty
1f62e9e2f2 Improve API for target emulation, nfc_target_mode_t does not exist anymore (this mode is computed from nfc_target_t) 2010-10-15 14:32:10 +00:00
Philippe Teuwen
33a99288f3 pn53x target_init: fix bug to use Tk; nfc-relay-picc: fix potential segfault 2010-10-14 20:17:58 +00:00
Philippe Teuwen
ffe50562dd Make use of the now available Tk info 2010-10-14 18:33:17 +00:00
Romuald Conty
cbca45e21c Oups it miss some space to handle HB. 2010-10-14 17:43:28 +00:00
Romuald Conty
41758ab63f pn53x_target_init() now takes care of Historical Bytes 2010-10-14 17:38:54 +00:00
Romuald Conty
4a50be27de Add a iso14443a function to extract Historical Bytes from ATS 2010-10-14 17:32:15 +00:00
Romuald Conty
7c76e1bf32 nfc_target_init() now update nfc_target_t baud rate 2010-10-14 16:27:50 +00:00
Romuald Conty
7294e4fbaf examples/nfc-utils: decode more ATS info 2010-10-14 14:48:59 +00:00
Romuald Conty
507a23b708 Improve nfc_target_init() 2010-10-14 13:31:36 +00:00
Romuald Conty
60c9da598a Support different baud rates for nfc_initiator_select_dep_target() 2010-10-14 13:03:23 +00:00
Philippe Teuwen
5a5b5d681b Small typos 2010-10-14 11:53:27 +00:00
Romuald Conty
af88da1a9c Replace nfc_target_info_t with nfc_target_t in API function, we now have a coherent struct to handle nfc_target_t, use it! 2010-10-14 11:44:43 +00:00
Romuald Conty
6f3fbcb6bf Fix nfc_dep_mode_t usage in API, fix/improve documentation 2010-10-14 11:12:23 +00:00
Romuald Conty
d41e7f2ca0 Hack polling modulations in order to have ISO14443-4 with ATS and ISO14443-3 targets 2010-10-13 22:28:29 +00:00
Romuald Conty
9d9b5a629e Fix nfc-poll, improve pn53x_target_type_t decoding 2010-10-13 21:40:54 +00:00
Romuald Conty
adba90684d introduce nfc_dep_mode_t type instead of bool in nfc_initiator_select_dep_target() 2010-10-13 19:59:39 +00:00
Romuald Conty
124cc28bac Typo 2010-10-13 19:51:21 +00:00
Romuald Conty
f2a3d51037 Fix a bug introduce in r729, fix a compilation warning 2010-10-13 19:50:43 +00:00
Romuald Conty
ec601f6a00 Fix two bugs introduced in r729, typo. 2010-10-13 19:31:02 +00:00
Romuald Conty
d67527932c Add some FIXME/TODO about PN532 that does not supported B type (ISO14443) 2010-10-13 19:24:24 +00:00
Romuald Conty
979430ecd1 nfc_target_t have now nfc_modulation_t instead of nfc_modulatation_type_t 2010-10-13 19:17:51 +00:00
Romuald Conty
584a18ec11 Remove unused pn53x_modulations 2010-10-13 18:41:48 +00:00
Romuald Conty
d289eabc36 Attempt to provide clean types for API 2010-10-13 17:43:23 +00:00
Romuald Conty
9020014160 Rename nfc_modulation_t as pn53x_modulation_t 2010-10-13 15:39:52 +00:00
Romuald Conty
695e5c2f37 Rename nfc_target_type_t as pn53x_target_type_t 2010-10-13 15:31:48 +00:00
Romuald Conty
c53c512831 Change some nfc_target_type_t to insist on the ISO/IEC 14443-4 compliance 2010-10-13 11:49:34 +00:00