diff options
Diffstat (limited to 'xbee.h')
-rw-r--r-- | xbee.h | 49 |
1 files changed, 2 insertions, 47 deletions
@@ -1,53 +1,8 @@ #ifndef XBEE_H #define XBEE_H -#include "mutex.h" +#include <stdint.h> -Mutex xbm; - -void xbee_send(uint16_t type, int len, const uint8_t* buf) { - xbm.lock(); - - // Start and length. - usart_send(0x7e); - usart_send(((len + 16) >> 8) & 0xff); - usart_send((len + 16) & 0xff); - - // Frame type and ID. - usart_send(0x10); - usart_send(0x01); - - // Destination address. - usart_send(0x00); - usart_send(0x13); - usart_send(0xa2); - usart_send(0x00); - usart_send(0x40); - usart_send(0x6f); - usart_send(0x19); - usart_send(0xf1); - - usart_send(0xff); - usart_send(0xfe); - usart_send(0x00); - usart_send(0x00); - - uint8_t chsum = 0x83; - - usart_send(type & 0xff); - chsum -= type & 0xff; - usart_send(type >> 8); - chsum -= type >> 8; - - // Payload - for(int i = 0; i < len; i++) { - usart_send(buf[i]); - chsum -= buf[i]; - } - - usart_send(chsum); - - xbm.unlock(); -} +void xbee_send(uint16_t type, int len, const uint8_t* buf); #endif |