receive function provided by ese350
receiver.cpp@0:4bfdf497f75e, 2016-03-28 (annotated)
- Committer:
- ivo_david_michelle
- Date:
- Mon Mar 28 21:02:57 2016 +0000
- Revision:
- 0:4bfdf497f75e
merging trees
Who changed what in which revision?
User | Revision | Line number | New 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 | } |