Remote control code for https://developer.mbed.org/users/ivo_david_michelle/code/QuadTrio/

Dependencies:   Analog_Joystick Sender mbed

Fork of ESE350-Whack-a-Mole by Eric Berdinis

Revision:
5:3ad830e95ffd
Child:
6:db985df4354b
diff -r 2e975d78222c -r 3ad830e95ffd rc.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rc.cpp	Mon Mar 28 23:18:26 2016 +0000
@@ -0,0 +1,100 @@
+#include "MRF24J40.h"
+#include "sender.h"
+#include "analog_joystick.h"
+
+#include <string>
+
+// RF tranceiver to link with handheld.
+MRF24J40 mrf(p11, p12, p13, p14, p21);
+
+// LEDs you can treat these as variables (led2 = 1 will turn led2 on!)
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+
+// Timer
+Timer timer;
+
+// Serial port for showing RX data.
+Serial pc(USBTX, USBRX);
+
+// Used for sending and receiving
+char txBuffer[128];
+char rxBuffer[128];
+int rxLen;
+LocalFileSystem local("local");
+
+//***************** send and receive methods *****************//
+/*
+void wait_for_ping(uint8_t length) {
+    int receive = 0;
+    uint8_t *rssi = 0;
+    
+    while (receive == 0) {
+        receive = rf_receive_rssi(rxBuffer, rssi, length);
+    }
+}
+*/
+
+
+//***************** main loop *****************//
+
+int main (void)
+{
+    uint8_t channel = 3;
+    uint8_t iterations = 0;
+    uint8_t successCounter = 0;
+    uint8_t rssiBuffer[iterations];
+    
+    char *byteTransmit = "!"; // TODO: change this! 
+
+    //Set the Channel. 0 is default, 15 is max
+    mrf.SetChannel(channel);
+
+    //Start the timer
+    timer.start();
+    
+    pc.printf("START\r\n");
+    
+    FILE *fp = fopen("/local/out.txt\r\n", "w");
+    if (fp == NULL) {
+        pc.printf("error opening file\r\n");
+        return 0;
+    }
+    
+    int count = 15;
+    while (count > 0) {
+        count--;
+        pc.printf("yaw: %d\r\n", read_yaw());
+        pc.printf("pitch: %d\r\n", read_pitch());
+        pc.printf("roll: %d\r\n", read_roll());
+        pc.printf("thrust: %d\r\n", read_thrust());
+        
+        wait(0.2);
+    }
+    
+    
+    // send_three_way_handshake();
+    
+    for (int i = 0; i < iterations; i++) {
+        strcpy(txBuffer, byteTransmit);
+        rf_send(mrf, txBuffer, strlen(txBuffer) + 1);
+        pc.printf("RC Sent: %s \r\n", txBuffer);
+    
+        wait(0.2);
+    }
+    
+    // output data
+    fprintf(fp, "# received\t= %d\n", successCounter);
+    fprintf(fp, "# sent\t= %d\n", iterations);
+    fprintf(fp, "success rate\t= %f\n", (double) successCounter / (double) iterations);
+    double sum = 0;
+    for (int i = 0; i < successCounter; i++) {
+        sum += rssiBuffer[i];
+    }
+    fprintf(fp, "average rssi\t= %f\n", sum / (double) successCounter);
+    fclose(fp);
+    
+    pc.printf("END\r\n");
+}