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
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 9:9742acd0c015, committed 2015-12-22
- Comitter:
- giovannivisentini
- Date:
- Tue Dec 22 16:22:03 2015 +0000
- Parent:
- 8:a9ecd7687de7
- Child:
- 10:ca6f3293ecfb
- Commit message:
- use the new library api
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NDefLib.lib Tue Dec 22 16:22:03 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/giovannivisentini/code/NDefLib/#473f6e0b03df
--- a/NDefLib_M24SR.lib Mon Dec 21 13:01:41 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://developer.mbed.org/users/giovannivisentini/code/NDefLib_M24SR/#4418dfd45460
--- a/Samples/Sample_countClick.cpp Mon Dec 21 13:01:41 2015 +0000
+++ b/Samples/Sample_countClick.cpp Tue Dec 22 16:22:03 2015 +0000
@@ -1,7 +1,8 @@
/**
******************************************************************************
* @file Sample_countClick.cpp
- * @date 03/12/2015
+ * @author ST / Central Labs
+ * @date 03 Dic 2015
* @brief This demo define a custom record that contains the number of time the user
* press the user button
******************************************************************************
@@ -36,7 +37,7 @@
#include "mbed.h"
#include "X_NUCLEO_NFC01A1.h"
-#include "Type4NfcTagM24SR.h"
+#include "NDefLib/NDefNfcTag.h"
#include "NDefLib/RecordType/RecordText.h"
@@ -65,7 +66,7 @@
};
static void writeMessage(X_NUCLEO_NFC01A1 *nfcNucleo,NDefLib::Message &msg){
- Type4NfcTagM24SR tag(nfcNucleo->getM24SR());
+ NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
//open the i2c session with the nfc chip
if(tag.openSession()){
nfcNucleo->getLed1()=! nfcNucleo->getLed1();
@@ -92,8 +93,8 @@
I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN);
X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel);
- //create the wrapper for use the NdefLib
- Type4NfcTagM24SR tag(nfcNucleo->getM24SR());
+ //get the wrapper for use the NdefLib
+ NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
InterruptIn userButton(USER_BUTTON);
userButton.fall(setButtonPress);
--- a/Samples/Sample_writeAndChangeAll.cpp Mon Dec 21 13:01:41 2015 +0000
+++ b/Samples/Sample_writeAndChangeAll.cpp Tue Dec 22 16:22:03 2015 +0000
@@ -1,7 +1,8 @@
/**
******************************************************************************
* @file Sample_writeAndChangeAll.cpp
- * @date 03/12/2015
+ * @author ST / Central Labs
+ * @date 03 Dic 2015
* @brief This demo write an ndef message different records, when the user press the buttun
* read the tag, change some data and write it again
******************************************************************************
@@ -35,7 +36,7 @@
#include "mbed.h"
-#include "Type4NfcTagM24SR.h"
+#include "NDefLib/NDefNfcTag.h"
#include "NDefLib/RecordType/RecordAAR.h"
#include "NDefLib/RecordType/RecordSMS.h"
@@ -59,7 +60,7 @@
led3=prevLed2;
}
-static void setNFCTag(NDefLib::Type4NfcTag &tag){
+static void setNFCTag(NDefLib::NDefNfcTag &tag){
bool writeStatus,closeStatus;
if(tag.openSession()){
@@ -223,7 +224,7 @@
}//switch
}
-static void readNfcTag(NDefLib::Type4NfcTag &tag){
+static void readNfcTag(NDefLib::NDefNfcTag &tag){
using namespace NDefLib;
if(tag.openSession()){
@@ -248,11 +249,12 @@
}
-static void changeNfcTag(NDefLib::Type4NfcTag &tag){
- using namespace NDefLib;
+static void changeNfcTag(NDefLib::NDefNfcTag &tag){
+ using NDefLib::Record;
+ using NDefLib::Message;
if(tag.openSession()){
- NDefLib::Message readMsg;
+ Message readMsg;
tag.read(&readMsg);
@@ -284,7 +286,7 @@
DigitalOut nucleoLed(LED1);
X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel);
- Type4NfcTagM24SR tag(nfcNucleo->getM24SR());
+ NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
InterruptIn mybutton(USER_BUTTON);
nfcNucleo->getLed1()=1;
--- a/Samples/Sample_writeUrl.cpp Mon Dec 21 13:01:41 2015 +0000
+++ b/Samples/Sample_writeUrl.cpp Tue Dec 22 16:22:03 2015 +0000
@@ -1,7 +1,8 @@
/**
******************************************************************************
* @file Sample_writeUrl.cpp
- * @date 03/12/2015
+ * @author ST / Central Labs
+ * @date 03 Dic 2015
* @brief This demo write an ndef message with an url inside
******************************************************************************
*
@@ -35,7 +36,7 @@
#include "mbed.h"
#include "X_NUCLEO_NFC01A1.h"
-#include "Type4NfcTagM24SR.h"
+#include "NDefLib/NDefNfcTag.h"
#include "NDefLib/RecordType/RecordURI.h"
/**
@@ -49,7 +50,7 @@
X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel);
//create the wrapper for use the NdefLib
- Type4NfcTagM24SR tag(nfcNucleo->getM24SR());
+ NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
pc.printf("System Init done: !\n\r");
//open the i2c session with the nfc chip
if(tag.openSession()){
--- a/Samples/sample_lockWriteTag.cpp Mon Dec 21 13:01:41 2015 +0000
+++ b/Samples/sample_lockWriteTag.cpp Tue Dec 22 16:22:03 2015 +0000
@@ -1,7 +1,8 @@
/**
******************************************************************************
* @file Sample_lockWriteTag.cpp
- * @date 03/12/2015
+ * @author ST / Central Labs
+ * @date 03 Dic 2015
* @brief This demo define a lock/unlock the tag content when the user press
* the user button
******************************************************************************
@@ -36,8 +37,6 @@
#include "mbed.h"
#include "X_NUCLEO_NFC01A1.h"
-#include "Type4NfcTagM24SR.h"
-#include "NDefLib/RecordType/RecordText.h"
static volatile bool buttonPress=false;
@@ -66,12 +65,11 @@
/**
* set the tag as read only and switch the led on
* @param nfcNucleo board where the lead lives
- * @param tag helper class for manage the nfc tag
* @return true if the change has effect
*/
-bool enableReadOnly( X_NUCLEO_NFC01A1 *nfcNucleo,Type4NfcTagM24SR &tag){
+bool enableReadOnly( X_NUCLEO_NFC01A1 *nfcNucleo){
- if(tag.enableReadOnly()){
+ if(nfcNucleo->getM24SR().enableReadOnly()==NFC_SUCCESS){
getReadOnlyLed(nfcNucleo)=true;
getWriteableLed(nfcNucleo)=false;
return true;
@@ -82,12 +80,11 @@
/**
* set the tag as read/write and switch the led on
* @param nfcNucleo board where the lead lives
- * @param tag helper class for manage the nfc tag
* @return true if the change has effect
*/
-bool disableReadOnly( X_NUCLEO_NFC01A1 *nfcNucleo,Type4NfcTagM24SR &tag){
+bool disableReadOnly( X_NUCLEO_NFC01A1 *nfcNucleo){
- if(tag.disableReadOnly()){
+ if(nfcNucleo->getM24SR().disableReadOnly()==NFC_SUCCESS){
getReadOnlyLed(nfcNucleo)=false;
getWriteableLed(nfcNucleo)=true;
return true;
@@ -101,16 +98,16 @@
I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN);
X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel);
- //create the wrapper for use the NdefLib
- Type4NfcTagM24SR tag(nfcNucleo->getM24SR());
+
+ 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
tag.openSession(true);
- nfcNucleo->getLed1()=tag.disableAllPassword();
+ nfcNucleo->getLed1()=nfcNucleo->getM24SR().disableAllPassword()==NFC_SUCCESS;
tag.closeSession();
getReadOnlyLed(nfcNucleo)=false;
getWriteableLed(nfcNucleo)=true;
@@ -124,9 +121,9 @@
bool changeStatusResult;
if(tagIsLock)
- changeStatusResult=enableReadOnly(nfcNucleo,tag);
+ changeStatusResult=enableReadOnly(nfcNucleo);
else
- changeStatusResult=disableReadOnly(nfcNucleo,tag);
+ changeStatusResult=disableReadOnly(nfcNucleo);
if(changeStatusResult)
tagIsLock=!tagIsLock;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/X_NUCLEO_NFC01A1.lib Tue Dec 22 16:22:03 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/giovannivisentini/code/X_NUCLEO_NFC01A1/#96389fb79676
--- a/main.cpp Mon Dec 21 13:01:41 2015 +0000 +++ b/main.cpp Tue Dec 22 16:22:03 2015 +0000 @@ -33,7 +33,7 @@ #include "Samples/Samples.h" - //#define SAMPLE_WRITE_URL +//#define SAMPLE_WRITE_URL //#define SAMPLE_COUNT_CLICK //#define SAMPLE_WRITE_AND_CHANGE_ALL #define SAMPLE_LOCK_TAG_CONTENT
