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 .

Files at this revision

API Documentation at this revision

Comitter:
giovannivisentini
Date:
Thu Jan 14 09:17:03 2016 +0000
Parent:
11:283df715f241
Child:
13:685d95525ec8
Commit message:
update dependency;

Changed in this revision

NDefLib.lib Show annotated file Show diff for this revision Revisions of this file
Samples/Sample_countClick.cpp Show annotated file Show diff for this revision Revisions of this file
Samples/Sample_writeAndChangeAll.cpp Show annotated file Show diff for this revision Revisions of this file
Samples/Sample_writeUrl.cpp Show annotated file Show diff for this revision Revisions of this file
Samples/sample_lockWriteTag.cpp Show annotated file Show diff for this revision Revisions of this file
X_NUCLEO_NFC01A1.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/NDefLib.lib	Mon Jan 11 16:10:12 2016 +0000
+++ b/NDefLib.lib	Thu Jan 14 09:17:03 2016 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/giovannivisentini/code/NDefLib/#eaf42739791e
+http://developer.mbed.org/users/giovannivisentini/code/NDefLib/#ed4d9b8d1410
--- a/Samples/Sample_countClick.cpp	Mon Jan 11 16:10:12 2016 +0000
+++ b/Samples/Sample_countClick.cpp	Thu Jan 14 09:17:03 2016 +0000
@@ -41,7 +41,7 @@
 #include "NDefLib/RecordType/RecordText.h"
 
 /**
- * castom record that map an integer in a text record
+ * Castom record that map an integer in a text record.
  */
 class MyRecord : public NDefLib::RecordText{
     
@@ -50,7 +50,7 @@
     uint32_t nClick; /// number to show
     
     /**
-     * convert the number in char and update the tag content
+     * Convert the number in char and update the tag content.
      */
     void syncTextValue(){
         sprintf(nClickStringBuffer,"%d",nClick);
@@ -64,7 +64,7 @@
     }
     
     /**
-     * increment the stored number and update the racord content
+     * Increment the stored number and update the racord content.
      */
     void incrementClick(){
         nClick++;
@@ -73,9 +73,9 @@
 
 };
 
-/* write a nfc message into a tag
- * @param nfcNucleo board where write the data
- * @param msg message to write
+/* Write a nfc message into a tag
+ * @param nfcNucleo Board where write the data.
+ * @param msg Message to write.
  */
 static void writeMessage(X_NUCLEO_NFC01A1 *nfcNucleo,NDefLib::Message &msg){
     NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
@@ -98,14 +98,14 @@
 static volatile bool buttonPress=false; /// true when the user press the message
 
 /**
- * call back called when the user press the button
+ * Call back called when the user press the button.
  */
 static void setButtonPress(){
     buttonPress=true;
 }//if buttonPress
 
 /**
- * Write a castum record that count how many times the user press the button
+ * Write a castum record that count how many times the user press the button.
  */
 void sample_countClick() {
     
@@ -113,7 +113,7 @@
     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
+    //retrieve the NdefLib interface
     NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
     
     //set the button interrupt
--- a/Samples/Sample_writeAndChangeAll.cpp	Mon Jan 11 16:10:12 2016 +0000
+++ b/Samples/Sample_writeAndChangeAll.cpp	Thu Jan 14 09:17:03 2016 +0000
@@ -53,7 +53,7 @@
 
 
 /**
- * shift the led status between the 3 leds
+ * Shift the led status between the 3 leds.
  */
 static void shiftLed(DigitalOut &led1,DigitalOut &led2,DigitalOut &led3){
     const uint8_t prevLed1=led1;
@@ -65,8 +65,8 @@
 }
 
 /**
- * Create a message that contains all the possible records, and write it in the tag
- * @param tag nfc tag where write the message
+ * Create a message that contains all the possible records, and write it in the tag.
+ * @param tag Nfc tag where write the message.
  */
 static void setNFCTag(NDefLib::NDefNfcTag &tag){
 
@@ -135,8 +135,8 @@
 }
 
 /**
- * Print the record content
- * @param r record to print
+ * Print the record content.
+ * @param r Record to print.
  */
 static void printRecord(NDefLib::Record *const r){
     using namespace NDefLib;
@@ -191,8 +191,8 @@
 }
 
 /**
- * change the record content
- * @param r record to change
+ * Change the record content.
+ * @param r Record to change.
  */
 static void changeRecord(NDefLib::Record const* r){
     using namespace NDefLib;
@@ -241,8 +241,8 @@
 }
 
 /**
- * read the nfc message and print the content on the serial console
- * @param tag nfc tag where read the content
+ * Read the nfc message and print the content on the serial console
+ * @param tag Nfc tag where read the content
  */
 static void readNfcTag(NDefLib::NDefNfcTag &tag){
     using namespace NDefLib;
@@ -269,8 +269,8 @@
 }
 
 /**
- * read a nfc message, change the content of each record and write the new message
- * @param tag tag where read and write the nfc message
+ * Read a nfc message, change the content of each record and write the new message.
+ * @param tag Tag where read and write the nfc message.
  */
 static void changeNfcTag(NDefLib::NDefNfcTag &tag){
     using NDefLib::Record;
@@ -300,14 +300,14 @@
 static volatile bool buttonPress=false; /// true when the user press the message
 
 /**
- * call back called when the user press the button
+ * Call back called when the user press the button
  */
 static void setButtonPress(){
     buttonPress=true;
 }//if buttonPress
 
 /**
- * write a message and when the user press the button it read the message, change it and update it
+ * Write a message and when the user press the button it read the message, change it and update it.
  */
 void sample_writeAndChangeAll() {
     DigitalOut nucleoLed(LED1);
@@ -316,7 +316,7 @@
     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
+    //retrieve the NdefLib interface
     NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
     
     //switch on the first led    
--- a/Samples/Sample_writeUrl.cpp	Mon Jan 11 16:10:12 2016 +0000
+++ b/Samples/Sample_writeUrl.cpp	Thu Jan 14 09:17:03 2016 +0000
@@ -40,7 +40,7 @@
 #include "NDefLib/RecordType/RecordURI.h"
 
 /**
- * write a Ndef linking the st.com site
+ * Write a Ndef linking the st.com site.
  */
 void sample_writeUrl() {
     Serial pc(SERIAL_TX, SERIAL_RX);
@@ -49,7 +49,7 @@
         
     X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel);
     
-    //create the wrapper for use the NdefLib
+    //retrieve the NdefLib interface
     NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
     pc.printf("System Init done: !\n\r");
     //open the i2c session with the nfc chip
--- a/Samples/sample_lockWriteTag.cpp	Mon Jan 11 16:10:12 2016 +0000
+++ b/Samples/sample_lockWriteTag.cpp	Thu Jan 14 09:17:03 2016 +0000
@@ -41,15 +41,15 @@
 static volatile bool buttonPress=false; /// true when the user press the message
 
 /**
- * call back called when the user press the button
+ * Call back called when the user press the button.
  */
 static void setButtonPress(){
     buttonPress=true;
 }//if buttonPress
 
 /**
- * return the led that tell if the tag is read only
- * @param nfcNucleo board where the lead lives
+ * Return the led that tell if the tag is read only.
+ * @param nfcNucleo Board where the lead lives.
  * @return let to switch on if the tag is read only
  */
 static inline DigitalOut& getReadOnlyLed(X_NUCLEO_NFC01A1 *nfcNucleo){
@@ -57,8 +57,8 @@
 }
 
 /**
- * return the led that tell if the tag is write only
- * @param nfcNucleo board where the lead lives
+ * Return the led that tell if the tag is write only.
+ * @param nfcNucleo Board where the lead lives.
  * @return let to switch on if the tag is write only
  */
 static inline DigitalOut& getWriteableLed(X_NUCLEO_NFC01A1 *nfcNucleo){
@@ -66,8 +66,8 @@
 }
 
 /**
- * set the tag as read only and switch the led on
- * @param nfcNucleo board where the lead lives
+ * Set the tag as read only and switch the led on.
+ * @param nfcNucleo Board where the lead lives.
  * @return true if the change has effect
  */
 bool enableReadOnly( X_NUCLEO_NFC01A1 *nfcNucleo){
@@ -81,8 +81,8 @@
 }
 
 /**
- * set the tag as read/write and switch the led on
- * @param nfcNucleo board where the lead lives
+ * Set the tag as read/write and switch the led on.
+ * @param nfcNucleo Board where the lead lives.
  * @return true if the change has effect
  */
 bool disableReadOnly( X_NUCLEO_NFC01A1 *nfcNucleo){
@@ -96,7 +96,7 @@
 }
 
 /**
- * When the user press the button enable/disable the tag write protetion
+ * When the user press the button enable/disable the tag write protetion.
  */
 void sample_lockTagContent() {
 	Serial console(SERIAL_TX, SERIAL_RX);
@@ -105,7 +105,7 @@
     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
+    //retrieve the NdefLib interface
 	NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
 
     //when the user press the button set buttonPress to true
@@ -136,10 +136,10 @@
 				if(changeStatusResult)
 					tagIsLock=!tagIsLock;
 				else
-					console.printf("Error change the tag status");
+					console.printf("Error change the tag status\r\n");
 				tag.closeSession();
         	}else{
-        		console.printf("Error opening the session, tag is in use");
+        		console.printf("Error opening the session, tag is in use\r\n");
         	}
         	buttonPress=false;
         }//if
--- a/X_NUCLEO_NFC01A1.lib	Mon Jan 11 16:10:12 2016 +0000
+++ b/X_NUCLEO_NFC01A1.lib	Thu Jan 14 09:17:03 2016 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/giovannivisentini/code/X_NUCLEO_NFC01A1/#5e637c71cbb3
+http://developer.mbed.org/users/giovannivisentini/code/X_NUCLEO_NFC01A1/#d1f5eaa85deb
--- a/main.cpp	Mon Jan 11 16:10:12 2016 +0000
+++ b/main.cpp	Thu Jan 14 09:17:03 2016 +0000
@@ -35,8 +35,8 @@
  
 //#define SAMPLE_WRITE_URL
 //#define SAMPLE_COUNT_CLICK
-//#define SAMPLE_WRITE_AND_CHANGE_ALL
-#define SAMPLE_LOCK_TAG_CONTENT
+#define SAMPLE_WRITE_AND_CHANGE_ALL
+//#define SAMPLE_LOCK_TAG_CONTENT
  
 int main(void)
 {