receive function provided by ese350

Dependents:   QuadTrio

Committer:
ivo_david_michelle
Date:
Mon Mar 28 21:02:57 2016 +0000
Revision:
0:4bfdf497f75e
merging trees

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ivo_david_michelle 0:4bfdf497f75e 1 #include "mbed.h"
ivo_david_michelle 0:4bfdf497f75e 2 #include "MRF24J40.h"
ivo_david_michelle 0:4bfdf497f75e 3
ivo_david_michelle 0:4bfdf497f75e 4 /**
ivo_david_michelle 0:4bfdf497f75e 5 * Receive data from the MRF24J40.
ivo_david_michelle 0:4bfdf497f75e 6 *
ivo_david_michelle 0:4bfdf497f75e 7 * @param mrf, RF tranceiver to link with
ivo_david_michelle 0:4bfdf497f75e 8 * @param data A pointer to a char array to hold the data
ivo_david_michelle 0:4bfdf497f75e 9 * @param maxLength The max amount of data to read.
ivo_david_michelle 0:4bfdf497f75e 10 */
ivo_david_michelle 0:4bfdf497f75e 11 int rf_receive_rssi(MRF24J40 mrf, char *data, uint8_t *rssi, uint8_t maxLength) {
ivo_david_michelle 0:4bfdf497f75e 12 uint8_t len = mrf.Receive_RSSI((uint8_t *)data, rssi, maxLength);
ivo_david_michelle 0:4bfdf497f75e 13 uint8_t header[8]= {1, 8, 0, 0xA1, 0xB2, 0xC3, 0xD4, 0x00};
ivo_david_michelle 0:4bfdf497f75e 14
ivo_david_michelle 0:4bfdf497f75e 15 if(len > 10) {
ivo_david_michelle 0:4bfdf497f75e 16 //Remove the header and footer of the message
ivo_david_michelle 0:4bfdf497f75e 17 for(uint8_t i = 0; i < len-2; i++) {
ivo_david_michelle 0:4bfdf497f75e 18 if(i<8) {
ivo_david_michelle 0:4bfdf497f75e 19 //Make sure our header is valid first
ivo_david_michelle 0:4bfdf497f75e 20 if(data[i] != header[i])
ivo_david_michelle 0:4bfdf497f75e 21 return 0;
ivo_david_michelle 0:4bfdf497f75e 22 } else {
ivo_david_michelle 0:4bfdf497f75e 23 data[i-8] = data[i];
ivo_david_michelle 0:4bfdf497f75e 24 }
ivo_david_michelle 0:4bfdf497f75e 25 }
ivo_david_michelle 0:4bfdf497f75e 26 //pc.printf("Received: %s length:%d\r\n", data, ((int)len)-10);
ivo_david_michelle 0:4bfdf497f75e 27 }
ivo_david_michelle 0:4bfdf497f75e 28 return ((int)len)-10;
ivo_david_michelle 0:4bfdf497f75e 29 }