X_NUCLEO_NFC02A1 library for M24LR

Dependencies:   ST_INTERFACES

Dependents:   HelloWorld_NFC02A1_mbedOS HelloWorld_NFC02A1laatste HelloWorld_NFC02A1

Fork of X_NUCLEO_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.

Firmware Library

Class X_NUCLEO_NFC02A1 is intended to represent the Dynamic NFC Tag Expansion Board with the same name.
It provides an API to access to the M24LR component and to the three onboard LEDs.
It is intentionally implemented as a singleton because only one X_NUCLEO_NFC02A1 at a time might be deployed in a HW component stack.
The library also provides an implementation of the NDEF library API for M24LR, providing an simple way to read/write NDEF formatted messages from/to the M24LR dynamic NFC tag.

Example application

Hello World is a simple application to program and read an URI from the NFC tag.

Committer:
rosarium
Date:
Wed Sep 28 11:30:09 2016 +0000
Revision:
0:71bff5ad0a49
X_NUCLEO_NFC02A1 converted as an library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rosarium 0:71bff5ad0a49 1 /**
rosarium 0:71bff5ad0a49 2 ******************************************************************************
rosarium 0:71bff5ad0a49 3 * @file Component_class.h
rosarium 0:71bff5ad0a49 4 * @author AST / EST
rosarium 0:71bff5ad0a49 5 * @version V0.0.1
rosarium 0:71bff5ad0a49 6 * @date 13-April-2015
rosarium 0:71bff5ad0a49 7 * @brief This file contains the abstract class describing the interface of a
rosarium 0:71bff5ad0a49 8 * generic component.
rosarium 0:71bff5ad0a49 9 ******************************************************************************
rosarium 0:71bff5ad0a49 10 * @attention
rosarium 0:71bff5ad0a49 11 *
rosarium 0:71bff5ad0a49 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
rosarium 0:71bff5ad0a49 13 *
rosarium 0:71bff5ad0a49 14 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:71bff5ad0a49 15 * are permitted provided that the following conditions are met:
rosarium 0:71bff5ad0a49 16 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:71bff5ad0a49 17 * this list of conditions and the following disclaimer.
rosarium 0:71bff5ad0a49 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:71bff5ad0a49 19 * this list of conditions and the following disclaimer in the documentation
rosarium 0:71bff5ad0a49 20 * and/or other materials provided with the distribution.
rosarium 0:71bff5ad0a49 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:71bff5ad0a49 22 * may be used to endorse or promote products derived from this software
rosarium 0:71bff5ad0a49 23 * without specific prior written permission.
rosarium 0:71bff5ad0a49 24 *
rosarium 0:71bff5ad0a49 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:71bff5ad0a49 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:71bff5ad0a49 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:71bff5ad0a49 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:71bff5ad0a49 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:71bff5ad0a49 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:71bff5ad0a49 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:71bff5ad0a49 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:71bff5ad0a49 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:71bff5ad0a49 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:71bff5ad0a49 35 *
rosarium 0:71bff5ad0a49 36 ******************************************************************************
rosarium 0:71bff5ad0a49 37 */
rosarium 0:71bff5ad0a49 38
rosarium 0:71bff5ad0a49 39
rosarium 0:71bff5ad0a49 40 /* Define to prevent from recursive inclusion --------------------------------*/
rosarium 0:71bff5ad0a49 41
rosarium 0:71bff5ad0a49 42 #ifndef __COMPONENT_CLASS_H
rosarium 0:71bff5ad0a49 43 #define __COMPONENT_CLASS_H
rosarium 0:71bff5ad0a49 44
rosarium 0:71bff5ad0a49 45
rosarium 0:71bff5ad0a49 46 /* Includes ------------------------------------------------------------------*/
rosarium 0:71bff5ad0a49 47
rosarium 0:71bff5ad0a49 48 #include <stdint.h>
rosarium 0:71bff5ad0a49 49
rosarium 0:71bff5ad0a49 50
rosarium 0:71bff5ad0a49 51 /* Classes ------------------------------------------------------------------*/
rosarium 0:71bff5ad0a49 52
rosarium 0:71bff5ad0a49 53 /** An abstract class for Generic components.
rosarium 0:71bff5ad0a49 54 */
rosarium 0:71bff5ad0a49 55 class Component
rosarium 0:71bff5ad0a49 56 {
rosarium 0:71bff5ad0a49 57 public:
rosarium 0:71bff5ad0a49 58 /**
rosarium 0:71bff5ad0a49 59 * @brief Initializing the component.
rosarium 0:71bff5ad0a49 60 * @param init pointer to device specific initalization structure.
rosarium 0:71bff5ad0a49 61 * @retval "0" in case of success, an error code otherwise.
rosarium 0:71bff5ad0a49 62 */
rosarium 0:71bff5ad0a49 63 virtual int Init(void *init) = 0;
rosarium 0:71bff5ad0a49 64
rosarium 0:71bff5ad0a49 65 /**
rosarium 0:71bff5ad0a49 66 * @brief Getting the ID of the component.
rosarium 0:71bff5ad0a49 67 * @param[out] id pointer to an allocated variable to store the ID into.
rosarium 0:71bff5ad0a49 68 * @retval "0" in case of success, an error code otherwise.
rosarium 0:71bff5ad0a49 69 */
rosarium 0:71bff5ad0a49 70 virtual int ReadID(uint8_t *id) = 0;
rosarium 0:71bff5ad0a49 71 };
rosarium 0:71bff5ad0a49 72
rosarium 0:71bff5ad0a49 73 #endif /* __COMPONENT_CLASS_H */
rosarium 0:71bff5ad0a49 74
rosarium 0:71bff5ad0a49 75 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/