Group 3_ESE519 / Mbed 2 deprecated lab5-remote

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
mfrede
Date:
Tue Nov 10 23:30:11 2015 +0000
Parent:
4:024e613151a5
Child:
6:1fe84e29b486
Commit message:
Implement send and receive functions with packet

Changed in this revision

remote.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/remote.cpp	Tue Nov 10 23:09:18 2015 +0000
+++ b/remote.cpp	Tue Nov 10 23:30:11 2015 +0000
@@ -22,11 +22,11 @@
 Serial pc(USBTX, USBRX);
 
 // Used for sending and receiving
-char txBuffer[128];
-char rxBuffer[128];
+//char txBuffer[128];
+//char rxBuffer[128];
 int rxLen;
-
-packet buffer;
+packet* txBuffer;
+packet* rxBuffer;
 
 //***************** Do not change these methods (please) *****************//
 
@@ -43,12 +43,18 @@
 
     if(len > 4) {
         //valid data with full header
-        if(data.to != NODE)
+        if(data->to != NODE)
         {
             //throw out the data
             return 0;
         }
-        pc.printf("Received data for us from node: %d\r\n",data.from);
+        pc.printf("Received data for us from node: %d TTL: %d\r\n",data->from,data->TTL);
+        
+        switch(data->TYPE)
+        {
+            case HELLO_TYPE:
+            pc.printf("HELLO\r\n");
+        }            
             
         //pc.printf("Received: %s length:%d\r\n", data, ((int)len)-10);
     }
@@ -66,16 +72,11 @@
 */
 void rf_send(packet *data, uint8_t len)
 {
-    uint8_t *send_buf = (uint8_t *) malloc( sizeof(uint8_t) * (len+8) );
 
-    for(uint8_t i = 0; i < len+8; i++) {
-        //prepend the 8-byte header
-        send_buf[i] = (i<8) ? header[i] : data[i-8];
-    }
-    //pc.printf("Sent: %s\r\n", send_buf+8);
+    data->from = NODE;
+    
 
-    mrf.Send(send_buf, len+8);
-    free(send_buf);
+    mrf.Send((uint8_t *) data, (len*4)+4);
 }
 
 
@@ -103,7 +104,7 @@
     while(true) { 
            
         //Try to receive some data
-        rxLen = rf_receive(rxBuffer, 128);
+        rxLen = rf_receive(rxBuffer, 2);
         
         if(rxLen > 0) {
 
@@ -112,23 +113,23 @@
             led1 = 1;
             begin = timer.read_ms();
             end = begin + 1000;
-            strcpy(txBuffer, "n");
+            //strcpy(txBuffer, "n");
 
 
             while(current < end) {
 
                 current = timer.read_ms();
-                val = button.read();
-                //printf("val: %f\r\n",val);
-                if(val < 0.1f ) {
-                    strcpy(txBuffer, "y"); ///send "y" if press
-                    break;
-                }
+  //              val = button.read();
+//                //printf("val: %f\r\n",val);
+//                if(val < 0.1f ) {
+//                    strcpy(txBuffer, "y"); ///send "y" if press
+//                    break;
+//                }
 
             }//end of 1 sec while loop
 
             led1 = 0; //Switch of the Led
-            rf_send(txBuffer, strlen(txBuffer) + 1); // send data
+//            rf_send(txBuffer, strlen(txBuffer) + 1); // send data
             pc.printf("Sent: %s\r\n", txBuffer);
 
         }//end of if loop