This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

Dependencies:   NDefLib X_NUCLEO_NFC01A1 mbed

Fork of X-MBED-NFC1 by Giovanni Visentini

This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

The available demos are:

  • SAMPLE_WRITE_URL: write a tag with the ST home page URL
  • SAMPLE_COUNT_CLICK: create a custom tag to count and report the user button clicks.
  • SAMPLE_WRITE_AND_CHANGE_ALL: write a tag with all the supported records and update the tag contents when the user button is pressed.
  • SAMPLE_LOCK_TAG_CONTENT: use the M24SR component API to set the NFC tag as read-only.

To enable the different demos comment/uncomment the SAMPLE_* macros provided in main.cpp .

Revision:
11:283df715f241
Parent:
9:9742acd0c015
Child:
12:c4a778f52d8a
--- a/Samples/sample_lockWriteTag.cpp	Mon Jan 11 13:53:53 2016 +0000
+++ b/Samples/sample_lockWriteTag.cpp	Mon Jan 11 16:10:12 2016 +0000
@@ -38,8 +38,11 @@
 
 #include "X_NUCLEO_NFC01A1.h"
 
-static volatile bool buttonPress=false;
+static volatile bool buttonPress=false; /// true when the user press the message
 
+/**
+ * call back called when the user press the button
+ */
 static void setButtonPress(){
     buttonPress=true;
 }//if buttonPress
@@ -92,34 +95,39 @@
 		return false;
 }
 
+/**
+ * When the user press the button enable/disable the tag write protetion
+ */
 void sample_lockTagContent() {
 	Serial console(SERIAL_TX, SERIAL_RX);
-
+	
+    //instance the board with the default paramiters
     I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN);
-
     X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel);
 	
+	//get the wrapper for use the NdefLib
 	NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
 
     //when the user press the button set buttonPress to true
     InterruptIn userButton(USER_BUTTON);
     userButton.fall(setButtonPress);
     
-    //restore the board as read/write
+    //restore the board as read/write, set the led1 if it is ok
     tag.openSession(true);
-    nfcNucleo->getLed1()=nfcNucleo->getM24SR().disableAllPassword()==NFC_SUCCESS;
+    nfcNucleo->getLed1()= (nfcNucleo->getM24SR().disableAllPassword()==NFC_SUCCESS);
     tag.closeSession();
+    
+	// now we are in read/write -> switch on the writable led    
     getReadOnlyLed(nfcNucleo)=false;
     getWriteableLed(nfcNucleo)=true;
     bool tagIsLock=false;
 
-
     while(true){
 
         if(buttonPress){
         	if(tag.openSession()){
         		bool changeStatusResult;
-
+				//switch the status
 				if(tagIsLock)
 					changeStatusResult=enableReadOnly(nfcNucleo);
 				else