This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

Dependencies:   NDefLib X_NUCLEO_NFC01A1 mbed

Fork of X-MBED-NFC1 by Giovanni Visentini

This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

The available demos are:

  • SAMPLE_WRITE_URL: write a tag with the ST home page URL
  • SAMPLE_COUNT_CLICK: create a custom tag to count and report the user button clicks.
  • SAMPLE_WRITE_AND_CHANGE_ALL: write a tag with all the supported records and update the tag contents when the user button is pressed.
  • SAMPLE_LOCK_TAG_CONTENT: use the M24SR component API to set the NFC tag as read-only.

To enable the different demos comment/uncomment the SAMPLE_* macros provided in main.cpp .

X_NUCLEO_NFC01A1.h

Committer:
giovannivisentini
Date:
2015-12-01
Revision:
2:0648c1561eb2
Parent:
1:6d202b62ed68
Child:
3:f7f818ee694e

File content as of revision 2:0648c1561eb2:

/*
 * X_NUCLEO_NFC01A1.h
 *
 *  Created on: Nov 5, 2015
 *      Author: giovanni visentini
 */

#ifndef X_NUCLEO_NFC01A1_H_
#define X_NUCLEO_NFC01A1_H_
#include <stdint.h>

#include "mbed.h"

#include "m24sr/m24sr_class.h"

/**
 * singleton class that controls all the electronics inside the X_NUCLEO_NFC01A1 expansion board
 */
class X_NUCLEO_NFC01A1 {

private:
	/**
	 * ponter to the singleton instance, NULL if we did't build one
	 */
	static X_NUCLEO_NFC01A1 *mInstance;
	/**
	 * i2c address of the m24sr chip
	 */
	static const uint8_t M24SR_ADDR;

	/**
	 * constructor
	 * @param devI2C i2c channel used for communicate with the board
	 * @param gpoName pin of the gpio pin of the M24SR chip
	 * @param RFDisableName pin for disable the rf antenna
	 * @param led1Name pin for control the led1 status
	 * @param led2Name pin for control the led1 status
	 * @param led3Name pin for control the led1 status
	 */
	//TODO FIX all this the pin name?
	X_NUCLEO_NFC01A1(I2C &devI2C, const PinName &gpoName,
			const PinName &RFDisableName, const PinName &led1Name,
			const PinName &led2Name, const PinName &led3Name) :
			mM24SR(M24SR_ADDR, devI2C, gpoName, RFDisableName), mNfcLed1(
					led1Name), mNfcLed2(led2Name), mNfcLed3(led3Name) {

	}

public:
	//TODO FIX all this the pin name?
	static X_NUCLEO_NFC01A1* Instance(I2C &devI2C, const PinName &gpoName = D12,
			const PinName &RFDisableName = D11, const PinName &led1Name = D5,
			const PinName &led2Name = D4, const PinName &led3Name = D2);

	/**
	 * @return board led1
	 */
	DigitalOut& getLed1() {
		return mNfcLed1;
	}

	/**
	 * @return board led2
	 */
	DigitalOut& getLed2() {
		return mNfcLed2;
	}

	/**
	 * @return board led3
	 */
	DigitalOut& getLed3() {
		return mNfcLed3;
	}

	/**
	 * @return NFC Chip
	 */
	M24SR& getM24SR() {
		return mM24SR;
	}

	virtual ~X_NUCLEO_NFC01A1() {
	}

private:

	M24SR mM24SR;
	DigitalOut mNfcLed1;
	DigitalOut mNfcLed2;
	DigitalOut mNfcLed3;

};

#endif /* X_NUCLEO_NFC01A1_H_ */