Gestione VCARD
Dependencies: NDefLib X_NUCLEO_NFC01A1 mbed
Fork of HelloWorld_NFC01A1 by
Revision 20:0f35e8fe0465, committed 2016-11-26
- Comitter:
- fdalforno
- Date:
- Sat Nov 26 20:30:57 2016 +0000
- Parent:
- 19:2e9835fbd14f
- Commit message:
- Demo Vcard
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Sep 30 12:38:35 2016 +0000
+++ b/main.cpp Sat Nov 26 20:30:57 2016 +0000
@@ -39,7 +39,7 @@
#include "X_NUCLEO_NFC01A1.h"
#include "NDefLib/NDefNfcTag.h"
-#include "NDefLib/RecordType/RecordURI.h"
+#include "NDefLib/RecordType/RecordVCard.h"
/**
* Write a Ndef URI message linking to st.com site.
@@ -55,10 +55,18 @@
printf("Session opened\n\r");
nfcNucleo->getLed1()=1;
- //create the NDef message and record
NDefLib::Message msg;
- NDefLib::RecordURI rUri(NDefLib::RecordURI::HTTP_WWW,"st.com");
- msg.addRecord(&rUri);
+
+ NDefLib::RecordVCard::VCardInfo_t cardInfo;
+ cardInfo[NDefLib::RecordVCard::FORMATTED_NAME]="Associazione Verona Fablab";
+ cardInfo[NDefLib::RecordVCard::ADDRESS_HOME]="Via del lavoro 2 37023 Grezzana Verona";
+ cardInfo[NDefLib::RecordVCard::EMAIL_HOME]="info@veronafablab.it";
+ cardInfo[NDefLib::RecordVCard::NAME]="Verona Fablab";
+ cardInfo[NDefLib::RecordVCard::TEL_MOBILE]="3440458663";
+ cardInfo[NDefLib::RecordVCard::URL]="www.veronafablab.it";
+ NDefLib::RecordVCard rVCard(cardInfo);
+ msg.addRecord(&rVCard);
+
//write the tag
if(tag.write(msg)){
@@ -80,58 +88,6 @@
printf("Error opening the session\n\r");
}
-/**
- * Read a NDef message and print content and type of all the uri record inside
- * the message
- * @param nfcNucleo expansion board from where read the message
- */
-static void readUrl(X_NUCLEO_NFC01A1 *nfcNucleo){
- //retrieve the NdefLib interface
- NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
-
- //open the i2c session with the nfc chip
- if(tag.openSession()){
- printf("Session opened\n\r");
- nfcNucleo->getLed1()=1;
-
- //create the NDef message and record
- NDefLib::Message msg;
-
- //read the tag
- if(tag.read(&msg)){
- const uint32_t nRecords = msg.getNRecords();
- printf("Tag read: %d record\n\r",msg.getNRecords());
- for(int i =0 ;i<nRecords ;i++){
- if(msg[i]->getType()== NDefLib::Record::TYPE_URI){
- NDefLib::RecordURI *rUri = (NDefLib::RecordURI *)msg[i];
- printf("UriType: %x\n\rUriContent: %s\n\r",
- rUri->getUriId(),
- rUri->getContent().c_str());
- }//if
- }//for
- //free the read records
- NDefLib::Message::removeAndDeleteAllRecord(msg);
- }else{
- printf("Error Reading \n\r");
- }//if-else
-
- //close the i2c session
- if(tag.closeSession()){
- printf("Session closed\n\r");
- nfcNucleo->getLed3()=1;
- }else{
- printf("Error closing the session\n\r");
- }//if-else
-
- }else
- printf("Error opening the session\n\r");
-}
-
-static volatile bool buttonPress=false;
-
-static void setButtonPress(){
- buttonPress=true;
-}//if buttonPress
/**
* Write a Ndef URI message linking to st.com site and than read the message from
@@ -152,19 +108,4 @@
// write an URI message
writeUrl(nfcNucleo);
-//if run on a nucleo board enable the user button for read the ndef record
-#if defined(TARGET_STM)
- InterruptIn userButton(USER_BUTTON);
- userButton.fall(setButtonPress);
- while(true){
- if(buttonPress){
- readUrl(nfcNucleo);
- buttonPress=false;
- }//if
- //wait next event
- __WFE();
- }//while
-#else
- readUrl(nfcNucleo);
-#endif
}
