M2M im2ag M2PGI

Dependencies:   mbed X_NUCLEO_NFC01A1 NDefLib

Revision:
2:7183a6189b65
Parent:
1:20d7b4998087
Child:
4:47b9a09a74bf
--- a/main.cpp	Tue Mar 08 15:14:42 2016 +0000
+++ b/main.cpp	Tue Mar 08 15:32:58 2016 +0000
@@ -1,12 +1,52 @@
+
 #include "mbed.h"
 
-DigitalOut myled(LED1);
+#include "X_NUCLEO_NFC01A1.h"
+#include "NDefLib/NDefNfcTag.h"
+#include "NDefLib/RecordType/RecordURI.h"
 
-int main() {
-    while(1) {
-        myled = 1; // LED is ON
-        wait(0.1); // 200 ms
-        myled = 0; // LED is OFF
-        wait(0.1); // 1 sec
-    }
-}
+/**
+ * Write a Ndef URI message linking to st.com site.
+ */
+int main(void){
+    
+    //use default board pinout
+    I2C i2cChannel(X_NUCLEO_NFC01A1::DEFAULT_SDA_PIN,X_NUCLEO_NFC01A1::DEFAULT_SDL_PIN);
+    X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(i2cChannel,NULL,
+            X_NUCLEO_NFC01A1::DEFAULT_GPO_PIN,X_NUCLEO_NFC01A1::DEFAULT_RF_DISABLE_PIN,
+            X_NUCLEO_NFC01A1::DEFAULT_LED1_PIN,X_NUCLEO_NFC01A1::DEFAULT_LED2_PIN,
+            X_NUCLEO_NFC01A1::DEFAULT_LED3_PIN);
+    
+    //retrieve the NdefLib interface
+    NDefLib::NDefNfcTag& tag =nfcNucleo->getM24SR().getNDefTag();
+    printf("System Init done: !\n\r");
+    
+    //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)){
+            printf("Tag written\n\r");
+            nfcNucleo->getLed2()=1;
+        }else{
+            printf("Error writing \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");
+}
\ No newline at end of file