Complete mbed library/workspace for HelloWorld_NFC02A1

Dependencies:   NDefLib X_NUCLEO_NFC02A1 mbed

Fork of HelloWorld_NFC02A1 by ST Expansion SW Team

X-NUCLEO-NFC02A1 Dynamic NFC Tag Expansion Board Firmware Package

Introduction

This firmware package includes Components Device Drivers, Board Support Package and example applications for STMicroelectronics X-NUCLEO-NFC02A1 Dynamic NFC Tag Expansion Board based on M24LR.

Example Application

This is just a simple "hello world" style program for the X-NUCLEO-NFC02A1 Dynamic NFC Tag Expansion Board. The program writes a URI link to the M24LR dynamic tag using the synchronous programming model. It then reads back the URI from the tag to display it on terminal. The URI can also be retrieved from an NFC enabled smartphone/tablet.

Revision:
2:6f1b1f7f8d12
Parent:
1:11ae12d41082
--- a/X_NUCLEO_NFC02A1/m24lr/NDefNfcTagM24LR.cpp	Tue Aug 30 09:18:50 2016 +0000
+++ b/X_NUCLEO_NFC02A1/m24lr/NDefNfcTagM24LR.cpp	Wed Sep 28 11:26:49 2016 +0000
@@ -49,6 +49,37 @@
 #define CC_FILE_LENGTH_BYTE 15
 
 
+#define NFCT5_MAGICNUMBER_E1_CCFILE       0xE1
+#define NFCT5_MAGICNUMBER_E2_CCFILE       0xE2
+#define NFCT5_EXTENDED_CCFILE             0xFF
+#define NFCT5_VERSION_V1_0                0x40
+#define NFCT5_READ_ACCESS                 0x0C
+#define NFCT5_WRITE_ACCESS                0x03
+
+#define NFCT5_NDEF_MSG_TLV                0x03
+#define NFCT5_PROPRIETARY_TLV             0xFD
+#define NFCT5_TERMINATOR_TLV              0xFE
+#define NFCT5_3_BYTES_L_TLV               0xFF
+    
+
+#define NDEF_MAX_SIZE               NFC_DEVICE_MAX_NDEFMEMORY
+
+#define NDEF_SIZE_OFFSET            0
+#define FIRST_RECORD_OFFSET         2
+
+#ifndef MIN
+#define MIN(x, y) (((x) < (y)) ? (x) : (y))
+#endif
+
+#define NFCTAG_4M_SIZE            0x200
+#define NFCTAG_16M_SIZE           0x800
+#define NFCTAG_64M_SIZE           0x2000
+
+    
+#define MAX_NDEF_MEM                 0x200
+#define M24LR_MAX_SIZE               NFCTAG_4M_SIZE
+#define M24LR_NDEF_MAX_SIZE          MIN(M24LR_MAX_SIZE,MAX_NDEF_MEM)
+#define NFC_DEVICE_MAX_NDEFMEMORY    M24LR_NDEF_MAX_SIZE
 /**
   * @brief  This function read the data stored in NDEF file at defined offset.
   * @param  Offset : Offset in the NDEF file.
@@ -419,19 +450,10 @@
 
 bool NDefNfcTagM24LR::openSession(bool force) {
 bool status;
-//  if (isSessionOpen()){
-//      mCallBack->onSessionOpen(this,true);
-//      return true;
-//  }
-//
-//  mDevice.SetCallback(&mOpenSessionCallback);
-//  if(force)
-//      return mDevice.ForceGetSession() == NFC_SUCCESS;
-//  else
-//      return mDevice.GetSession() == NFC_SUCCESS;
 
       status = NfcType5_NDEFDetection();
-      if ( status != NFC_SUCCESS )
+
+      if ( status == NFC_SUCCESS ) 
       {
         CCFileStruct.MagicNumber = NFCT5_MAGICNUMBER_E1_CCFILE;
       CCFileStruct.Version = NFCT5_VERSION_V1_0;
@@ -441,7 +463,7 @@
       while( NfcType5_TT5Init( ) != NFC_OK );
       }
       mIsSessionOpen = 1;
-      return NFC_SUCCESS;
+      return NFC_SUCCESS; 
 
 }
 
@@ -466,3 +488,5 @@
 bool NDefNfcTagM24LR::NDefReadByte(const uint16_t byteOffset, const uint16_t length, uint8_t *buffer){
   return mDevice.ReadBinary(byteOffset, length, (uint8_t*)buffer);
 }
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/