![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
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
Diff: rc.cpp
- Revision:
- 5:3ad830e95ffd
- Child:
- 6:db985df4354b
--- /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"); +}