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 .
Diff: Samples/sampleAsync_lockWriteTag.cpp
- Revision:
- 17:d8d3d2088cac
- Parent:
- 15:94c98d2aa235
--- a/Samples/sampleAsync_lockWriteTag.cpp Wed Aug 31 15:14:08 2016 +0000
+++ b/Samples/sampleAsync_lockWriteTag.cpp Thu Jul 13 09:41:01 2017 +0000
@@ -36,26 +36,26 @@
#include "mbed.h"
-#include "X_NUCLEO_NFC01A1.h"
+#include "XNucleoNFC01A1.h"
static volatile bool buttonPress=false; /// true when the user press the message
static volatile bool nfcEvent=false; /// true when the user press the message
-static void setNfcEventCallback(){
+static void set_nfc_event_callback(){
nfcEvent=true;
}//if buttonPress
/**
* Call back called when the user press the button.
*/
-static void setButtonPress(){
+static void set_button_press(){
buttonPress=true;
}//if buttonPress
/**
* Class with the command chain needed to remove all the read/write password
*/
-class RemoveAllPasswordStatusCallback : public Nfc::Callbacks {
+class RemoveAllPasswordStatusCallback : public M24SR::Callbacks {
public:
@@ -65,7 +65,7 @@
* True when the command chain finish, and the tag can now be read and write
* @return true if the command chain finish
*/
- bool isFinish(){
+ bool is_finish(){
return !mIsComamndRunning;
}
@@ -77,46 +77,46 @@
* end the command chain and print an error message
* @param status error code of the last command
*/
- void onError(const NFC_StatusTypeDef status){
+ void on_error(const M24SR::StatusTypeDef status){
mIsComamndRunning=false;
printf("Error Code: %X \r\n",status);
}
- virtual void onSessionOpen(Nfc *tag,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_session_open(M24SR *tag,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
mIsComamndRunning=true;
printf("Session Opened\r\n");
- tag->SelectApplication();
+ tag->select_application();
}
- virtual void onSelectedApplication(Nfc *tag,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_selected_application(M24SR *tag,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Select application\r\n");
- tag->SelectNDEFfile(0x0001);
+ tag->select_NDEF_file(0x0001);
}
- virtual void onSelectedNDEFFile(Nfc *tag,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_selected_NDEF_file(M24SR *tag,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Select NDef\r\n");
- tag->DisableAllPassword(M24SR::DEFAULT_PASSWORD);
+ tag->disable_all_password(M24SR::DEFAULT_PASSWORD);
}
- virtual void onDisableAllPassword(Nfc *tag, NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_disable_all_password(M24SR *tag, M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Disable all Password\r\n");
- tag->Deselect();
+ tag->deselect();
}
- virtual void onDeselect(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_deselect(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Close Application\r\n");
mIsComamndRunning=false;
@@ -127,7 +127,7 @@
/**
* Chain of call needed to change the tag status between read only and write/read
*/
-class ChangeTagStatusCallback : public Nfc::Callbacks {
+class ChangeTagStatusCallback : public M24SR::Callbacks {
M24SR &mNfcTag; /// object to change
DigitalOut& mReadOnlyLed; /// led to switch on when it is in read only mode
@@ -154,11 +154,11 @@
/**
* Change the tag status
*/
- void changeStatus(){
+ void change_status(){
mIsReadOnly=!mIsReadOnly;
//if it is not running a previous command
if(!mIsComamndRunning){
- mNfcTag.GetSession();
+ mNfcTag.get_session();
}//if
}//changeStatus;
@@ -168,68 +168,68 @@
* When an error happen switch on both the led and print the error code.
* @param status Error code.
*/
- void onError(const NFC_StatusTypeDef status){
+ void on_error(const M24SR::StatusTypeDef status){
mIsComamndRunning=false;
mReadOnlyLed=true;
mReadWriteWriteLed=true;
printf("Error %X changing the status\r\n",status);
}
- virtual void onSessionOpen(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_session_open(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Session Open\r\n");
- mNfcTag.SelectApplication();
+ mNfcTag.select_application();
}
- virtual void onSelectedApplication(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_selected_application(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Select Application\r\n");
- mNfcTag.SelectNDEFfile(0x0001);
+ mNfcTag.select_NDEF_file(0x0001);
}
- virtual void onSelectedNDEFFile(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_selected_NDEF_file(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Select NDef file\r\n");
if(mIsReadOnly){
- mNfcTag.EnableReadOnly(M24SR::DEFAULT_PASSWORD);
+ mNfcTag.enable_read_only(M24SR::DEFAULT_PASSWORD);
}else
- mNfcTag.DisableReadOnly(M24SR::DEFAULT_PASSWORD);
+ mNfcTag.disable_read_only(M24SR::DEFAULT_PASSWORD);
}
- virtual void onEnableReadOnly(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_enable_read_only(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Ready only Enabled\r\n");
if(!mIsReadOnly) //if in the meantime the status change
- mNfcTag.DisableReadOnly(M24SR::DEFAULT_PASSWORD);
+ mNfcTag.disable_read_only(M24SR::DEFAULT_PASSWORD);
else{
mReadOnlyLed=true;
mReadWriteWriteLed=false;
- mNfcTag.Deselect();
+ mNfcTag.deselect();
}
}
- virtual void onDisableReadOnly(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_disable_read_only(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Ready only Disabled\r\n");
if(mIsReadOnly) //if in the meantime the status change
- mNfcTag.EnableReadOnly(M24SR::DEFAULT_PASSWORD);
+ mNfcTag.enable_read_only(M24SR::DEFAULT_PASSWORD);
else{
mReadOnlyLed=false;
mReadWriteWriteLed=true;
- mNfcTag.Deselect();
+ mNfcTag.deselect();
}
}
- virtual void onDeselect(Nfc *,NFC_StatusTypeDef status){
- if(status!=NFC_SUCCESS)
- return onError(status);
+ virtual void on_deselect(M24SR *,M24SR::StatusTypeDef status){
+ if(status!=M24SR::M24SR_SUCCESS)
+ return on_error(status);
printf("Close Application\r\n");
mIsComamndRunning=false;
}
@@ -241,40 +241,44 @@
void sampleAsync_lockTagContent() {
//instance the board with the default parameters
- I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN);
- X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel,&setNfcEventCallback);
+ I2C i2cChannel(XNucleoNFC01A1::DEFAULT_SDA_PIN,XNucleoNFC01A1::DEFAULT_SDL_PIN);
+ XNucleoNFC01A1 *nfcNucleo = XNucleoNFC01A1::instance(i2cChannel,&set_nfc_event_callback);
//when the user press the button set buttonPress to true
- InterruptIn userButton(USER_BUTTON);
- userButton.fall(setButtonPress);
+ #if defined(TARGET_STM)
+ InterruptIn userButton(USER_BUTTON);
+ #else
+ InterruptIn userButton(SW2);
+ #endif
+ userButton.fall(set_button_press);
- M24SR &nfcTag =nfcNucleo->getM24SR();
+ M24SR &nfcTag =nfcNucleo->get_M24SR();
//set async mode
- if(nfcTag.GetSession()!=NFC_SUCCESS)
- nfcTag.ManageI2CGPO(I2C_ANSWER_READY);
+ if(nfcTag.get_session()==M24SR::M24SR_SUCCESS)
+ nfcTag.manage_I2C_GPO(M24SR::I2C_ANSWER_READY);
- ChangeTagStatusCallback changeTagStatus(nfcTag,nfcNucleo->getLed2(),nfcNucleo->getLed3());
+ ChangeTagStatusCallback changeTagStatus(nfcTag,nfcNucleo->get_led2(),nfcNucleo->get_led3());
RemoveAllPasswordStatusCallback removeAllPasswordStatusCallback;
- nfcTag.SetCallback(&removeAllPasswordStatusCallback);
- nfcTag.GetSession();
- nfcNucleo->getLed1()=true;
+ nfcTag.set_callback(&removeAllPasswordStatusCallback);
+ nfcTag.get_session();
+ nfcNucleo->get_led1()=true;
while(true){
- if(buttonPress && removeAllPasswordStatusCallback.isFinish()){
+ if(buttonPress && removeAllPasswordStatusCallback.is_finish()){
buttonPress=false;
- nfcTag.SetCallback(&changeTagStatus);
- changeTagStatus.changeStatus();
+ nfcTag.set_callback(&changeTagStatus);
+ changeTagStatus.change_status();
}//if
if(nfcEvent){
nfcEvent=false;
- nfcTag.ManageEvent();
+ nfcTag.manage_event();
}
//wait next event
__WFE();
}//while
-}//sampleAsync_lockTagContent
\ No newline at end of file
+}//sampleAsync_lockTagContent
