Commit graph

102 commits

Author SHA1 Message Date
Audrey Diacre
c30e9eed36 send/receive callbacks from internal chip io return now libnfc error code on failure. 2012-01-05 13:24:41 +00:00
Romuald Conty
254053b940 fix few minor bugs:
- timeout values handling in pn53x_transceive()
- check error code after filling it in pn53x_transceive()
- fix pn53x_check_communication() return code
- lower timeout default values
- fix arygon_abort() return code
2012-01-04 20:02:51 +00:00
Audrey Diacre
52c72383f1 pn53x_build_frame() function returns now 0 on success and libnfc error code on failure. 2012-01-04 16:44:40 +00:00
Audrey Diacre
e87241184a pn53x_check_ack_frame() and pn53x_check_error_frame() functions return now 0 on success and libnfc error code on failure. 2012-01-04 16:32:16 +00:00
Audrey Diacre
7e1c776bc1 pn53x_check_communication() returns now 0 on success and libnfc error code on failure. 2012-01-04 16:19:24 +00:00
Audrey Diacre
9c5ec3c4e1 the following functions now return libnfc error code:
_pn53x_write_register()
_pn53x_WriteRegister()
_pn53x_transceive()
_pn53x_SAMConfiguration()
_pn53x_PowerDown()
 _pn53x_InListPassiveTarget()
_pn53x_InDeselect()
_pn53x_InRelease()
_pn53x_RFConfiguration__*
2011-12-20 11:25:33 +00:00
Romuald Conty
bf7c36d9bb less structs and defines publicly exposed
- nfc_device is now an opaque type;
 - PN53x specific errors are not public anymore;
 - nfc_device_name() renamed to nfc_device_get_name() for the sake of consistency;
 - examples/*, utils/* uses the new nfc_device_get_name() function instead of access directly to struct's content;
 - new error defined: NFC_ERFTRANS for notifying about RF transmission error, its used by mifare.c to detect permissions error on mifare;
 - drivers initiator_transceive_bytes() function now returns libnfc's error code on failure (<0), and received bytes count on success (>=0);
 - remove some unused errors.
2011-12-19 00:23:21 +00:00
Romuald Conty
9bdc20353c nfc_device struct is not exposed as public API anymore (partial commit)
- split libnfc's errors and chip's errors
 - fix nfc_property enum
2011-12-15 16:02:38 +00:00
Audrey Diacre
a615d969fd nfc_properties replace now nfc_options and nfc_configure is replaced by nfc_device_set_property_bool which returns error code. 2011-12-14 16:01:00 +00:00
Romuald Conty
26b9c28f48 new properties to tune timeouts:
- add nfc_properties (will replace nfc_options)
 - introduce some error codes
 - rework functions to use the new timeout_command value
2011-12-14 13:27:11 +00:00
Audrey Diacre
52bc5853d8 Remove whitespace after star symbol for pointers 2011-11-25 15:21:10 +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
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
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
dccfd65c80 Add software polling for non-PN532 equipped device (Fixes Issue 136) 2011-10-03 11:19:08 +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
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
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
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
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
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
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
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
25e2dbec95 chips/pn53x: set ui8LastCommand in chip layer instead of driver layer. 2011-05-09 14:22:12 +00:00
Romuald Conty
921d28d976 Attempt to provide an abort mecanism for windows users... 2011-05-09 11:14:43 +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
805d738b24 Implement PN53x extended information frames with USB devices. (Fixes Issue 158) 2011-05-06 15:03:08 +00:00
Romuald Conty
64b036b129 drivers: InDataExchange is an abortable command too. 2011-05-05 11:49:43 +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
Romuald Conty
1107b226ac drivers/pn532_uart: enable abort() mecanism on InJumpForDEP command 2011-04-27 14:38:05 +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
fe49ccd701 Implement extended frame send/receive for PN532_UART driver. 2011-04-13 16:39:58 +00:00
Philippe Teuwen
ffe2714b28 pn53x: factorize timer code 2011-04-04 19:04:43 +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
Philippe Teuwen
5600007dd3 pn53x: factorize & generalize CHIP_DATA() usage 2011-04-04 09:26:10 +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
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
3fb4b0e0ee pn532_uart: Use DRIVER_DATA and CHIP_DATA macros 2011-03-08 15:20:16 +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
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
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
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