Test of the µNFC stack with the Adafruit PN532 board
Dependencies: AppNearMe_MuNFC_PN532 mbed-rtos mbed
main.cpp
- Committer:
- AppNearMe
- Date:
- 2012-07-26
- Revision:
- 0:170d2659e354
File content as of revision 0:170d2659e354:
#include "mbed.h" #include "rtos/rtos.h" #include "MuNFC.h" DigitalOut led_alive(LED1); DigitalOut led_progress(LED2); DigitalOut led_ok(LED3); DigitalOut led_failed(LED4); Semaphore s(1); MuNFC nfc("00000003RdfgT390", 1, p11, p12, p13, p19, p18); #define DEFAULT_PACKET 1 char inputText[24]; //Encode callback void encode_cb(TLVList* tlv, void *) { static uint32_t counter = 0; counter++; tlv->putUInt8( DEFAULT_PACKET ); //First uint8_t is packet type tlv->putString("Hello from mbed!"); tlv->putUInt32( counter ); } //Decode callback void decode_cb(TLVList* tlv, void *) { if(tlv->getNext() != UINT8) { return; } if(tlv->getUInt8() == DEFAULT_PACKET) //First uint8_t is packet type { if(tlv->getNext() != STRING) { return; } tlv->getString(inputText, 23); } s.release(); } //NFC event void event_cb(NFCEvent event, void*) { switch(event) { case NFC_TRANSACTION_STARTED: led_progress=1; led_ok=0; led_failed=0; break; case NFC_TRANSACTION_SUCCESSFUL: led_progress=0; led_ok=1; led_failed=0; break; case NFC_TRANSACTION_FAILED: led_progress=0; led_ok=0; led_failed=1; break; } } int main() { nfc.encode(encode_cb, NULL); nfc.decode(decode_cb, NULL); nfc.event(event_cb, NULL); s.wait(); bool ret = nfc.init(); if(ret) { printf("\nAppNearMe/MuNFC stack initialized\n"); } else { printf("Could not initialize stack\n"); } nfc.run(); //Start thread while(1) { led_alive = !led_alive; if(s.wait(200) > 0) { printf("Got: %s\n",inputText); } } }