Simple NFC test projekt

Dependencies:   AppNearMe_MuNFC_PN532 mbed-rtos mbed

Fork of AppNearMe_MuNFC_PN532_Test by AppNearMe Official

Revision:
3:e35b0e15e6b3
Parent:
2:e433bf524c24
Child:
4:5ceb737b006b
--- a/main.cpp	Thu Nov 08 13:57:40 2012 +0000
+++ b/main.cpp	Thu Nov 22 13:56:12 2012 +0000
@@ -1,6 +1,6 @@
 #include "mbed.h"
 #include "rtos/rtos.h"
-
+#include <string>
 #include "MuNFC.h"
 
 DigitalOut led_alive(LED1);
@@ -10,11 +10,14 @@
 Semaphore s(1);
 
 MuNFC nfc("00000003RdfgT390", 1, p11, p12, p13, p19, p18);
+Serial arduino(p9, p10);  // tx, rx
 
 #define DEFAULT_PACKET 1
 
-char inputText[24];
-
+char messageFromNFC[24];
+char c;
+string messageFromArduino;
+string messageToNFC;
 
 //Encode callback
 void encode_cb(TLVList* tlv, void *)
@@ -22,7 +25,7 @@
   static uint32_t counter = 0;
   counter++;
   tlv->putUInt8( DEFAULT_PACKET ); //First uint8_t is packet type
-  tlv->putString("mBed says hello to android app");
+  tlv->putString((char*)messageToNFC.c_str());
   tlv->putUInt32( counter );
 }
 
@@ -39,7 +42,7 @@
     {
       return;
     }
-    tlv->getString(inputText, 23);
+    tlv->getString(messageFromNFC, 23);
   }
   s.release();
 }
@@ -63,7 +66,7 @@
         led_progress=0;
         led_ok=0;
         led_failed=1;
-    break;    
+    break;
     }
 }
 
@@ -76,7 +79,7 @@
     bool ret = nfc.init();
     if(ret)
     {
-      printf("\nAppNearMe/MuNFC stack initialized\n");
+      printf("MuNFC stack initialized\n");
       
     }
     else
@@ -84,13 +87,42 @@
       printf("Could not initialize stack\n");
     }
     
+    messageFromNFC[0] = '\0';
+    messageToNFC = "cancel";
+    
     nfc.run(); //Start thread
     
+
+    
     while(1) {
         led_alive = !led_alive;
+        
+        
+        // read messages from arduino
+        while(arduino.readable()){
+            
+            c = arduino.getc();
+            if (c != '\n'){
+                messageFromArduino += c;
+            } else {
+                if (messageFromArduino.length() > 1){
+                                   
+                    messageToNFC = messageFromArduino;
+                    printf("Set message to: %s\n",messageToNFC);
+                }
+                messageFromArduino = "";
+            }
+        }
+        
+        if (messageFromNFC[0] != '\0'){
+            arduino.printf("%s\n",messageFromNFC);
+            messageFromNFC[0] = '\0';
+        }
+        
+        /*
         if(s.wait(200) > 0)
         {
-          printf("Got: %s\n",inputText);
-        }
+          printf("Got: %s\n",messageFromNFC);
+        }*/
     }
 }