to colorize a colorful pixel with a simple touch using nfc technology

Dependencies:   Chainable_RGB_LED mbed

use Arch, NFC Shield and Grove - Chainable RGB LED to DIY a touch pixel. Then use an Android with NFC support to colorize it.

The project is on https://github.com/Seeed-Studio/TouchPixel

nfc/Ndef.cpp

Committer:
yihui
Date:
2013-12-27
Revision:
0:88960f3eeb2c

File content as of revision 0:88960f3eeb2c:

#include "Ndef.h"
#include "PN532_debug.h"

// Borrowed from Adafruit_NFCShield_I2C
void PrintHex(const uint8_t * data, const long numuint8_ts)
{
  uint32_t szPos;
  for (szPos=0; szPos < numuint8_ts; szPos++)
  {
    DMSG("0x");
    // Append leading 0 for small values
    if (data[szPos] <= 0xF)
      DMSG("0");
    DMSG_HEX(data[szPos]&0xff);
    if ((numuint8_ts > 1) && (szPos != numuint8_ts - 1))
    {
      DMSG(" ");
    }
  }
  DMSG("");
}

// Borrowed from Adafruit_NFCShield_I2C
void PrintHexChar(const uint8_t * data, const long numuint8_ts)
{
  uint32_t szPos;
  for (szPos=0; szPos < numuint8_ts; szPos++)
  {
    // Append leading 0 for small values
    DMSG_HEX(data[szPos]);
  }
  DMSG("   ");
  for (szPos=0; szPos < numuint8_ts; szPos++)
  {
    if (data[szPos] <= 0x1F)
      DMSG(".");
    else
      DMSG("%c", (char)data[szPos]);
  }
  DMSG("\n");
}

// Note if buffer % blockSize != 0, last block will not be written
void DumpHex(const uint8_t * data, const long numuint8_ts, const unsigned int blockSize)
{
    int i;
    for (i = 0; i < (numuint8_ts / blockSize); i++)
    {
        PrintHexChar(data, blockSize);
        data += blockSize;
    }
}