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 ST Expansion SW Team

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.

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;
 };