NB-IoT
Dependencies: NDefLib X_NUCLEO_NFC02A1 hdc1080 mbed
Fork of HelloWorld_NFC02A1 by
Diff: main.cpp
- Revision:
- 1:11ae12d41082
- Parent:
- 0:892175366555
- Child:
- 2:6f1b1f7f8d12
--- a/main.cpp Wed Jul 27 09:25:33 2016 +0000 +++ b/main.cpp Tue Aug 30 09:18:50 2016 +0000 @@ -1,14 +1,14 @@ /** ****************************************************************************** * @file main.cpp - * @author ST Central Labs + * @author AMG Central Lab * @version V1.0.0 - * @date 21 Dic 2015 + * @date 30 Aug 2016 * @brief This demo writes an ndef message with an url inside. ****************************************************************************** * @attention * - * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> + * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: @@ -40,17 +40,15 @@ #include "X_NUCLEO_NFC02A1.h" #include "DevI2C.h" #include "m24lr.h" -#include "lib_NDEF_URI.h" + +#include "NDefLib/NDefNfcTag.h" +#include "NDefLib/RecordType/RecordURI.h" /** * Write a Ndef URI message linking to st.com site. */ int main(void) { - sURI_Info URI; - NDEF_URI mNDEF_URI; - M24LR *mM24LRp; - /*use default board pinout*/ DevI2C i2cChannel(X_NUCLEO_NFC02A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC02A1::DEFAULT_SDL_PIN); X_NUCLEO_NFC02A1 *nfcNucleo = X_NUCLEO_NFC02A1::Instance(i2cChannel, @@ -58,38 +56,51 @@ X_NUCLEO_NFC02A1::DEFAULT_LED1_PIN,X_NUCLEO_NFC02A1::DEFAULT_LED2_PIN, X_NUCLEO_NFC02A1::DEFAULT_LED3_PIN); - mM24LRp = nfcNucleo->getM24LR(); - mNDEF_URI.setM24LR(mM24LRp); + NDefLib::NDefNfcTag& tag =nfcNucleo->getM24LR().getNDefTag(); + M24LR & mM24LRp = nfcNucleo->getM24LR(); + // mNDEF_URI.setM24LR(mM24LRp); /* Enable Energy Harvesting */ - mM24LRp->Enable_EnergyHarvesting(); + mM24LRp.Enable_EnergyHarvesting(); printf("System Initialization done: !\n\r"); - /* Check if no NDEF detected, init mem in Tag Type 5 */ - if( mNDEF_URI.NfcType5_NDEFDetection() != NDEF_OK) - { - mNDEF_URI.CCFileStruct.MagicNumber = NFCT5_MAGICNUMBER_E1_CCFILE; - mNDEF_URI.CCFileStruct.Version = NFCT5_VERSION_V1_0; - mNDEF_URI.CCFileStruct.MemorySize = ( M24LR_MAX_SIZE / 8 ) & 0xFF; - mNDEF_URI.CCFileStruct.TT5Tag = 0x05; - - /* Init of the Type Tag 5 component (M24LR) */ - while( mNDEF_URI.NfcType5_TT5Init( ) != NFCTAG_OK); - } + //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; + NDefLib::RecordURI rUri(NDefLib::RecordURI::HTTP_WWW,"st.com"); + msg.addRecord(&rUri); + + //write the tag + if(tag.write(msg) == NDEF_OK) + { + printf("Tag written\n\r"); + nfcNucleo->getLed2()=1; + } + else + { + printf("Error writing \n\r"); + nfcNucleo->getLed1()=0; + }//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"); - /* Set the LED2 on to indicate Init done */ - nfcNucleo->getLed2()=1; - - /* Prepare URI NDEF message content */ - strcpy( URI.protocol,URI_ID_0x01_STRING ); - strcpy( URI.URI_Message,"st.com/st25" ); - strcpy( URI.Information,"\0" ); - - /* Write NDEF to EEPROM */ - while( mNDEF_URI.NDEF_WriteURI( &URI ) != NDEF_OK); - - /* Set the LED3 on to indicate Programing done */ - nfcNucleo->getLed3()=1; } -