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 |
diff -r 2e9835fbd14f -r 0f35e8fe0465 main.cpp --- 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 }