NFC API for mbed using the MicroNFCBoard as a peripheral
Dependents: MicroNFCBoardAPI_P2P_Client MicroNFCBoardAPI_Blink MicroNFCBoardAPI_Tag_Emulator MicroNFCBoardAPI_Tag_Reader ... more
transport.h
- Committer:
- AppNearMe
- Date:
- 2015-04-24
- Revision:
- 0:07fa9c0dd549
- Child:
- 1:1d246e0872c6
File content as of revision 0:07fa9c0dd549:
/** * \file transport.h * \copyright Copyright (c) AppNearMe Ltd 2015 * \author Donatien Garnier */ #ifndef SRC_TRANSPORT_H_ #define SRC_TRANSPORT_H_ #include "mbed.h" #include <cstddef> class Transport { public: Transport(PinName mosi, PinName miso, PinName sck, PinName cs, PinName irq); void init(); void reset(); bool statusChanged(); uint32_t status(); void nfcPoll(bool enable); void nfcOperation(bool readOp, bool writeOp); void nfcGetInfoIsoA(uint8_t* atqa, uint8_t* sak, uint8_t* uid, size_t* pUidLength); void nfcGetMessageInfo(size_t* pRecordCount); void nfcSetMessageInfo(size_t recordCount); void nfcGetRecordInfo(size_t recordNumber, uint16_t* pType, uint16_t* info, size_t infoCount); void nfcSetRecordInfo(size_t recordNumber, uint16_t type, uint16_t* info, size_t infoCount); void nfcGetRecordData(size_t recordNumber, size_t item, size_t offset, uint8_t* data, size_t length); void nfcSetRecordData(size_t recordNumber, size_t item, size_t offset, uint8_t* data, size_t length); void nfcPrepareMessage(bool lock, bool generate); void nfcDecodePrefix(uint8_t prefix, char* data, size_t* pDataLength); void nfcEncodePrefix(uint8_t* pPrefix, char* data, size_t dataLength); void leds(bool led1, bool led2); protected: enum CommandError { OK = 0, ERR_LENGTH = 1, ERR_EMPTY = 2, ERR_UNKNOWN_COMMAND = 3, ERR_TIMEOUT = 4, ERR_PARAMS = 5, ERR_STATUS = 6, }; enum CommandCode { GET_STATUS = 0, INFO = 1, RESET = 2, LEDS = 3, NFC_POLL = 4, NFC_OPERATION = 5, NFC_GET_INFO = 6, NFC_GET_MESSAGE_INFO = 7, NFC_GET_RECORD_INFO = 8, NFC_GET_RECORD_DATA = 9, NFC_SET_MESSAGE_INFO = 10, NFC_SET_RECORD_INFO = 11, NFC_SET_RECORD_DATA = 12, NFC_PREPARE_MESSAGE = 13, NFC_DECODE_PREFIX = 14, NFC_ENCODE_PREFIX = 15 }; CommandError command(CommandCode command, uint8_t* outBuf, size_t outLength, uint8_t* inBuf, size_t inLength); private: DigitalOut _cs; SPI _spi; DigitalIn _int; }; #endif /* SRC_TRANSPORT_H_ */