Gestione VCARD

Dependencies:   NDefLib X_NUCLEO_NFC01A1 mbed

Fork of HelloWorld_NFC01A1 by ST

Revision:
20:0f35e8fe0465
Parent:
17:22e6c00f3a4c
--- 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
 }