Utility library to read and write Ndef messages from/to a Type4 NFC tag
Dependents: NFC M2M_2016_STM32 MyongjiElec_capstone1 IDW01M1_Cloud_IBM ... more
Fork of NDefLib by
NDEF NFC library
This library provides an abstract API to create NDEF formatted messages and records and to read/write them from/to a Type4 NFC Tag.
Implementations
At the moment, the NDEF API is implemented by X_NUCLEO_NFC01A1 and X_NUCLEO_NFC02A1 Dynamic NFC Tag libraries respectively driving the X-NUCLEO-NFC01A1 and X-NUCLEO-NFC02A1 boards.
Diff: Message.h
- Revision:
- 4:eaf6c49a86e4
- Parent:
- 1:a0eeb478a45a
- Child:
- 6:739e3211749d
--- a/Message.h Fri Nov 27 15:09:55 2015 +0000 +++ b/Message.h Tue Dec 01 08:30:27 2015 +0000 @@ -14,36 +14,80 @@ namespace NDefLib { +/** + * class containing a set of NDefRecord + */ class Message { public: - Message(){} + + Message() { } - void addRecord(Record *r){ + /** + * add a ndef record to this message + * @param r record to add + */ + void addRecord(Record *r) { mRecords.push_back(r); } - void addRecords(const std::vector<Record*> &addList){ - mRecords.insert(mRecords.end(),addList.begin(),addList.end()); + /** + * add all the record in the list to this message + * @param addList list of record to add + */ + void addRecords(const std::vector<Record*> &addList) { + mRecords.insert(mRecords.end(), addList.begin(), addList.end()); } - Record* getRecord(const uint32_t index){ - if(index>mRecords.size()){ + /** + * get the specific record contained by this message, or NULL if itn't a valid index + * @param index record index + * @return if present a record otherwise NULL + */ + Record* operator[](const uint32_t index){ + if (index > mRecords.size()) return NULL; - } return mRecords[index]; } - uint32_t getNRecords()const{ + /** + * get the number of records in this message + * @return number of record in this message + */ + uint32_t getNRecords() const { return mRecords.size(); } - uint16_t getByteLenght()const; - uint16_t write(uint8_t *buffer)const; + /** + * length in byte needed for write this message + * @return number of byte needed for with this message + */ + uint16_t getByteLength() const; + + /** + * write this message in the buffer + * @par the first 2 byte are the NDEF message length + * @param[out] buffer buffer where write this message + * @return number of bytes wrote + */ + uint16_t write(uint8_t *buffer) const; - static void parseMessage(const uint8_t *const buffer,const uint8_t bufferLength,Message *mesage); + /** + * try to rebuild all the record from a message buffer + * @par I assume that you already read the NDEF length, so the buffer doesn't contain it + * @param buffer buffer containing the message record + * @param bufferLength buffer length + * @param message message where the function will add the read record + */ + static void parseMessage(const uint8_t * const buffer, + const uint8_t bufferLength, Message *message); - virtual ~Message(){} + virtual ~Message() { + } + private: + /** + * list of record contained by this message + */ std::vector<Record*> mRecords; };