cryptnox-sdk-arduino 1.0.0
Arduino library for Cryptnox Hardware Wallet
Loading...
Searching...
No Matches
PN532Adapter.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: LGPL-3.0-or-later
3 * Copyright (c) 2026 Cryptnox SA
4 */
5
21
22#ifndef PN532ADAPTER_H
23#define PN532ADAPTER_H
24
25#include <Arduino.h>
26#include <Adafruit_PN532.h>
30
53
87public:
99 PN532Adapter(CW_Logger& logger, uint8_t ssPin, SPIClass *theSPI = &SPI);
100
114 PN532Adapter(CW_Logger& logger, uint8_t clk, uint8_t miso, uint8_t mosi, uint8_t ss);
115
127 PN532Adapter(CW_Logger& logger, uint8_t irqPin, uint8_t resetPin, TwoWire *wire = &Wire);
128
139 PN532Adapter(CW_Logger& logger, uint8_t resetPin, HardwareSerial *uartSerial);
140
142 ~PN532Adapter() override;
143
144 PN532Adapter(const PN532Adapter&) = delete;
146
149
159 bool begin() override;
160
181 bool sendAPDU(const uint8_t* apdu, uint8_t apduLen,
182 uint8_t* response, uint8_t& responseLen) override;
183
201 bool sendAPDULarge(const uint8_t* apdu, uint8_t apduLen,
202 uint8_t* response, uint16_t& responseLen) override;
203
212 bool inListPassiveTarget() override;
213
221 void resetReader() override;
222
232 bool printFirmwareVersion() override;
234
235private:
238 Adafruit_PN532* _nfc;
239};
240
241#endif // PN532ADAPTER_H
Shared constants, error codes, and session state for the SDK.
Abstract logging interface.
Abstract NFC transport interface.
Abstract interface for serial/debug output.
Definition CW_Logger.h:48
Abstract interface for NFC transport operations.
PN532Interface _interface
Wiring variant the active constructor selected.
void resetReader() override
Reset the PN532 into a clean idle state.
bool printFirmwareVersion() override
Pretty-print the PN532 firmware version + supported features.
bool sendAPDU(const uint8_t *apdu, uint8_t apduLen, uint8_t *response, uint8_t &responseLen) override
Exchange one ISO-DEP APDU with the currently selected card.
PN532Adapter & operator=(const PN532Adapter &)=delete
Adafruit_PN532 * _nfc
Owned Adafruit_PN532 driver instance.
PN532Adapter(CW_Logger &logger, uint8_t ssPin, SPIClass *theSPI=&SPI)
Construct an adapter wired over hardware SPI.
bool inListPassiveTarget() override
Poll for a card in the field.
bool begin() override
Initialise the PN532 and probe its firmware version.
~PN532Adapter() override
Release the heap-allocated Adafruit_PN532 instance.
PN532Adapter(const PN532Adapter &)=delete
CW_Logger * _logger
Logger reference (non-owning).
bool sendAPDULarge(const uint8_t *apdu, uint8_t apduLen, uint8_t *response, uint16_t &responseLen) override
APDU exchange that can return more than 255 bytes.
PN532Interface
Physical wiring used to reach the PN532 reader.
@ SPI_HARDWARE
Hardware SPI via an SPIClass instance.
@ SPI_SOFTWARE
Bit-banged SPI on four arbitrary GPIOs.
@ UART
UART via a HardwareSerial instance.
@ I2C
I2C via a TwoWire instance.